13
13
14
14
import java .util .ArrayList ;
15
15
import java .util .List ;
16
- import java .util .Map ;
17
- import java .util .function .Function ;
18
- import java .util .stream .Collectors ;
19
16
20
17
import org .eclipse .xtext .xbase .lib .util .ToStringBuilder ;
21
18
27
24
*
28
25
* @param <T> data model parameter.
29
26
*/
30
- public class DataModelTemplate <T extends DataModelParameter > {
27
+ public class DataModelTemplate <T extends DataModelParameter > extends DataModelParameters < T > {
31
28
32
29
private String templateUri ;
33
30
34
- private String sourceType ;
35
-
36
- private String sourceMethod ;
37
-
38
31
private String sourceField ;
39
-
40
- private List <T > parameters ;
41
32
42
- private transient Map < String , T > parametersMap ;
33
+ private List < DataModelFragment < T >> fragments ;
43
34
44
35
/**
45
36
* Returns the template Uri.
@@ -59,47 +50,6 @@ public void setTemplateUri(String templateUri) {
59
50
this .templateUri = templateUri ;
60
51
}
61
52
62
- /**
63
- * Returns the Java source type where this data model template is defined.
64
- *
65
- * @return the Java source type where this data model template is defined.
66
- */
67
- public String getSourceType () {
68
- return sourceType ;
69
- }
70
-
71
- /**
72
- * Set the Java source type where this data model template is defined.
73
- *
74
- * @param sourceType the Java source type where this data model template is
75
- * defined.
76
- */
77
- public void setSourceType (String sourceType ) {
78
- this .sourceType = sourceType ;
79
- }
80
-
81
- /**
82
- * Returns the Java source method where this data model template is defined and
83
- * null otherwise.
84
- *
85
- * @return the Java source method where this data model template is defined and
86
- * null otherwise.
87
- */
88
- public String getSourceMethod () {
89
- return sourceMethod ;
90
- }
91
-
92
- /**
93
- * Set the Java source method where this data model template is defined and null
94
- * otherwise.
95
- *
96
- * @param sourceMethod the Java source method where this data model template is
97
- * defined and null otherwise.
98
- */
99
- public void setSourceMethod (String sourceMethod ) {
100
- this .sourceMethod = sourceMethod ;
101
- }
102
-
103
53
/**
104
54
* Returns the Java source field where this data model template is defined and
105
55
* null otherwise.
@@ -122,63 +72,46 @@ public void setSourceField(String sourceField) {
122
72
this .sourceField = sourceField ;
123
73
}
124
74
125
- /**
126
- * Returns the list of data model parameters.
127
- *
128
- * @return the list of data model parameters.
129
- */
130
- public List <T > getParameters () {
131
- return parameters ;
75
+ public void addFragment (DataModelFragment <T > fragment ) {
76
+ if (fragments == null ) {
77
+ fragments = new ArrayList <>();
78
+ }
79
+ fragments .add (fragment );
132
80
}
133
81
134
- /**
135
- * Set the list of data model parameters.
136
- *
137
- * @param parameters the list of data model parameters.
138
- */
139
- public void setParameters (List <T > parameters ) {
140
- this .parameters = parameters ;
82
+ public List <DataModelFragment <T >> getFragments () {
83
+ return fragments ;
141
84
}
142
85
143
- /**
144
- * Returns the parameter from the given key and null otherwise.
145
- *
146
- * @param key the parameter key.
147
- *
148
- * @return the parameter from the given key and null otherwise.
149
- */
150
- public T getParameter (String key ) {
151
- List <T > parameters = getParameters ();
152
- if (parameters == null ) {
153
- return null ;
154
- }
155
- return getParametersMap ().get (key );
86
+ public void setFragments (List <DataModelFragment <T >> fragments ) {
87
+ this .fragments = fragments ;
156
88
}
157
89
158
- public void addParameter ( T parameter ) {
159
- if (parameters == null ) {
160
- parameters = new ArrayList <>() ;
90
+ public DataModelFragment < T > getFragment ( String fragmentId ) {
91
+ if (fragmentId == null ) {
92
+ return null ;
161
93
}
162
- parameters . add ( parameter );
163
- getParametersMap (). put ( parameter . getKey (), parameter );
164
- }
165
-
166
- private Map < String , T > getParametersMap ( ) {
167
- if (parametersMap == null ) {
168
- parametersMap = parameters . stream ()
169
- . collect ( Collectors . toMap ( DataModelParameter :: getKey , Function . identity ()));
94
+ List < DataModelFragment < T >> fragments = getFragments ( );
95
+ if ( fragments == null || fragments . isEmpty ()) {
96
+ return null ;
97
+ }
98
+ for ( DataModelFragment < T > fragment : fragments ) {
99
+ if (fragmentId . equals ( fragment . getId ()) ) {
100
+ return fragment ;
101
+ }
170
102
}
171
- return parametersMap ;
103
+ return null ;
172
104
}
173
105
174
106
@ Override
175
107
public String toString () {
176
108
ToStringBuilder b = new ToStringBuilder (this );
177
109
b .add ("templateUri" , this .templateUri );
178
- b .add ("sourceType" , this .sourceType );
179
- b .add ("sourceMethod" , this .sourceMethod );
110
+ b .add ("sourceType" , this .getSourceType () );
111
+ b .add ("sourceMethod" , this .getSourceMethod () );
180
112
b .add ("sourceField" , this .sourceField );
181
- b .add ("parameters" , this .parameters );
113
+ b .add ("parameters" , this .getParameters ());
114
+ b .add ("fragments" , this .getFragments ());
182
115
return b .toString ();
183
116
}
184
117
}
0 commit comments