AbstractMVCHandler.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.mvc;
017 
018 import griffon.core.artifact.GriffonController;
019 import griffon.core.artifact.GriffonModel;
020 import griffon.core.artifact.GriffonMvcArtifact;
021 import griffon.core.artifact.GriffonView;
022 import griffon.core.mvc.MVCFunction;
023 import griffon.core.mvc.MVCGroup;
024 import griffon.core.mvc.MVCGroupFunction;
025 import griffon.core.mvc.MVCGroupManager;
026 import griffon.core.mvc.MVCHandler;
027 import griffon.core.mvc.TypedMVCGroup;
028 import griffon.core.mvc.TypedMVCGroupFunction;
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 MVCHandler interface.
039  *
040  @author Andres Almiray
041  @since 2.0.0
042  */
043 public abstract class AbstractMVCHandler implements MVCHandler {
044     private final MVCGroupManager mvcGroupManager;
045 
046     @Inject
047     public AbstractMVCHandler(@Nonnull MVCGroupManager mvcGroupManager) {
048         this.mvcGroupManager = requireNonNull(mvcGroupManager, "Argument 'mvcGroupManager' must not be null");
049     }
050 
051     protected MVCGroupManager getMvcGroupManager() {
052         return mvcGroupManager;
053     }
054 
055     @Override
056     @Nonnull
057     public MVCGroup createMVCGroup(@Nonnull String mvcType) {
058         return mvcGroupManager.createMVCGroup(mvcType);
059     }
060 
061     @Override
062     @Nonnull
063     public MVCGroup createMVCGroup(@Nonnull String mvcType, @Nonnull String mvcId) {
064         return mvcGroupManager.createMVCGroup(mvcType, mvcId);
065     }
066 
067     @Override
068     @Nonnull
069     public MVCGroup createMVCGroup(@Nonnull Map<String, Object> args, @Nonnull String mvcType) {
070         return mvcGroupManager.createMVCGroup(args, mvcType);
071     }
072 
073     @Override
074     @Nonnull
075     public MVCGroup createMVCGroup(@Nonnull String mvcType, @Nonnull Map<String, Object> args) {
076         return mvcGroupManager.createMVCGroup(mvcType, args);
077     }
078 
079     @Override
080     @Nonnull
081     public MVCGroup createMVCGroup(@Nonnull Map<String, Object> args, @Nonnull String mvcType, @Nonnull String mvcId) {
082         return mvcGroupManager.createMVCGroup(args, mvcType, mvcId);
083     }
084 
085     @Override
086     @Nonnull
087     public MVCGroup createMVCGroup(@Nonnull String mvcType, @Nonnull String mvcId, @Nonnull Map<String, Object> args) {
088         return mvcGroupManager.createMVCGroup(mvcType, mvcId, args);
089     }
090 
091     @Override
092     @Nonnull
093     public <MVC extends TypedMVCGroup> MVC createMVCGroup(@Nonnull Class<? extends MVC> mvcType) {
094         return mvcGroupManager.createMVCGroup(mvcType);
095     }
096 
097     @Override
098     @Nonnull
099     public <MVC extends TypedMVCGroup> MVC createMVCGroup(@Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId) {
100         return mvcGroupManager.createMVCGroup(mvcType, mvcId);
101     }
102 
103     @Override
104     @Nonnull
105     public <MVC extends TypedMVCGroup> MVC createMVCGroup(@Nonnull Map<String, Object> args, @Nonnull Class<? extends MVC> mvcType) {
106         return mvcGroupManager.createMVCGroup(args, mvcType);
107     }
108 
109     @Override
110     @Nonnull
111     public <MVC extends TypedMVCGroup> MVC createMVCGroup(@Nonnull Class<? extends MVC> mvcType, @Nonnull Map<String, Object> args) {
112         return mvcGroupManager.createMVCGroup(mvcType, args);
113     }
114 
115     @Override
116     @Nonnull
117     public <MVC extends TypedMVCGroup> MVC createMVCGroup(@Nonnull Map<String, Object> args, @Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId) {
118         return mvcGroupManager.createMVCGroup(args, mvcType, mvcId);
119     }
120 
121     @Override
122     @Nonnull
123     public <MVC extends TypedMVCGroup> MVC createMVCGroup(@Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId, @Nonnull Map<String, Object> args) {
124         return mvcGroupManager.createMVCGroup(mvcType, mvcId, args);
125     }
126 
127     @Override
128     @Nonnull
129     public List<? extends GriffonMvcArtifact> createMVC(@Nonnull String mvcType) {
130         return mvcGroupManager.createMVC(mvcType);
131     }
132 
133     @Override
134     @Nonnull
135     public List<? extends GriffonMvcArtifact> createMVC(@Nonnull Map<String, Object> args, @Nonnull String mvcType) {
136         return mvcGroupManager.createMVC(args, mvcType);
137     }
138 
139     @Override
140     @Nonnull
141     public List<? extends GriffonMvcArtifact> createMVC(@Nonnull String mvcType, @Nonnull Map<String, Object> args) {
142         return mvcGroupManager.createMVC(mvcType, args);
143     }
144 
145     @Override
146     @Nonnull
147     public List<? extends GriffonMvcArtifact> createMVC(@Nonnull String mvcType, @Nonnull String mvcId) {
148         return mvcGroupManager.createMVC(mvcType, mvcId);
149     }
150 
151     @Override
152     @Nonnull
153     public List<? extends GriffonMvcArtifact> createMVC(@Nonnull Map<String, Object> args, @Nonnull String mvcType, @Nonnull String mvcId) {
154         return mvcGroupManager.createMVC(args, mvcType, mvcId);
155     }
156 
157     @Override
158     @Nonnull
159     public List<? extends GriffonMvcArtifact> createMVC(@Nonnull String mvcType, @Nonnull String mvcId, @Nonnull Map<String, Object> args) {
160         return mvcGroupManager.createMVC(mvcType, mvcId, args);
161     }
162 
163     @Override
164     @Nonnull
165     public <MVC extends TypedMVCGroup> List<? extends GriffonMvcArtifact> createMVC(@Nonnull Class<? extends MVC> mvcType) {
166         return mvcGroupManager.createMVC(mvcType);
167     }
168 
169     @Override
170     @Nonnull
171     public <MVC extends TypedMVCGroup> List<? extends GriffonMvcArtifact> createMVC(@Nonnull Map<String, Object> args, @Nonnull Class<? extends MVC> mvcType) {
172         return mvcGroupManager.createMVC(args, mvcType);
173     }
174 
175     @Override
176     @Nonnull
177     public <MVC extends TypedMVCGroup> List<? extends GriffonMvcArtifact> createMVC(@Nonnull Class<? extends MVC> mvcType, @Nonnull Map<String, Object> args) {
178         return mvcGroupManager.createMVC(mvcType, args);
179     }
180 
181     @Override
182     @Nonnull
183     public <MVC extends TypedMVCGroup> List<? extends GriffonMvcArtifact> createMVC(@Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId) {
184         return mvcGroupManager.createMVC(mvcType, mvcId);
185     }
186 
187     @Override
188     @Nonnull
189     public <MVC extends TypedMVCGroup> List<? extends GriffonMvcArtifact> createMVC(@Nonnull Map<String, Object> args, @Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId) {
190         return mvcGroupManager.createMVC(args, mvcType, mvcId);
191     }
192 
193     @Override
194     @Nonnull
195     public <MVC extends TypedMVCGroup> List<? extends GriffonMvcArtifact> createMVC(@Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId, @Nonnull Map<String, Object> args) {
196         return mvcGroupManager.createMVC(mvcType, mvcId, args);
197     }
198 
199     @Override
200     public void destroyMVCGroup(@Nonnull String mvcId) {
201         mvcGroupManager.destroyMVCGroup(mvcId);
202     }
203 
204     @Override
205     public <M extends GriffonModel, V extends GriffonView, C extends GriffonController> void withMVC(@Nonnull String mvcType, @Nonnull MVCFunction<M, V, C> handler) {
206         mvcGroupManager.withMVC(mvcType, handler);
207     }
208 
209     @Override
210     public <M extends GriffonModel, V extends GriffonView, C extends GriffonController> void withMVC(@Nonnull String mvcType, @Nonnull String mvcId, @Nonnull MVCFunction<M, V, C> handler) {
211         mvcGroupManager.withMVC(mvcType, mvcId, handler);
212     }
213 
214     @Override
215     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) {
216         mvcGroupManager.withMVC(mvcType, mvcId, args, handler);
217     }
218 
219     @Override
220     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) {
221         mvcGroupManager.withMVC(args, mvcType, mvcId, handler);
222     }
223 
224     @Override
225     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) {
226         mvcGroupManager.withMVC(mvcType, args, handler);
227     }
228 
229     @Override
230     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) {
231         mvcGroupManager.withMVC(args, mvcType, handler);
232     }
233 
234     @Override
235     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) {
236         mvcGroupManager.withMVC(mvcType, handler);
237     }
238 
239     @Override
240     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) {
241         mvcGroupManager.withMVC(mvcType, mvcId, handler);
242     }
243 
244     @Override
245     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) {
246         mvcGroupManager.withMVC(mvcType, mvcId, args, handler);
247     }
248 
249     @Override
250     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) {
251         mvcGroupManager.withMVC(args, mvcType, mvcId, handler);
252     }
253 
254     @Override
255     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) {
256         mvcGroupManager.withMVC(mvcType, args, handler);
257     }
258 
259     @Override
260     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) {
261         mvcGroupManager.withMVC(args, mvcType, handler);
262     }
263 
264     @Override
265     public void withMVCGroup(@Nonnull String mvcType, @Nonnull MVCGroupFunction handler) {
266         mvcGroupManager.withMVCGroup(mvcType, handler);
267     }
268 
269     @Override
270     public void withMVCGroup(@Nonnull String mvcType, @Nonnull String mvcId, @Nonnull MVCGroupFunction handler) {
271         mvcGroupManager.withMVCGroup(mvcType, mvcId, handler);
272     }
273 
274     @Override
275     public void withMVCGroup(@Nonnull String mvcType, @Nonnull String mvcId, @Nonnull Map<String, Object> args, @Nonnull MVCGroupFunction handler) {
276         mvcGroupManager.withMVCGroup(mvcType, mvcId, args, handler);
277     }
278 
279     @Override
280     public void withMVCGroup(@Nonnull Map<String, Object> args, @Nonnull String mvcType, @Nonnull String mvcId, @Nonnull MVCGroupFunction handler) {
281         mvcGroupManager.withMVCGroup(args, mvcType, mvcId, handler);
282     }
283 
284     @Override
285     public void withMVCGroup(@Nonnull String mvcType, @Nonnull Map<String, Object> args, @Nonnull MVCGroupFunction handler) {
286         mvcGroupManager.withMVCGroup(mvcType, args, handler);
287     }
288 
289     @Override
290     public void withMVCGroup(@Nonnull Map<String, Object> args, @Nonnull String mvcType, @Nonnull MVCGroupFunction handler) {
291         mvcGroupManager.withMVCGroup(args, mvcType, handler);
292     }
293 
294     @Override
295     public <MVC extends TypedMVCGroup> void withMVCGroup(@Nonnull Class<? extends MVC> mvcType, @Nonnull TypedMVCGroupFunction<MVC> handler) {
296         mvcGroupManager.withMVCGroup(mvcType, handler);
297     }
298 
299     @Override
300     public <MVC extends TypedMVCGroup> void withMVCGroup(@Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId, @Nonnull TypedMVCGroupFunction<MVC> handler) {
301         mvcGroupManager.withMVCGroup(mvcType, mvcId, handler);
302     }
303 
304     @Override
305     public <MVC extends TypedMVCGroup> void withMVCGroup(@Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId, @Nonnull Map<String, Object> args, @Nonnull TypedMVCGroupFunction<MVC> handler) {
306         mvcGroupManager.withMVCGroup(mvcType, mvcId, args, handler);
307     }
308 
309     @Override
310     public <MVC extends TypedMVCGroup> void withMVCGroup(@Nonnull Map<String, Object> args, @Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId, @Nonnull TypedMVCGroupFunction<MVC> handler) {
311         mvcGroupManager.withMVCGroup(args, mvcType, mvcId, handler);
312     }
313 
314     @Override
315     public <MVC extends TypedMVCGroup> void withMVCGroup(@Nonnull Class<? extends MVC> mvcType, @Nonnull Map<String, Object> args, @Nonnull TypedMVCGroupFunction<MVC> handler) {
316         mvcGroupManager.withMVCGroup(mvcType, args, handler);
317     }
318 
319     @Override
320     public <MVC extends TypedMVCGroup> void withMVCGroup(@Nonnull Map<String, Object> args, @Nonnull Class<? extends MVC> mvcType, @Nonnull TypedMVCGroupFunction<MVC> handler) {
321         mvcGroupManager.withMVCGroup(args, mvcType, handler);
322     }
323 }