01 /* 
02  * Copyright 2008-2014 the original author or authors. 
03  * 
04  * Licensed under the Apache License, Version 2.0 (the "License"); 
05  * you may not use this file except in compliance with the License. 
06  * You may obtain a copy of the License at 
07  * 
08  *     http://www.apache.org/licenses/LICENSE-2.0 
09  * 
10  * Unless required by applicable law or agreed to in writing, software 
11  * distributed under the License is distributed on an "AS IS" BASIS, 
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
13  * See the License for the specific language governing permissions and 
14  * limitations under the License. 
15  */ 
16 package org.codehaus.griffon.runtime.core.artifact; 
17  
18 import griffon.core.GriffonApplication; 
19 import griffon.core.artifact.GriffonController; 
20 import griffon.core.artifact.GriffonControllerClass; 
21 import griffon.core.controller.ActionManager; 
22  
23 import javax.annotation.Nonnull; 
24 import javax.inject.Inject; 
25  
26 import static griffon.util.GriffonNameUtils.requireNonBlank; 
27  
28 /** 
29  * Base implementation of the GriffonController interface. 
30  * 
31  * @author Andres Almiray 
32  * @since 2.0.0 
33  */ 
34 public abstract class AbstractGriffonController extends AbstractGriffonMvcArtifact implements GriffonController { 
35     @Inject 
36     public AbstractGriffonController(@Nonnull GriffonApplication application) { 
37         super(application); 
38     } 
39  
40     @Nonnull 
41     @Override 
42     protected String getArtifactType() { 
43         return GriffonControllerClass.TYPE; 
44     } 
45  
46     @Nonnull 
47     protected ActionManager getActionManager() { 
48         return getApplication().getActionManager(); 
49     } 
50  
51     public void invokeAction(@Nonnull String name, Object... args) { 
52         getActionManager().invokeAction(this, requireNonBlank(name, "Argument 'name' must not be blank"), args); 
53     } 
54 }
    
    |