AbstractGriffonMvcArtifact.java
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 }