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