KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > proactive > examples > binarytree > ActiveBinaryTree


1 /*
2 * ################################################################
3 *
4 * ProActive: The Java(TM) library for Parallel, Distributed,
5 * Concurrent computing with Security and Mobility
6 *
7 * Copyright (C) 1997-2002 INRIA/University of Nice-Sophia Antipolis
8 * Contact: proactive-support@inria.fr
9 *
10 * This library is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU Lesser General Public
12 * License as published by the Free Software Foundation; either
13 * version 2.1 of the License, or any later version.
14 *
15 * This library is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * Lesser General Public License for more details.
19 *
20 * You should have received a copy of the GNU Lesser General Public
21 * License along with this library; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
23 * USA
24 *
25 * Initial developer(s): The ProActive Team
26 * http://www.inria.fr/oasis/ProActive/contacts.html
27 * Contributor(s):
28 *
29 * ################################################################
30 */

31 package org.objectweb.proactive.examples.binarytree;
32
33 public class ActiveBinaryTree extends BinaryTree {
34
35   /*
36       Unlike the 'like Current' construction of the Eiffel language,
37       it is difficult in Java to create an object of the
38       same type as the current object without using heavy
39       mechanisms of the Reflection API.
40
41       This is why we cannot completely reuse class BinaryTree because it contains
42       an explicit call to the constructor of class BinaryTree, then creating a passive
43       object where we want an active one
44
45       This is why we here override the createChildren method
46       in order to ensure that all the nodes
47       of the binary tree are active objects
48
49       This of course is a bulky implementation, and we could provide
50       a more subtle scheme, such as creating active objects only
51       for a given depth n of the tree (so that there cannot
52       be more that 2**n active objects)
53   */

54
55   protected void createChildren() {
56     try {
57       String JavaDoc s = this.getClass().getName();
58       this.leftTree = (BinaryTree)org.objectweb.proactive.ProActive.newActive(s, null);
59       this.rightTree = (BinaryTree)org.objectweb.proactive.ProActive.newActive(s, null);
60     } catch (Exception JavaDoc e) {
61       logger.error(e);
62     }
63   }
64 }
65
Popular Tags