From: <fu...@us...> - 2007-02-22 20:34:25
|
Revision: 366 http://svn.sourceforge.net/cishell/?rev=366&view=rev Author: fugu13 Date: 2007-02-22 12:34:23 -0800 (Thu, 22 Feb 2007) Log Message: ----------- Adding a reference implementation of MetaTypeProvider and closely associated classes to allow algorithms to return custom parameter lists. Modified Paths: -------------- trunk/core/org.cishell.reference/META-INF/MANIFEST.MF Added Paths: ----------- trunk/core/org.cishell.reference/src/org/cishell/reference/service/metatype/ trunk/core/org.cishell.reference/src/org/cishell/reference/service/metatype/AbstractAttributeValueValidator.java trunk/core/org.cishell.reference/src/org/cishell/reference/service/metatype/AttributeValueValidator.java trunk/core/org.cishell.reference/src/org/cishell/reference/service/metatype/BasicAttributeDefinition.java trunk/core/org.cishell.reference/src/org/cishell/reference/service/metatype/BasicMetaTypeProvider.java trunk/core/org.cishell.reference/src/org/cishell/reference/service/metatype/BasicObjectClassDefinition.java Modified: trunk/core/org.cishell.reference/META-INF/MANIFEST.MF =================================================================== --- trunk/core/org.cishell.reference/META-INF/MANIFEST.MF 2007-02-21 16:26:00 UTC (rev 365) +++ trunk/core/org.cishell.reference/META-INF/MANIFEST.MF 2007-02-22 20:34:23 UTC (rev 366) @@ -17,6 +17,7 @@ org.osgi.service.prefs Export-Package: org.cishell.reference.app.service.datamanager, org.cishell.reference.app.service.scheduler, - org.cishell.reference.service.conversion + org.cishell.reference.service.conversion, + org.cishell.reference.service.metatype Eclipse-LazyStart: true Require-Bundle: edu.uci.ics.jung Added: trunk/core/org.cishell.reference/src/org/cishell/reference/service/metatype/AbstractAttributeValueValidator.java =================================================================== --- trunk/core/org.cishell.reference/src/org/cishell/reference/service/metatype/AbstractAttributeValueValidator.java (rev 0) +++ trunk/core/org.cishell.reference/src/org/cishell/reference/service/metatype/AbstractAttributeValueValidator.java 2007-02-22 20:34:23 UTC (rev 366) @@ -0,0 +1,11 @@ +package org.cishell.reference.service.metatype; + +public abstract class AbstractAttributeValueValidator implements + AttributeValueValidator { + + public String validate(String value) { + // indicates no validation needed/done + return null; + } + +} Added: trunk/core/org.cishell.reference/src/org/cishell/reference/service/metatype/AttributeValueValidator.java =================================================================== --- trunk/core/org.cishell.reference/src/org/cishell/reference/service/metatype/AttributeValueValidator.java (rev 0) +++ trunk/core/org.cishell.reference/src/org/cishell/reference/service/metatype/AttributeValueValidator.java 2007-02-22 20:34:23 UTC (rev 366) @@ -0,0 +1,5 @@ +package org.cishell.reference.service.metatype; + +public interface AttributeValueValidator { + public String validate(String value); +} Added: trunk/core/org.cishell.reference/src/org/cishell/reference/service/metatype/BasicAttributeDefinition.java =================================================================== --- trunk/core/org.cishell.reference/src/org/cishell/reference/service/metatype/BasicAttributeDefinition.java (rev 0) +++ trunk/core/org.cishell.reference/src/org/cishell/reference/service/metatype/BasicAttributeDefinition.java 2007-02-22 20:34:23 UTC (rev 366) @@ -0,0 +1,91 @@ +package org.cishell.reference.service.metatype; + +import org.osgi.service.metatype.AttributeDefinition; + +public class BasicAttributeDefinition implements AttributeDefinition { + + private String id; + private String name; + private String description; + private int type; + private int cardinality; + private String[] defaultValue; + private AttributeValueValidator validator; + private String[] optionLabels; + private String[] optionValues; + + public BasicAttributeDefinition(String id, String name, String description, int type, int cardinality, String[] defaultValue, AttributeValueValidator validator, String[] optionLabels, String[] optionValues) { + this.id = id; + this.name = name; + this.description = description; + this.type = type; + this.cardinality = cardinality; + this.defaultValue = defaultValue; + + if(validator == null) { + this.validator = new AbstractAttributeValueValidator(){}; + } else { + this.validator = validator; + } + + this.optionLabels = optionLabels; + this.optionValues = optionValues; + } + + public BasicAttributeDefinition(String id, String name, String description, int type) { + this(id, name, description, type, 0, null, null, null, null); + } + + public BasicAttributeDefinition(String id, String name, String description, int type, int cardinality, String[] defaultValue) { + this(id, name, description, type, cardinality, defaultValue, null, null, null); + } + + public BasicAttributeDefinition(String id, String name, String description, int type, String defaultValue) { + this(id, name, description, type, 0, new String[]{defaultValue}); + } + + public BasicAttributeDefinition(String id, String name, String description, int type, int cardinality) { + this(id, name, description, type, cardinality, null, null, null, null); + } + + public BasicAttributeDefinition(String id, String name, String description, int type, String[] optionLabels, String[] optionValues) { + this(id, name, description, type, 0, null, null, optionLabels, optionValues); + } + + public int getCardinality() { + return cardinality; + } + + public String[] getDefaultValue() { + return defaultValue; + } + + public String getDescription() { + return description; + } + + public String getID() { + return id; + } + + public String getName() { + return name; + } + + public String[] getOptionLabels() { + return optionLabels; + } + + public String[] getOptionValues() { + return optionValues; + } + + public int getType() { + return type; + } + + public String validate(String value) { + return validator.validate(value); + } + +} Added: trunk/core/org.cishell.reference/src/org/cishell/reference/service/metatype/BasicMetaTypeProvider.java =================================================================== --- trunk/core/org.cishell.reference/src/org/cishell/reference/service/metatype/BasicMetaTypeProvider.java (rev 0) +++ trunk/core/org.cishell.reference/src/org/cishell/reference/service/metatype/BasicMetaTypeProvider.java 2007-02-22 20:34:23 UTC (rev 366) @@ -0,0 +1,24 @@ +package org.cishell.reference.service.metatype; + +import org.osgi.service.metatype.MetaTypeProvider; +import org.osgi.service.metatype.ObjectClassDefinition; + +public class BasicMetaTypeProvider implements MetaTypeProvider { + + private ObjectClassDefinition definition; + + public BasicMetaTypeProvider(ObjectClassDefinition definition) { + this.definition = definition; + } + + public String[] getLocales() { + // We support no locale specific localizations, which is indicated by returning null + return null; + } + + public ObjectClassDefinition getObjectClassDefinition(String arg0, + String arg1) { + return definition; + } + +} Added: trunk/core/org.cishell.reference/src/org/cishell/reference/service/metatype/BasicObjectClassDefinition.java =================================================================== --- trunk/core/org.cishell.reference/src/org/cishell/reference/service/metatype/BasicObjectClassDefinition.java (rev 0) +++ trunk/core/org.cishell.reference/src/org/cishell/reference/service/metatype/BasicObjectClassDefinition.java 2007-02-22 20:34:23 UTC (rev 366) @@ -0,0 +1,78 @@ +package org.cishell.reference.service.metatype; + +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; + +import org.osgi.service.metatype.AttributeDefinition; +import org.osgi.service.metatype.ObjectClassDefinition; + +public class BasicObjectClassDefinition implements ObjectClassDefinition { + + List attributeDefinitionsOptional = new ArrayList(); + List attributeDefinitionsRequired = new ArrayList(); + private String ID; + private String name; + private String description; + private InputStream icon; + + public BasicObjectClassDefinition(String ID, String name, String description, InputStream icon) { + this.ID = ID; + this.name = name; + this.description = description; + this.icon = icon; + } + + public void addAttributeDefinition(int flag, AttributeDefinition definition) { + if(flag == REQUIRED) { + this.attributeDefinitionsRequired.add(definition); + } else if(flag == OPTIONAL) { + this.attributeDefinitionsOptional.add(definition); + } + } + + + public AttributeDefinition[] getAttributeDefinitions(int flag) { + + List results = new ArrayList(); + + if(flag == REQUIRED || flag == ALL) { + results.addAll(this.attributeDefinitionsRequired); + } + + if(flag == OPTIONAL || flag == ALL) { + results.addAll(this.attributeDefinitionsOptional); + + } + + return makeArray(results); + } + + private AttributeDefinition[] makeArray(List definitions) { + AttributeDefinition[] result = new AttributeDefinition[definitions.size()]; + + for(int ii = 0; ii < definitions.size(); ii++) { + result[ii] = (AttributeDefinition) definitions.get(ii); + } + + return result; + } + + public String getDescription() { + return description; + } + + public String getID() { + return ID; + } + + public InputStream getIcon(int arg0) throws IOException { + return icon; + } + + public String getName() { + return name; + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |