1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 package ca.uhn.hl7v2.testpanel.model.conf;
27
28 import java.util.ArrayList;
29 import java.util.List;
30
31 import ca.uhn.hl7v2.HL7Exception;
32 import ca.uhn.hl7v2.Location;
33 import ca.uhn.hl7v2.conf.spec.message.AbstractComponent;
34 import ca.uhn.hl7v2.model.AbstractType;
35 import ca.uhn.hl7v2.model.Composite;
36 import ca.uhn.hl7v2.model.DataTypeException;
37 import ca.uhn.hl7v2.model.ExtraComponents;
38 import ca.uhn.hl7v2.model.MessageVisitor;
39 import ca.uhn.hl7v2.model.Type;
40 import ca.uhn.hl7v2.model.Varies;
41
42
43 public class ConformanceComposite extends AbstractType implements Composite, ConformanceType<ConformanceComposite> {
44
45 private List<Type> myChildren = new ArrayList<Type>();
46 private List<String> myName = new ArrayList<String>();
47 private AbstractComponent myConfDefinition;
48
49
50
51
52 public ConformanceComposite(ConformanceMessage theMessage, AbstractComponent theConfDefinition) {
53 super(theMessage);
54
55 myConfDefinition = theConfDefinition;
56 }
57
58
59
60
61 public AbstractComponent getConfDefinition() {
62 return myConfDefinition;
63 }
64
65
66
67
68 void addChild(ConformanceType<? extends Type> theChild, String theName) {
69 myChildren.add(theChild);
70 myName.add(theName);
71 }
72
73 @Override
74 public ConformanceMessage getMessage() {
75 return (ConformanceMessage) super.getMessage();
76 }
77
78
79
80
81 public Type getComponent(int theNumber) throws DataTypeException {
82 return myChildren.get(theNumber);
83 }
84
85
86
87
88 public Type[] getComponents() {
89 return myChildren.toArray(new Type[myChildren.size()]);
90 }
91
92
93
94
95 @Override
96 public String getName() {
97 return myConfDefinition.getDatatype();
98 }
99
100
101
102
103 public String getName(int theNumber) {
104 return myName.get(theNumber);
105 }
106
107
108
109
110 public ConformanceComposite instantiateClone() {
111 ConformanceComposite retVal = new ConformanceComposite((ConformanceMessage) getMessage(), myConfDefinition);
112
113 int index = 0;
114 for (Type next : myChildren) {
115 ConformanceType<? extends Type> nextCtype = (ConformanceType<?>)next;
116 ConformanceType<?> clone = nextCtype.instantiateClone();
117 retVal.addChild(clone, myName.get(index));
118
119 index++;
120 }
121
122 return retVal;
123 }
124
125 public boolean accept(MessageVisitor visitor, Location location) throws HL7Exception {
126 throw new UnsupportedOperationException();
127 }
128
129 }