1 19 package org.java.plugin.tools.mocks; 20 21 import java.util.Collection ; 22 import java.util.Collections ; 23 import java.util.HashSet ; 24 import java.util.Iterator ; 25 import java.util.LinkedList ; 26 27 import org.java.plugin.registry.Extension; 28 import org.java.plugin.registry.ExtensionPoint; 29 30 33 public class MockExtensionPoint extends MockPluginElement implements 34 ExtensionPoint { 35 private String multiplicity; 36 private String parentExtensionPointId; 37 private String parentPluginId; 38 private boolean isValid = true; 39 private LinkedList availableExtensions = new LinkedList (); 40 private LinkedList connectedExtensions = new LinkedList (); 41 private LinkedList descendants = new LinkedList (); 42 private LinkedList parameterDefinitions = new LinkedList (); 43 private HashSet predecessors = new HashSet (); 44 45 49 public Extension getAvailableExtension(final String uniqueId) { 50 for (Iterator it = availableExtensions.iterator(); it.hasNext();) { 51 Extension ext = (Extension) it.next(); 52 if (ext.getUniqueId().equals(uniqueId)) { 53 return ext; 54 } 55 } 56 throw new IllegalArgumentException ("extension UID " + uniqueId + " not available"); } 59 60 63 public Collection getAvailableExtensions() { 64 return Collections.unmodifiableCollection(availableExtensions); 65 } 66 67 71 public Extension getConnectedExtension(final String uniqueId) { 72 for (Iterator it = connectedExtensions.iterator(); it.hasNext();) { 73 Extension ext = (Extension) it.next(); 74 if (ext.getUniqueId().equals(uniqueId)) { 75 return ext; 76 } 77 } 78 throw new IllegalArgumentException ("extension UID " + uniqueId + " not connected"); } 81 82 85 public Collection getConnectedExtensions() { 86 return Collections.unmodifiableCollection(connectedExtensions); 87 } 88 89 95 public MockExtensionPoint addExtension(final Extension extension, 96 final boolean isConnected) { 97 availableExtensions.add(extension); 98 if (isConnected) { 99 connectedExtensions.add(extension); 100 } 101 return this; 102 } 103 104 107 public Collection getDescendants() { 108 return Collections.unmodifiableCollection(descendants); 109 } 110 111 115 public MockExtensionPoint addParameter(final Extension extension) { 116 descendants.add(extension); 117 return this; 118 } 119 120 123 public String getMultiplicity() { 124 return multiplicity; 125 } 126 127 131 public MockExtensionPoint setMultiplicity(final String value) { 132 multiplicity = value; 133 return this; 134 } 135 136 140 public ParameterDefinition getParameterDefinition(String id) { 141 for (Iterator it = parameterDefinitions.iterator(); it.hasNext();) { 142 ParameterDefinition paramDef = (ParameterDefinition) it.next(); 143 if (paramDef.getId().equals(id)) { 144 return paramDef; 145 } 146 } 147 throw new IllegalArgumentException ( 148 "unknown parameter definition ID " + id); } 150 151 154 public Collection getParameterDefinitions() { 155 return Collections.unmodifiableCollection(parameterDefinitions); 156 } 157 158 162 public MockExtensionPoint addParameterDefinition( 163 final ParameterDefinition parameterDefinition) { 164 parameterDefinitions.add(parameterDefinition); 165 return this; 166 } 167 168 171 public String getParentExtensionPointId() { 172 return parentExtensionPointId; 173 } 174 175 180 public MockExtensionPoint setParentExtensionPoint(final String pluginId, 181 final String extensionPointId) { 182 parentPluginId = pluginId; 183 parentExtensionPointId = extensionPointId; 184 predecessors.add(pluginId + '@' + extensionPointId); 185 return this; 186 } 187 188 191 public String getParentPluginId() { 192 return parentPluginId; 193 } 194 195 199 public boolean isExtensionAvailable(final String uniqueId) { 200 for (Iterator it = availableExtensions.iterator(); it.hasNext();) { 201 Extension ext = (Extension) it.next(); 202 if (ext.getUniqueId().equals(uniqueId)) { 203 return true; 204 } 205 } 206 return false; 207 } 208 209 213 public boolean isExtensionConnected(final String uniqueId) { 214 for (Iterator it = connectedExtensions.iterator(); it.hasNext();) { 215 Extension ext = (Extension) it.next(); 216 if (ext.getUniqueId().equals(uniqueId)) { 217 return true; 218 } 219 } 220 return false; 221 } 222 223 227 public boolean isSuccessorOf(final ExtensionPoint extensionPoint) { 228 return predecessors.contains(extensionPoint.getUniqueId()); 229 } 230 231 236 public MockExtensionPoint addPredecessors(final String pluginId, 237 final String extensionPointId) { 238 predecessors.add(pluginId + '@' + extensionPointId); 239 return this; 240 } 241 242 245 public boolean isValid() { 246 return isValid; 247 } 248 249 253 public MockExtensionPoint setValid(final boolean value) { 254 isValid = value; 255 return this; 256 } 257 258 261 public String getUniqueId() { 262 return getDeclaringPluginDescriptor().getId() + '@' + getId(); 263 } 264 } 265 | Popular Tags |