AbstractGriffonMvcArtifact.java
001 /*
002  * Copyright 2008-2015 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 
027 import javax.annotation.Nonnull;
028 import javax.inject.Inject;
029 import java.util.List;
030 import java.util.Map;
031 
032 import static java.util.Objects.requireNonNull;
033 
034 /**
035  * Base implementation of the GriffonMvcArtifact interface.
036  *
037  @author Andres Almiray
038  @since 2.0.0
039  */
040 public abstract class AbstractGriffonMvcArtifact extends AbstractGriffonArtifact implements GriffonMvcArtifact {
041     private MVCGroup group;
042 
043     public AbstractGriffonMvcArtifact() {
044 
045     }
046 
047     /**
048      * Creates a new instance of this class.
049      *
050      @param application the GriffonApplication that holds this artifact.
051      @deprecated Griffon prefers field injection over constructor injector for artifacts as of 2.1.0
052      */
053     @Inject
054     @Deprecated
055     public AbstractGriffonMvcArtifact(@Nonnull GriffonApplication application) {
056         super(application);
057     }
058 
059     public void setMvcGroup(@Nonnull MVCGroup group) {
060         this.group = requireNonNull(group, "Argument 'group' must not be null");
061     }
062 
063     @Nonnull
064     @Override
065     public MVCGroup getMvcGroup() {
066         return group;
067     }
068 
069     public void mvcGroupInit(@Nonnull Map<String, Object> args) {
070         // empty
071     }
072 
073     public void mvcGroupDestroy() {
074         // empty
075     }
076 
077     @Nonnull
078     @Override
079     public MVCGroup createMVCGroup(@Nonnull Map<String, Object> args, @Nonnull String mvcType) {
080         return group.createMVCGroup(args, mvcType);
081     }
082 
083     @Nonnull
084     @Override
085     public MVCGroup createMVCGroup(@Nonnull Map<String, Object> args, @Nonnull String mvcType, @Nonnull String mvcId) {
086         return group.createMVCGroup(args, mvcType, mvcId);
087     }
088 
089     @Nonnull
090     @Override
091     public MVCGroup createMVCGroup(@Nonnull String mvcType) {
092         return group.createMVCGroup(mvcType);
093     }
094 
095     @Nonnull
096     @Override
097     public MVCGroup createMVCGroup(@Nonnull String mvcType, @Nonnull Map<String, Object> args) {
098         return group.createMVCGroup(mvcType, args);
099     }
100 
101     @Nonnull
102     @Override
103     public MVCGroup createMVCGroup(@Nonnull String mvcType, @Nonnull String mvcId) {
104         return group.createMVCGroup(mvcType, mvcId);
105     }
106 
107     @Nonnull
108     @Override
109     public MVCGroup createMVCGroup(@Nonnull String mvcType, @Nonnull String mvcId, @Nonnull Map<String, Object> args) {
110         return group.createMVCGroup(mvcType, mvcId, args);
111     }
112 
113     @Nonnull
114     @Override
115     public List<? extends GriffonMvcArtifact> createMVC(@Nonnull Map<String, Object> args, @Nonnull String mvcType) {
116         return group.createMVC(args, mvcType);
117     }
118 
119     @Nonnull
120     @Override
121     public List<? extends GriffonMvcArtifact> createMVC(@Nonnull Map<String, Object> args, @Nonnull String mvcType, @Nonnull String mvcId) {
122         return group.createMVC(args, mvcType, mvcId);
123     }
124 
125     @Nonnull
126     @Override
127     public List<? extends GriffonMvcArtifact> createMVC(@Nonnull String mvcType) {
128         return group.createMVC(mvcType);
129     }
130 
131     @Nonnull
132     @Override
133     public List<? extends GriffonMvcArtifact> createMVC(@Nonnull String mvcType, @Nonnull Map<String, Object> args) {
134         return group.createMVC(mvcType, args);
135     }
136 
137     @Nonnull
138     @Override
139     public List<? extends GriffonMvcArtifact> createMVC(@Nonnull String mvcType, @Nonnull String mvcId) {
140         return group.createMVC(mvcType, mvcId);
141     }
142 
143     @Nonnull
144     @Override
145     public List<? extends GriffonMvcArtifact> createMVC(@Nonnull String mvcType, @Nonnull String mvcId, @Nonnull Map<String, Object> args) {
146         return group.createMVC(mvcType, mvcId, args);
147     }
148 
149     @Override
150     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) {
151         group.withMVC(args, mvcType, handler);
152     }
153 
154     @Override
155     public void withMVCGroup(@Nonnull Map<String, Object> args, @Nonnull String mvcType, @Nonnull MVCGroupFunction handler) {
156         group.withMVCGroup(args, mvcType, handler);
157     }
158 
159     @Override
160     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) {
161         group.withMVC(args, mvcType, mvcId, handler);
162     }
163 
164     @Override
165     public void withMVCGroup(@Nonnull Map<String, Object> args, @Nonnull String mvcType, @Nonnull String mvcId, @Nonnull MVCGroupFunction handler) {
166         group.withMVCGroup(args, mvcType, mvcId, handler);
167     }
168 
169     @Override
170     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) {
171         group.withMVC(mvcType, args, handler);
172     }
173 
174     @Override
175     public void withMVCGroup(@Nonnull String mvcType, @Nonnull Map<String, Object> args, @Nonnull MVCGroupFunction handler) {
176         group.withMVCGroup(mvcType, args, handler);
177     }
178 
179     @Override
180     public <M extends GriffonModel, V extends GriffonView, C extends GriffonController> void withMVC(@Nonnull String mvcType, @Nonnull MVCFunction<M, V, C> handler) {
181         group.withMVC(mvcType, handler);
182     }
183 
184     @Override
185     public void withMVCGroup(@Nonnull String mvcType, @Nonnull MVCGroupFunction handler) {
186         group.withMVCGroup(mvcType, handler);
187     }
188 
189     @Override
190     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) {
191         group.withMVC(mvcType, mvcId, args, handler);
192     }
193 
194     @Override
195     public void withMVCGroup(@Nonnull String mvcType, @Nonnull String mvcId, @Nonnull Map<String, Object> args, @Nonnull MVCGroupFunction handler) {
196         group.withMVCGroup(mvcType, mvcId, args, handler);
197     }
198 
199     @Override
200     public <M extends GriffonModel, V extends GriffonView, C extends GriffonController> void withMVC(@Nonnull String mvcType, @Nonnull String mvcId, @Nonnull MVCFunction<M, V, C> handler) {
201         group.withMVC(mvcType, mvcId, handler);
202     }
203 
204     @Override
205     public void withMVCGroup(@Nonnull String mvcType, @Nonnull String mvcId, @Nonnull MVCGroupFunction handler) {
206         group.withMVCGroup(mvcType, mvcId, handler);
207     }
208 }