DelegatingMVCGroup.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.Context;
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.MVCGroupConfiguration;
026 import griffon.core.mvc.MVCGroupFunction;
027 import griffon.core.mvc.TypedMVCGroup;
028 import griffon.core.mvc.TypedMVCGroupFunction;
029 
030 import javax.annotation.Nonnull;
031 import javax.annotation.Nullable;
032 import java.util.List;
033 import java.util.Map;
034 
035 import static java.util.Objects.requireNonNull;
036 
037 /**
038  @author Andres Almiray
039  @since 2.11.0
040  */
041 public abstract class DelegatingMVCGroup implements MVCGroup {
042     private final MVCGroup delegate;
043 
044     public DelegatingMVCGroup(@Nonnull griffon.core.mvc.MVCGroup delegate) {
045         this.delegate = requireNonNull(delegate, "delegate");
046     }
047 
048     @Nonnull
049     public MVCGroup delegate() {
050         return delegate;
051     }
052 
053     @Override
054     @Nonnull
055     public MVCGroupConfiguration getConfiguration() {
056         return delegate.getConfiguration();
057     }
058 
059     @Override
060     @Nonnull
061     public String getMvcType() {
062         return delegate.getMvcType();
063     }
064 
065     @Override
066     @Nonnull
067     public String getMvcId() {
068         return delegate.getMvcId();
069     }
070 
071     @Override
072     @Nullable
073     public GriffonModel getModel() {
074         return delegate.getModel();
075     }
076 
077     @Override
078     @Nullable
079     public GriffonView getView() {
080         return delegate.getView();
081     }
082 
083     @Override
084     @Nullable
085     public GriffonController getController() {
086         return delegate.getController();
087     }
088 
089     @Override
090     @Nullable
091     public Object getMember(@Nonnull String name) {
092         return delegate.getMember(name);
093     }
094 
095     @Override
096     @Nonnull
097     public Map<String, Object> getMembers() {
098         return delegate.getMembers();
099     }
100 
101     @Override
102     public void destroy() {
103         delegate.destroy();
104     }
105 
106     @Override
107     public boolean isAlive() {
108         return delegate.isAlive();
109     }
110 
111     @Override
112     @Nonnull
113     public Context getContext() {
114         return delegate.getContext();
115     }
116 
117     @Override
118     @Nullable
119     public griffon.core.mvc.MVCGroup getParentGroup() {
120         return delegate.getParentGroup();
121     }
122 
123     @Override
124     @Nonnull
125     public Map<String, MVCGroup> getChildrenGroups() {
126         return delegate.getChildrenGroups();
127     }
128 
129     @Override
130     public void notifyMVCGroupDestroyed(@Nonnull String mvcId) {
131         delegate.notifyMVCGroupDestroyed(mvcId);
132     }
133 
134     @Override
135     @Nonnull
136     public MVCGroup createMVCGroup(@Nonnull String mvcType) {
137         return delegate.createMVCGroup(mvcType);
138     }
139 
140     @Override
141     @Nonnull
142     public MVCGroup createMVCGroup(@Nonnull String mvcType, @Nonnull String mvcId) {
143         return delegate.createMVCGroup(mvcType, mvcId);
144     }
145 
146     @Override
147     @Nonnull
148     public MVCGroup createMVCGroup(@Nonnull Map<String, Object> args, @Nonnull String mvcType) {
149         return delegate.createMVCGroup(args, mvcType);
150     }
151 
152     @Override
153     @Nonnull
154     public MVCGroup createMVCGroup(@Nonnull String mvcType, @Nonnull Map<String, Object> args) {
155         return delegate.createMVCGroup(mvcType, args);
156     }
157 
158     @Override
159     @Nonnull
160     public MVCGroup createMVCGroup(@Nonnull Map<String, Object> args, @Nonnull String mvcType, @Nonnull String mvcId) {
161         return delegate.createMVCGroup(args, mvcType, mvcId);
162     }
163 
164     @Override
165     @Nonnull
166     public MVCGroup createMVCGroup(@Nonnull String mvcType, @Nonnull String mvcId, @Nonnull Map<String, Object> args) {
167         return delegate.createMVCGroup(mvcType, mvcId, args);
168     }
169 
170     @Override
171     @Nonnull
172     public <MVC extends TypedMVCGroup> MVC createMVCGroup(@Nonnull Class<? extends MVC> mvcType) {
173         return delegate.createMVCGroup(mvcType);
174     }
175 
176     @Override
177     @Nonnull
178     public <MVC extends TypedMVCGroup> MVC createMVCGroup(@Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId) {
179         return delegate.createMVCGroup(mvcType, mvcId);
180     }
181 
182     @Override
183     @Nonnull
184     public <MVC extends TypedMVCGroup> MVC createMVCGroup(@Nonnull Map<String, Object> args, @Nonnull Class<? extends MVC> mvcType) {
185         return delegate.createMVCGroup(args, mvcType);
186     }
187 
188     @Override
189     @Nonnull
190     public <MVC extends TypedMVCGroup> MVC createMVCGroup(@Nonnull Class<? extends MVC> mvcType, @Nonnull Map<String, Object> args) {
191         return delegate.createMVCGroup(mvcType, args);
192     }
193 
194     @Override
195     @Nonnull
196     public <MVC extends TypedMVCGroup> MVC createMVCGroup(@Nonnull Map<String, Object> args, @Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId) {
197         return delegate.createMVCGroup(args, mvcType, mvcId);
198     }
199 
200     @Override
201     @Nonnull
202     public <MVC extends TypedMVCGroup> MVC createMVCGroup(@Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId, @Nonnull Map<String, Object> args) {
203         return delegate.createMVCGroup(mvcType, mvcId, args);
204     }
205 
206     @Override
207     @Nonnull
208     public List<? extends GriffonMvcArtifact> createMVC(@Nonnull String mvcType) {
209         return delegate.createMVC(mvcType);
210     }
211 
212     @Override
213     @Nonnull
214     public List<? extends GriffonMvcArtifact> createMVC(@Nonnull Map<String, Object> args, @Nonnull String mvcType) {
215         return delegate.createMVC(args, mvcType);
216     }
217 
218     @Override
219     @Nonnull
220     public List<? extends GriffonMvcArtifact> createMVC(@Nonnull String mvcType, @Nonnull Map<String, Object> args) {
221         return delegate.createMVC(mvcType, args);
222     }
223 
224     @Override
225     @Nonnull
226     public List<? extends GriffonMvcArtifact> createMVC(@Nonnull String mvcType, @Nonnull String mvcId) {
227         return delegate.createMVC(mvcType, mvcId);
228     }
229 
230     @Override
231     @Nonnull
232     public List<? extends GriffonMvcArtifact> createMVC(@Nonnull Map<String, Object> args, @Nonnull String mvcType, @Nonnull String mvcId) {
233         return delegate.createMVC(args, mvcType, mvcId);
234     }
235 
236     @Override
237     @Nonnull
238     public List<? extends GriffonMvcArtifact> createMVC(@Nonnull String mvcType, @Nonnull String mvcId, @Nonnull Map<String, Object> args) {
239         return delegate.createMVC(mvcType, mvcId, args);
240     }
241 
242     @Override
243     @Nonnull
244     public <MVC extends TypedMVCGroup> List<? extends GriffonMvcArtifact> createMVC(@Nonnull Class<? extends MVC> mvcType) {
245         return delegate.createMVC(mvcType);
246     }
247 
248     @Override
249     @Nonnull
250     public <MVC extends TypedMVCGroup> List<? extends GriffonMvcArtifact> createMVC(@Nonnull Map<String, Object> args, @Nonnull Class<? extends MVC> mvcType) {
251         return delegate.createMVC(args, mvcType);
252     }
253 
254     @Override
255     @Nonnull
256     public <MVC extends TypedMVCGroup> List<? extends GriffonMvcArtifact> createMVC(@Nonnull Class<? extends MVC> mvcType, @Nonnull Map<String, Object> args) {
257         return delegate.createMVC(mvcType, args);
258     }
259 
260     @Override
261     @Nonnull
262     public <MVC extends TypedMVCGroup> List<? extends GriffonMvcArtifact> createMVC(@Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId) {
263         return delegate.createMVC(mvcType, mvcId);
264     }
265 
266     @Override
267     @Nonnull
268     public <MVC extends TypedMVCGroup> List<? extends GriffonMvcArtifact> createMVC(@Nonnull Map<String, Object> args, @Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId) {
269         return delegate.createMVC(args, mvcType, mvcId);
270     }
271 
272     @Override
273     @Nonnull
274     public <MVC extends TypedMVCGroup> List<? extends GriffonMvcArtifact> createMVC(@Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId, @Nonnull Map<String, Object> args) {
275         return delegate.createMVC(mvcType, mvcId, args);
276     }
277 
278     @Override
279     public void destroyMVCGroup(@Nonnull String mvcId) {
280         delegate.destroyMVCGroup(mvcId);
281     }
282 
283     @Override
284     public <M extends GriffonModel, V extends GriffonView, C extends GriffonController> void withMVC(@Nonnull String mvcType, @Nonnull MVCFunction<M, V, C> handler) {
285         delegate.withMVC(mvcType, handler);
286     }
287 
288     @Override
289     public <M extends GriffonModel, V extends GriffonView, C extends GriffonController> void withMVC(@Nonnull String mvcType, @Nonnull String mvcId, @Nonnull MVCFunction<M, V, C> handler) {
290         delegate.withMVC(mvcType, mvcId, handler);
291     }
292 
293     @Override
294     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) {
295         delegate.withMVC(mvcType, mvcId, args, handler);
296     }
297 
298     @Override
299     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) {
300         delegate.withMVC(args, mvcType, mvcId, handler);
301     }
302 
303     @Override
304     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) {
305         delegate.withMVC(mvcType, args, handler);
306     }
307 
308     @Override
309     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) {
310         delegate.withMVC(args, mvcType, handler);
311     }
312 
313     @Override
314     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) {
315         delegate.withMVC(mvcType, handler);
316     }
317 
318     @Override
319     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) {
320         delegate.withMVC(mvcType, mvcId, handler);
321     }
322 
323     @Override
324     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) {
325         delegate.withMVC(mvcType, mvcId, args, handler);
326     }
327 
328     @Override
329     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) {
330         delegate.withMVC(args, mvcType, mvcId, handler);
331     }
332 
333     @Override
334     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) {
335         delegate.withMVC(mvcType, args, handler);
336     }
337 
338     @Override
339     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) {
340         delegate.withMVC(args, mvcType, handler);
341     }
342 
343     @Override
344     public void withMVCGroup(@Nonnull String mvcType, @Nonnull MVCGroupFunction handler) {
345         delegate.withMVCGroup(mvcType, handler);
346     }
347 
348     @Override
349     public void withMVCGroup(@Nonnull String mvcType, @Nonnull String mvcId, @Nonnull MVCGroupFunction handler) {
350         delegate.withMVCGroup(mvcType, mvcId, handler);
351     }
352 
353     @Override
354     public void withMVCGroup(@Nonnull String mvcType, @Nonnull String mvcId, @Nonnull Map<String, Object> args, @Nonnull MVCGroupFunction handler) {
355         delegate.withMVCGroup(mvcType, mvcId, args, handler);
356     }
357 
358     @Override
359     public void withMVCGroup(@Nonnull Map<String, Object> args, @Nonnull String mvcType, @Nonnull String mvcId, @Nonnull MVCGroupFunction handler) {
360         delegate.withMVCGroup(args, mvcType, mvcId, handler);
361     }
362 
363     @Override
364     public void withMVCGroup(@Nonnull String mvcType, @Nonnull Map<String, Object> args, @Nonnull MVCGroupFunction handler) {
365         delegate.withMVCGroup(mvcType, args, handler);
366     }
367 
368     @Override
369     public void withMVCGroup(@Nonnull Map<String, Object> args, @Nonnull String mvcType, @Nonnull MVCGroupFunction handler) {
370         delegate.withMVCGroup(args, mvcType, handler);
371     }
372 
373     @Override
374     public <MVC extends TypedMVCGroup> void withMVCGroup(@Nonnull Class<? extends MVC> mvcType, @Nonnull TypedMVCGroupFunction<MVC> handler) {
375         delegate.withMVCGroup(mvcType, handler);
376     }
377 
378     @Override
379     public <MVC extends TypedMVCGroup> void withMVCGroup(@Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId, @Nonnull TypedMVCGroupFunction<MVC> handler) {
380         delegate.withMVCGroup(mvcType, mvcId, handler);
381     }
382 
383     @Override
384     public <MVC extends TypedMVCGroup> void withMVCGroup(@Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId, @Nonnull Map<String, Object> args, @Nonnull TypedMVCGroupFunction<MVC> handler) {
385         delegate.withMVCGroup(mvcType, mvcId, args, handler);
386     }
387 
388     @Override
389     public <MVC extends TypedMVCGroup> void withMVCGroup(@Nonnull Map<String, Object> args, @Nonnull Class<? extends MVC> mvcType, @Nonnull String mvcId, @Nonnull TypedMVCGroupFunction<MVC> handler) {
390         delegate.withMVCGroup(args, mvcType, mvcId, handler);
391     }
392 
393     @Override
394     public <MVC extends TypedMVCGroup> void withMVCGroup(@Nonnull Class<? extends MVC> mvcType, @Nonnull Map<String, Object> args, @Nonnull TypedMVCGroupFunction<MVC> handler) {
395         delegate.withMVCGroup(mvcType, args, handler);
396     }
397 
398     @Override
399     public <MVC extends TypedMVCGroup> void withMVCGroup(@Nonnull Map<String, Object> args, @Nonnull Class<? extends MVC> mvcType, @Nonnull TypedMVCGroupFunction<MVC> handler) {
400         delegate.withMVCGroup(args, mvcType, handler);
401     }
402 }