View Javadoc

1   /*
2    * Copyright (c) 2005, The K-Wf Grid Consortium
3    * Fraunhofer Institute for Computer Architecture and Software Technology
4    * See http://www.kwfgrid.eu and http://www.first.fraunhofer.de for more details.
5    */
6   package net.kwfgrid.gworkflowdl.protocol.structure;
7   
8   import net.kwfgrid.gworkflowdl.protocol.IMethodCallStrategy;
9   
10  /***
11     Abstract implementation of <code>IChildObject</code>.
12   */
13  public abstract class AbstractChildObject extends AbstractStructureObject implements IChildObject {
14      private IStructureObject _parent;
15  
16      /***
17         Constructor.
18         Uses a new <code>NullParent</code> as parent.
19       */
20      public AbstractChildObject() {
21  	this(new NullParent());
22      }
23  
24      /***
25         Constructor.
26         @param parent The parent of this child.
27         @exception NullPointerException If parent is <code>null</code> (use <code>NullParent</code> instead).
28       */
29      public AbstractChildObject(IStructureObject parent) throws NullPointerException {
30  	if (parent == null)
31  	    throw new NullPointerException("Parent of AbstractChildObject must not be null.");
32  
33  	_parent = parent;
34      }
35  
36      public  IRootObject getRoot() {
37  	return _parent.getRoot();
38      }
39  
40      public IMethodCallStrategy getMethodCallStrategy() {
41  	return _parent.getMethodCallStrategy();
42      }
43  
44      public IStructureObject getParent() {
45  	return _parent;
46      }
47  
48      public void setParent(IStructureObject parent) {
49  	if (parent == null) {
50  	    parent = new NullParent();
51  	}
52  	
53  	_parent = parent;
54      }
55  }