001 //$HeadURL: svn+ssh://rbezema@svn.wald.intevation.org/deegree/base/tags/2.1/src/org/deegree/framework/trigger/TriggerCapability.java $
002 /*---------------- FILE HEADER ------------------------------------------
003
004 This file is part of deegree.
005 Copyright (C) 2001-2006 by:
006 EXSE, Department of Geography, University of Bonn
007 http://www.giub.uni-bonn.de/deegree/
008 lat/lon GmbH
009 http://www.lat-lon.de
010
011 This library is free software; you can redistribute it and/or
012 modify it under the terms of the GNU Lesser General Public
013 License as published by the Free Software Foundation; either
014 version 2.1 of the License, or (at your option) any later version.
015
016 This library is distributed in the hope that it will be useful,
017 but WITHOUT ANY WARRANTY; without even the implied warranty of
018 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
019 Lesser General Public License for more details.
020
021 You should have received a copy of the GNU Lesser General Public
022 License along with this library; if not, write to the Free Software
023 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
024
025 Contact:
026
027 Andreas Poth
028 lat/lon GmbH
029 Aennchenstr. 19
030 53115 Bonn
031 Germany
032 E-Mail: poth@lat-lon.de
033
034 Prof. Dr. Klaus Greve
035 Department of Geography
036 University of Bonn
037 Meckenheimer Allee 166
038 53115 Bonn
039 Germany
040 E-Mail: greve@giub.uni-bonn.de
041
042 ---------------------------------------------------------------------------*/
043 package org.deegree.framework.trigger;
044
045 import java.util.List;
046 import java.util.Map;
047
048 import org.deegree.i18n.Messages;
049
050 /**
051 *
052 *
053 *
054 * @version $Revision: 6259 $
055 * @author <a href="mailto:poth@lat-lon.de">Andreas Poth</a>
056 * @author last edited by: $Author: bezema $
057 *
058 * @version 1.0. $Revision: 6259 $, $Date: 2007-03-20 10:15:15 +0100 (Di, 20 Mär 2007) $
059 *
060 * @since 2.0
061 */
062 public class TriggerCapability {
063
064 private String name;
065
066 private Class clss;
067
068 private List<String> paramNames;
069
070 private Map<String, Class> paramTypes;
071
072 private Map<String, Object> paramValues;
073
074 private List<TriggerCapability> nestedTrigger;
075
076 /**
077 *
078 * @param name
079 * @param clss
080 * @param paramTypes
081 * @param paramValues
082 * @param nestedTrigger
083 * @throws TriggerException
084 */
085 public TriggerCapability( String name, Class clss, List<String> paramNames,
086 Map<String, Class> paramTypes, Map<String, Object> paramValues,
087 List<TriggerCapability> nestedTrigger ) throws TriggerException {
088 this.name = name;
089 this.clss = clss;
090 this.paramTypes = paramTypes;
091 this.paramValues = paramValues;
092 if ( paramTypes.size() != paramValues.size() ) {
093 throw new TriggerException( Messages.getMessage( "FRAMEWORK_INVALID_TRIGGERCAP_PARAMS" ) );
094 }
095 this.paramNames = paramNames;
096 this.nestedTrigger = nestedTrigger;
097 }
098
099 /**
100 * returns the triggers name
101 *
102 * @return the triggers name
103 */
104 public String getName() {
105 return name;
106 }
107
108 /**
109 * returns a List of the names of all init parameter assigend to a
110 *
111 * @see Trigger
112 * @return a List of the names of all init parameter assigend to a
113 * @see Trigger
114 */
115 public List<String> getInitParameterNames() {
116 return paramNames;
117 }
118
119 /**
120 * returns the value of a named init parameter
121 *
122 * @param name
123 */
124 public Object getInitParameterValue( String name ) {
125 return paramValues.get( name );
126 }
127
128 /**
129 * returns the type of a named init parameter
130 *
131 * @param name
132 */
133 public Class getInitParameterType( String name ) {
134 return paramTypes.get( name );
135 }
136
137 /**
138 * returns the Class responsible for performing trigger functionality
139 *
140 * @return the Class responsible for performing trigger functionality
141 */
142 public Class getPerformingClass() {
143 return clss;
144 }
145
146 /**
147 * returns a list of Triggers that a nested within this Trigger
148 *
149 * @return a list of Triggers that a nested within this Trigger
150 */
151 public List<TriggerCapability> getTrigger() {
152 return nestedTrigger;
153 }
154
155 public String toString() {
156 return "Trigger name: " + name;
157 }
158
159 }
160 /***************************************************************************************************
161 * <code>
162 Changes to this class. What the people have been up to:
163
164 $Log$
165 Revision 1.7 2007/01/26 13:37:50 wanhoff
166 fixed Javadoc @return tag and footer
167
168 Revision 1.6 2006/11/27 09:07:53 poth
169 JNI integration of proj4 has been removed. The CRS functionality now will be done by native deegree code.
170
171 Revision 1.5 2006/10/10 11:25:11 poth
172 bug fix - reading init params
173
174 Revision 1.4 2006/09/28 09:45:45 poth
175 bug fixes
176
177 Revision 1.3 2006/09/22 13:25:02 poth
178 ongoing implementation
179
180 Revision 1.2 2006/09/19 20:11:02 poth
181 ongoing implementation
182
183 Revision 1.1 2006/09/14 16:06:05 poth
184 initial check in
185
186 </code>
187 **************************************************************************************************/