|
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.
|