001 /*
002 * Copyright 2008-2017 the original author or authors.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package org.codehaus.griffon.runtime.core.artifact;
017
018 import griffon.core.GriffonApplication;
019 import griffon.core.artifact.GriffonController;
020 import griffon.core.artifact.GriffonModel;
021 import griffon.core.artifact.GriffonMvcArtifact;
022 import griffon.core.artifact.GriffonView;
023 import griffon.core.mvc.MVCFunction;
024 import griffon.core.mvc.MVCGroup;
025 import griffon.core.mvc.MVCGroupFunction;
026 import griffon.core.mvc.TypedMVCGroup;
027 import griffon.core.mvc.TypedMVCGroupFunction;
028 import griffon.inject.MVCMember;
029
030 import javax.annotation.Nonnull;
031 import javax.inject.Inject;
032 import java.util.List;
033 import java.util.Map;
034
035 import static java.util.Objects.requireNonNull;
036
037 /**
038 * Base implementation of the GriffonMvcArtifact interface.
039 *
040 * @author Andres Almiray
041 * @since 2.0.0
042 */
043 public abstract class AbstractGriffonMvcArtifact extends AbstractGriffonArtifact implements GriffonMvcArtifact {
044 private MVCGroup group;
045
046 public AbstractGriffonMvcArtifact() {
047
048 }
049
050 /**
051 * Creates a new instance of this class.
052 *
053 * @param application the GriffonApplication that holds this artifact.
054 *
055 * @deprecated Griffon prefers field injection over constructor injector for artifacts as of 2.1.0
056 */
057 @Inject
058 @Deprecated
059 public AbstractGriffonMvcArtifact(@Nonnull GriffonApplication application) {
060 super(application);
061 }
062
063 @MVCMember
064 public void setMvcGroup(@Nonnull MVCGroup group) {
065 this.group = requireNonNull(group, "Argument 'group' must not be null");
066 }
067
068 @Nonnull
069 @Override
070 public MVCGroup getMvcGroup() {
071 return group;
072 }
073
074 public void mvcGroupInit(@Nonnull Map<String, Object> args) {
075 // empty
076 }
077
078 public void mvcGroupDestroy() {
079 // empty
080 }
081
082 @Override
083 @Nonnull
084 public MVCGroup createMVCGroup(@Nonnull String mvcType) {
085 return group.createMVCGroup(mvcType);
086 }
087
088 @Override
089 @Nonnull
090 public MVCGroup createMVCGroup(@Nonnull String mvcType, @Nonnull String mvcId) {
091 return group.createMVCGroup(mvcType, mvcId);
092 }
093
094 @Override
095 @Nonnull
096 public MVCGroup createMVCGroup(@Nonnull Map<String, Object> args, @Nonnull String mvcType) {
097 return group.createMVCGroup(args, mvcType);
098 }
099
100 @Override
101 @Nonnull
102 public MVCGroup createMVCGroup(@Nonnull String mvcType, @Nonnull Map<String, Object> args) {
103 return group.createMVCGroup(mvcType, args);
104 }
105
106 @Override
107 @Nonnull
108 public MVCGroup createMVCGroup(@Nonnull Map<String, Object> args, @Nonnull String mvcType, @Nonnull String mvcId) {
109 return group.createMVCGroup(args, mvcType, mvcId);
110 }
111
112 @Override
113 @Nonnull
114 public MVCGroup createMVCGroup(@Nonnull String mvcType, @Nonnull String mvcId, @Nonnull Map<String, Object> args) {
115 return group.createMVCGroup(mvcType, mvcId, args);
116 }
117
118 @Override
119 @Nonnull
120 public <MVC extends TypedMVCGroup> MVC createMVCGroup(@Nonnull Class<? extends MVC> mvcType) {
121 return group.createMVCGroup(mvcType);
122 }
123
124 @Override
125 @Nonnull
126 public <MVC extends TypedMVCGroup> MVC createMVCGroup(@Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId) {
127 return group.createMVCGroup(mvcType, mvcId);
128 }
129
130 @Override
131 @Nonnull
132 public <MVC extends TypedMVCGroup> MVC createMVCGroup(@Nonnull Map<String, Object> args, @Nonnull Class<? extends MVC> mvcType) {
133 return group.createMVCGroup(args, mvcType);
134 }
135
136 @Override
137 @Nonnull
138 public <MVC extends TypedMVCGroup> MVC createMVCGroup(@Nonnull Class<? extends MVC> mvcType, @Nonnull Map<String, Object> args) {
139 return group.createMVCGroup(mvcType, args);
140 }
141
142 @Override
143 @Nonnull
144 public <MVC extends TypedMVCGroup> MVC createMVCGroup(@Nonnull Map<String, Object> args, @Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId) {
145 return group.createMVCGroup(args, mvcType, mvcId);
146 }
147
148 @Override
149 @Nonnull
150 public <MVC extends TypedMVCGroup> MVC createMVCGroup(@Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId, @Nonnull Map<String, Object> args) {
151 return group.createMVCGroup(mvcType, mvcId, args);
152 }
153
154 @Override
155 @Nonnull
156 public List<? extends GriffonMvcArtifact> createMVC(@Nonnull String mvcType) {
157 return group.createMVC(mvcType);
158 }
159
160 @Override
161 @Nonnull
162 public List<? extends GriffonMvcArtifact> createMVC(@Nonnull Map<String, Object> args, @Nonnull String mvcType) {
163 return group.createMVC(args, mvcType);
164 }
165
166 @Override
167 @Nonnull
168 public List<? extends GriffonMvcArtifact> createMVC(@Nonnull String mvcType, @Nonnull Map<String, Object> args) {
169 return group.createMVC(mvcType, args);
170 }
171
172 @Override
173 @Nonnull
174 public List<? extends GriffonMvcArtifact> createMVC(@Nonnull String mvcType, @Nonnull String mvcId) {
175 return group.createMVC(mvcType, mvcId);
176 }
177
178 @Override
179 @Nonnull
180 public List<? extends GriffonMvcArtifact> createMVC(@Nonnull Map<String, Object> args, @Nonnull String mvcType, @Nonnull String mvcId) {
181 return group.createMVC(args, mvcType, mvcId);
182 }
183
184 @Override
185 @Nonnull
186 public List<? extends GriffonMvcArtifact> createMVC(@Nonnull String mvcType, @Nonnull String mvcId, @Nonnull Map<String, Object> args) {
187 return group.createMVC(mvcType, mvcId, args);
188 }
189
190 @Override
191 @Nonnull
192 public <MVC extends TypedMVCGroup> List<? extends GriffonMvcArtifact> createMVC(@Nonnull Class<? extends MVC> mvcType) {
193 return group.createMVC(mvcType);
194 }
195
196 @Override
197 @Nonnull
198 public <MVC extends TypedMVCGroup> List<? extends GriffonMvcArtifact> createMVC(@Nonnull Map<String, Object> args, @Nonnull Class<? extends MVC> mvcType) {
199 return group.createMVC(args, mvcType);
200 }
201
202 @Override
203 @Nonnull
204 public <MVC extends TypedMVCGroup> List<? extends GriffonMvcArtifact> createMVC(@Nonnull Class<? extends MVC> mvcType, @Nonnull Map<String, Object> args) {
205 return group.createMVC(mvcType, args);
206 }
207
208 @Override
209 @Nonnull
210 public <MVC extends TypedMVCGroup> List<? extends GriffonMvcArtifact> createMVC(@Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId) {
211 return group.createMVC(mvcType, mvcId);
212 }
213
214 @Override
215 @Nonnull
216 public <MVC extends TypedMVCGroup> List<? extends GriffonMvcArtifact> createMVC(@Nonnull Map<String, Object> args, @Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId) {
217 return group.createMVC(args, mvcType, mvcId);
218 }
219
220 @Override
221 @Nonnull
222 public <MVC extends TypedMVCGroup> List<? extends GriffonMvcArtifact> createMVC(@Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId, @Nonnull Map<String, Object> args) {
223 return group.createMVC(mvcType, mvcId, args);
224 }
225
226 @Override
227 public void destroyMVCGroup(@Nonnull String mvcId) {
228 group.destroyMVCGroup(mvcId);
229 }
230
231 @Override
232 public <M extends GriffonModel, V extends GriffonView, C extends GriffonController> void withMVC(@Nonnull String mvcType, @Nonnull MVCFunction<M, V, C> handler) {
233 group.withMVC(mvcType, handler);
234 }
235
236 @Override
237 public <M extends GriffonModel, V extends GriffonView, C extends GriffonController> void withMVC(@Nonnull String mvcType, @Nonnull String mvcId, @Nonnull MVCFunction<M, V, C> handler) {
238 group.withMVC(mvcType, mvcId, handler);
239 }
240
241 @Override
242 public <M extends GriffonModel, V extends GriffonView, C extends GriffonController> void withMVC(@Nonnull String mvcType, @Nonnull String mvcId, @Nonnull Map<String, Object> args, @Nonnull MVCFunction<M, V, C> handler) {
243 group.withMVC(mvcType, mvcId, args, handler);
244 }
245
246 @Override
247 public <M extends GriffonModel, V extends GriffonView, C extends GriffonController> void withMVC(@Nonnull Map<String, Object> args, @Nonnull String mvcType, @Nonnull String mvcId, @Nonnull MVCFunction<M, V, C> handler) {
248 group.withMVC(args, mvcType, mvcId, handler);
249 }
250
251 @Override
252 public <M extends GriffonModel, V extends GriffonView, C extends GriffonController> void withMVC(@Nonnull String mvcType, @Nonnull Map<String, Object> args, @Nonnull MVCFunction<M, V, C> handler) {
253 group.withMVC(mvcType, args, handler);
254 }
255
256 @Override
257 public <M extends GriffonModel, V extends GriffonView, C extends GriffonController> void withMVC(@Nonnull Map<String, Object> args, @Nonnull String mvcType, @Nonnull MVCFunction<M, V, C> handler) {
258 group.withMVC(args, mvcType, handler);
259 }
260
261 @Override
262 public <MVC extends TypedMVCGroup, M extends GriffonModel, V extends GriffonView, C extends GriffonController> void withMVC(@Nonnull Class<? extends MVC> mvcType, @Nonnull MVCFunction<M, V, C> handler) {
263 group.withMVC(mvcType, handler);
264 }
265
266 @Override
267 public <MVC extends TypedMVCGroup, M extends GriffonModel, V extends GriffonView, C extends GriffonController> void withMVC(@Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId, @Nonnull MVCFunction<M, V, C> handler) {
268 group.withMVC(mvcType, mvcId, handler);
269 }
270
271 @Override
272 public <MVC extends TypedMVCGroup, M extends GriffonModel, V extends GriffonView, C extends GriffonController> void withMVC(@Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId, @Nonnull Map<String, Object> args, @Nonnull MVCFunction<M, V, C> handler) {
273 group.withMVC(mvcType, mvcId, args, handler);
274 }
275
276 @Override
277 public <MVC extends TypedMVCGroup, M extends GriffonModel, V extends GriffonView, C extends GriffonController> void withMVC(@Nonnull Map<String, Object> args, @Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId, @Nonnull MVCFunction<M, V, C> handler) {
278 group.withMVC(args, mvcType, mvcId, handler);
279 }
280
281 @Override
282 public <MVC extends TypedMVCGroup, M extends GriffonModel, V extends GriffonView, C extends GriffonController> void withMVC(@Nonnull Class<? extends MVC> mvcType, @Nonnull Map<String, Object> args, @Nonnull MVCFunction<M, V, C> handler) {
283 group.withMVC(mvcType, args, handler);
284 }
285
286 @Override
287 public <MVC extends TypedMVCGroup, M extends GriffonModel, V extends GriffonView, C extends GriffonController> void withMVC(@Nonnull Map<String, Object> args, @Nonnull Class<? extends MVC> mvcType, @Nonnull MVCFunction<M, V, C> handler) {
288 group.withMVC(args, mvcType, handler);
289 }
290
291 @Override
292 public void withMVCGroup(@Nonnull String mvcType, @Nonnull MVCGroupFunction handler) {
293 group.withMVCGroup(mvcType, handler);
294 }
295
296 @Override
297 public void withMVCGroup(@Nonnull String mvcType, @Nonnull String mvcId, @Nonnull MVCGroupFunction handler) {
298 group.withMVCGroup(mvcType, mvcId, handler);
299 }
300
301 @Override
302 public void withMVCGroup(@Nonnull String mvcType, @Nonnull String mvcId, @Nonnull Map<String, Object> args, @Nonnull MVCGroupFunction handler) {
303 group.withMVCGroup(mvcType, mvcId, args, handler);
304 }
305
306 @Override
307 public void withMVCGroup(@Nonnull Map<String, Object> args, @Nonnull String mvcType, @Nonnull String mvcId, @Nonnull MVCGroupFunction handler) {
308 group.withMVCGroup(args, mvcType, mvcId, handler);
309 }
310
311 @Override
312 public void withMVCGroup(@Nonnull String mvcType, @Nonnull Map<String, Object> args, @Nonnull MVCGroupFunction handler) {
313 group.withMVCGroup(mvcType, args, handler);
314 }
315
316 @Override
317 public void withMVCGroup(@Nonnull Map<String, Object> args, @Nonnull String mvcType, @Nonnull MVCGroupFunction handler) {
318 group.withMVCGroup(args, mvcType, handler);
319 }
320
321 @Override
322 public <MVC extends TypedMVCGroup> void withMVCGroup(@Nonnull Class<? extends MVC> mvcType, @Nonnull TypedMVCGroupFunction<MVC> handler) {
323 group.withMVCGroup(mvcType, handler);
324 }
325
326 @Override
327 public <MVC extends TypedMVCGroup> void withMVCGroup(@Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId, @Nonnull TypedMVCGroupFunction<MVC> handler) {
328 group.withMVCGroup(mvcType, mvcId, handler);
329 }
330
331 @Override
332 public <MVC extends TypedMVCGroup> void withMVCGroup(@Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId, @Nonnull Map<String, Object> args, @Nonnull TypedMVCGroupFunction<MVC> handler) {
333 group.withMVCGroup(mvcType, mvcId, args, handler);
334 }
335
336 @Override
337 public <MVC extends TypedMVCGroup> void withMVCGroup(@Nonnull Map<String, Object> args, @Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId, @Nonnull TypedMVCGroupFunction<MVC> handler) {
338 group.withMVCGroup(args, mvcType, mvcId, handler);
339 }
340
341 @Override
342 public <MVC extends TypedMVCGroup> void withMVCGroup(@Nonnull Class<? extends MVC> mvcType, @Nonnull Map<String, Object> args, @Nonnull TypedMVCGroupFunction<MVC> handler) {
343 group.withMVCGroup(mvcType, args, handler);
344 }
345
346 @Override
347 public <MVC extends TypedMVCGroup> void withMVCGroup(@Nonnull Map<String, Object> args, @Nonnull Class<? extends MVC> mvcType, @Nonnull TypedMVCGroupFunction<MVC> handler) {
348 group.withMVCGroup(args, mvcType, handler);
349 }
350 }
|