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 }
|