| 1 19 package org.java.plugin.tools.mocks; 20 21 import java.net.URL ; 22 import java.util.Collection ; 23 import java.util.Collections ; 24 import java.util.Date ; 25 import java.util.Iterator ; 26 import java.util.LinkedList ; 27 28 import org.java.plugin.PathResolver; 29 import org.java.plugin.registry.Extension; 30 import org.java.plugin.registry.ExtensionPoint; 31 import org.java.plugin.registry.PluginDescriptor; 32 import org.java.plugin.registry.Extension.Parameter; 33 import org.java.plugin.registry.ExtensionPoint.ParameterDefinition; 34 35 38 public class MockParameter extends MockPluginElement implements Parameter { 39 private Extension declaringExtension; 40 private ParameterDefinition definition; 41 private Parameter superParameter; 42 private String rawValue; 43 private Object typedValue; 44 private LinkedList subParameters = new LinkedList (); 45 46 49 public MockParameter() { 50 } 52 53 58 public MockParameter(final String id, final String aRawValue, 59 final Object aTypedValue) { 60 setId(id); 61 rawValue = aRawValue; 62 typedValue = aTypedValue; 63 } 64 65 71 public MockParameter(final String id, final String aRawValue, 72 final Object aTypedValue, final Extension aDeclaringExtension) { 73 setId(id); 74 rawValue = aRawValue; 75 typedValue = aTypedValue; 76 declaringExtension = aDeclaringExtension; 77 } 78 79 82 public Extension getDeclaringExtension() { 83 return declaringExtension; 84 } 85 86 90 public MockParameter setDeclaringExtension(final Extension value) { 91 declaringExtension = value; 92 return this; 93 } 94 95 98 public ParameterDefinition getDefinition() { 99 return definition; 100 } 101 102 106 public MockParameter setDefinition(final ParameterDefinition value) { 107 definition = value; 108 return this; 109 } 110 111 115 public Parameter getSubParameter(final String id) { 116 for (Iterator it = subParameters.iterator(); it.hasNext();) { 117 Parameter param = (Parameter) it.next(); 118 if (param.getId().equals(id)) { 119 return param; 120 } 121 } 122 throw new IllegalArgumentException ("unknown parameter ID " + id); } 124 125 128 public Collection getSubParameters() { 129 return Collections.unmodifiableCollection(subParameters); 130 } 131 132 136 public Collection getSubParameters(final String id) { 137 LinkedList result = new LinkedList (); 138 for (Iterator it = subParameters.iterator(); it.hasNext();) { 139 Parameter param = (Parameter) it.next(); 140 if (param.getId().equals(id)) { 141 result.add(param); 142 } 143 } 144 return result; 145 } 146 147 151 public MockParameter addParameter(final Parameter parameter) { 152 subParameters.add(parameter); 153 return this; 154 } 155 156 159 public Parameter getSuperParameter() { 160 return superParameter; 161 } 162 163 167 public MockParameter setSuperParameter(final Parameter value) { 168 superParameter = value; 169 return this; 170 } 171 172 175 public String rawValue() { 176 return rawValue; 177 } 178 179 184 public MockParameter setValue(final String raw, final Object typed) { 185 rawValue = raw; 186 typedValue = typed; 187 return this; 188 } 189 190 193 public Boolean valueAsBoolean() { 194 return (Boolean ) typedValue; 195 } 196 197 200 public Date valueAsDate() { 201 return (Date ) typedValue; 202 } 203 204 207 public Extension valueAsExtension() { 208 return (Extension) typedValue; 209 } 210 211 214 public ExtensionPoint valueAsExtensionPoint() { 215 return (ExtensionPoint) typedValue; 216 } 217 218 221 public Number valueAsNumber() { 222 return (Number ) typedValue; 223 } 224 225 228 public PluginDescriptor valueAsPluginDescriptor() { 229 return (PluginDescriptor) typedValue; 230 } 231 232 235 public String valueAsString() { 236 return (String ) typedValue; 237 } 238 239 242 public URL valueAsUrl() { 243 return (URL ) typedValue; 244 } 245 246 250 public URL valueAsUrl(final PathResolver pathResolver) { 251 return (URL ) typedValue; 252 } 253 } 254 | Popular Tags |