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