1
2
3
4
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 }