001: /*****************************************************************************
002: * Java Plug-in Framework (JPF)
003: * Copyright (C) 2006-2007 Dmitry Olshansky
004: *
005: * This library is free software; you can redistribute it and/or
006: * modify it under the terms of the GNU Lesser General Public
007: * License as published by the Free Software Foundation; either
008: * version 2.1 of the License, or (at your option) any later version.
009: *
010: * This library is distributed in the hope that it will be useful,
011: * but WITHOUT ANY WARRANTY; without even the implied warranty of
012: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
013: * Lesser General Public License for more details.
014: *
015: * You should have received a copy of the GNU Lesser General Public
016: * License along with this library; if not, write to the Free Software
017: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
018: *****************************************************************************/package org.java.plugin.tools.mocks;
019:
020: import java.util.Collection;
021: import java.util.Collections;
022: import java.util.LinkedList;
023: import org.java.plugin.registry.Extension;
024: import org.java.plugin.registry.PluginDescriptor;
025:
026: /**
027: * @version $Id$
028: */
029: public class MockExtension extends MockPluginElement<Extension>
030: implements Extension {
031: private String extendedPluginId;
032: private String extendedPointId;
033: private boolean isValid = true;
034: private LinkedList<Parameter> parameters = new LinkedList<Parameter>();
035:
036: /**
037: * No-arguments constructor.
038: */
039: public MockExtension() {
040: // no-op
041: }
042:
043: /**
044: * @param id extension ID
045: */
046: public MockExtension(final String id) {
047: setId(id);
048: }
049:
050: /**
051: * @param id extension ID
052: * @param declaringPluginDescriptor declaring plug-in descriptor
053: */
054: public MockExtension(final String id,
055: final PluginDescriptor declaringPluginDescriptor) {
056: setDeclaringPluginDescriptor(declaringPluginDescriptor);
057: setId(id);
058: }
059:
060: /**
061: * @see org.java.plugin.registry.Extension#getExtendedPluginId()
062: */
063: public String getExtendedPluginId() {
064: return extendedPluginId;
065: }
066:
067: /**
068: * @param value the extended plug-in id to set
069: * @return this instance
070: */
071: public MockExtension setExtendedPluginId(final String value) {
072: extendedPluginId = value;
073: return this ;
074: }
075:
076: /**
077: * @see org.java.plugin.registry.Extension#getExtendedPointId()
078: */
079: public String getExtendedPointId() {
080: return extendedPointId;
081: }
082:
083: /**
084: * @param value the extended point id to set
085: * @return this instance
086: */
087: public MockExtension setExtendedPointId(final String value) {
088: extendedPointId = value;
089: return this ;
090: }
091:
092: /**
093: * @see org.java.plugin.registry.Extension#getParameter(java.lang.String)
094: */
095: public Parameter getParameter(final String id) {
096: for (Parameter param : parameters) {
097: if (param.getId().equals(id)) {
098: return param;
099: }
100: }
101: throw new IllegalArgumentException("unknown parameter ID " + id); //$NON-NLS-1$
102: }
103:
104: /**
105: * @see org.java.plugin.registry.Extension#getParameters()
106: */
107: public Collection<Parameter> getParameters() {
108: return Collections.unmodifiableCollection(parameters);
109: }
110:
111: /**
112: * @see org.java.plugin.registry.Extension#getParameters(java.lang.String)
113: */
114: public Collection<Parameter> getParameters(final String id) {
115: LinkedList<Parameter> result = new LinkedList<Parameter>();
116: for (Parameter param : parameters) {
117: if (param.getId().equals(id)) {
118: result.add(param);
119: }
120: }
121: return result;
122: }
123:
124: /**
125: * @param parameter parameter to add
126: * @return this instance
127: */
128: public MockExtension addParameter(final Parameter parameter) {
129: parameters.add(parameter);
130: return this ;
131: }
132:
133: /**
134: * @see org.java.plugin.registry.Extension#isValid()
135: */
136: public boolean isValid() {
137: return isValid;
138: }
139:
140: /**
141: * @param value the valid flag to set
142: * @return this instance
143: */
144: public MockExtension setValid(final boolean value) {
145: isValid = value;
146: return this ;
147: }
148:
149: /**
150: * @see org.java.plugin.registry.UniqueIdentity#getUniqueId()
151: */
152: public String getUniqueId() {
153: return getDeclaringPluginDescriptor().getId() + '@' + getId();
154: }
155: }
|