View Javadoc
1 /* ==================================================================== 2 * Bigyo Software License, version 1.1 3 * 4 * Copyright (c) 2004, Zsombor Gegesy. All rights reserved. 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 9 * 1. Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 12 * 2. Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in 14 * the documentation and/or other materials provided with the 15 * distribution. 16 * 17 * 3. Neither the name of the Bigyo Group nor the name "Bigyo" nor 18 * the names of its contributors may be used to endorse or promote 19 * products derived from this software without specific prior 20 * written permission. 21 * 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 23 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 24 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 25 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 26 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 27 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 28 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 29 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 30 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 32 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 33 * POSSIBILITY OF SUCH DAMAGE. 34 * 35 * ==================================================================== 36 */ 37 38 package net.sf.bigyo.container; 39 40 import java.util.ArrayList; 41 import java.util.HashMap; 42 import java.util.Iterator; 43 import java.util.List; 44 import java.util.Map; 45 46 /*** 47 * @author zsombor 48 * 49 * Created on 2004.03.31. 50 */ 51 public class ComponentDescription { 52 53 String classAlias; // ezzel kell bealiasolni ... 54 String className; // a komponenst osztaly 55 String configClassName; // a perzisztens adatokat tarolo bean 56 57 String type; // singleton / many 58 59 List depends; 60 61 List provides; 62 63 String startMethod; 64 String stopMethod; 65 66 Map classShortcuts; 67 68 /*** 69 * 70 */ 71 public ComponentDescription() { 72 super(); 73 } 74 75 /*** 76 * @return Returns the className. 77 */ 78 public String getClassName() { 79 return className; 80 } 81 82 /*** 83 * @param className 84 * The className to set. 85 */ 86 public void setClassName(String className) { 87 this.className = className; 88 } 89 90 /*** 91 * @return Returns the depends. 92 */ 93 public List getDepends() { 94 return depends; 95 } 96 97 /*** 98 * @param depends 99 * The depends to set. 100 */ 101 public void setDepends(List depends) { 102 this.depends = depends; 103 } 104 105 /*** 106 * @return Returns the name. 107 */ 108 public String getClassAlias() { 109 return classAlias; 110 } 111 112 /*** 113 * @param name 114 * The name to set. 115 */ 116 public void setClassAlias(String name) { 117 this.classAlias = name; 118 } 119 120 /*** 121 * @return Returns the type. 122 */ 123 public String getType() { 124 return type; 125 } 126 127 /*** 128 * @param type 129 * The type to set. 130 */ 131 public void setType(String type) { 132 this.type = type; 133 } 134 135 /*** 136 * @return Returns the configClassName. 137 */ 138 public String getConfigClass() { 139 return configClassName; 140 } 141 142 /*** 143 * @param configClassName 144 * The configClassName to set. 145 */ 146 public void setConfigClass(String configClassName) { 147 this.configClassName = configClassName; 148 } 149 150 /*** 151 * @param classAlias 152 * @param className 153 * @param configClassName 154 * @param type 155 */ 156 public ComponentDescription(String classAlias, String className, String configClassName, String type) { 157 super(); 158 this.classAlias = classAlias; 159 this.className = className; 160 this.configClassName = configClassName; 161 this.type = type; 162 } 163 164 /*** 165 * @param classAlias 166 * @param className 167 * @param configClassName 168 * @param type 169 */ 170 public ComponentDescription(String classAlias, Class componentClass, Class configClass, String type) { 171 super(); 172 this.classAlias = classAlias; 173 this.className = componentClass.getName(); 174 this.configClassName = (configClass != null ? configClass.getName() : null); 175 this.type = type; 176 } 177 178 public ComponentDescription addDepend(String name) { 179 if (depends == null) 180 depends = new ArrayList(); 181 depends.add(new ClassDependency(name, null)); 182 return this; 183 } 184 185 public ComponentDescription addDepend(String name, String depType) { 186 if (depends == null) 187 depends = new ArrayList(); 188 depends.add(new ClassDependency(name, depType)); 189 return this; 190 } 191 192 public ComponentDescription addDependSetter(String name, String methodName) { 193 if (depends == null) 194 depends = new ArrayList(); 195 depends.add(new ClassDependency(name, ClassDependency.REQUIRED, methodName)); 196 return this; 197 } 198 199 public ComponentDescription addOptionalDependSetter(String name, String methodName) { 200 if (depends == null) 201 depends = new ArrayList(); 202 depends.add(new ClassDependency(name, ClassDependency.OPTIONAL, methodName)); 203 return this; 204 } 205 206 207 208 public ClassDependency getDependency(String classAlias) { 209 if (depends == null) 210 return null; 211 if (classAlias == null) 212 throw new NullPointerException("classAlias not specified!"); 213 for (Iterator iter = depends.iterator(); iter.hasNext();) { 214 ClassDependency d = (ClassDependency) iter.next(); 215 if (classAlias.equals(d.getClassAlias())) 216 return d; 217 } 218 return null; 219 } 220 221 /*** 222 * @return Returns the startMethod. 223 */ 224 public String getStart() { 225 return startMethod; 226 } 227 228 /*** 229 * @param startMethod 230 * The startMethod to set. 231 */ 232 public void setStart(String startMethod) { 233 this.startMethod = startMethod; 234 } 235 236 /*** 237 * @return Returns the stopMethod. 238 */ 239 public String getStop() { 240 return stopMethod; 241 } 242 243 /*** 244 * @param stopMethod 245 * The stopMethod to set. 246 */ 247 public void setStop(String stopMethod) { 248 this.stopMethod = stopMethod; 249 } 250 251 public List getProvides() { 252 return this.provides; 253 } 254 255 public void setProvides(List provides) { 256 this.provides = provides; 257 } 258 259 public void addProvideAlias(String alias) { 260 if (provides == null) 261 provides = new ArrayList(); 262 provides.add(alias); 263 } 264 265 Class componentClass; 266 267 public Class lookupClass() throws ClassNotFoundException { 268 if (componentClass == null) { 269 componentClass = Class.forName(className); 270 } 271 return componentClass; 272 } 273 274 /*** 275 * @return Returns the classShortcuts. 276 */ 277 public Map getClassShortcuts() { 278 return classShortcuts; 279 } 280 281 /*** 282 * @param classShortcuts The classShortcuts to set. 283 */ 284 public void setClassShortcuts(Map classShortcuts) { 285 this.classShortcuts = classShortcuts; 286 } 287 288 public void setClassShortcut(String name, String className) { 289 Map m = getClassShortcuts(); 290 if (m==null) { 291 m = new HashMap(); 292 setClassShortcuts(m); 293 } 294 m.put(name,className); 295 } 296 297 }

This page was automatically generated by Maven