X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=org.argeo.util%2Fsrc%2Forg%2Fargeo%2Fosgi%2Fmetatype%2FEnumOCD.java;fp=org.argeo.util%2Fsrc%2Forg%2Fargeo%2Fosgi%2Fmetatype%2FEnumOCD.java;h=97c7d56e1b8a9b4faee6fb5af76827ea18460ab3;hb=9f729eeb8255a9d800ad2506735dda8cc215a135;hp=0000000000000000000000000000000000000000;hpb=f9efbe5228615951dd8482a4582aa24e00c10ce5;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.util/src/org/argeo/osgi/metatype/EnumOCD.java b/org.argeo.util/src/org/argeo/osgi/metatype/EnumOCD.java new file mode 100644 index 000000000..97c7d56e1 --- /dev/null +++ b/org.argeo.util/src/org/argeo/osgi/metatype/EnumOCD.java @@ -0,0 +1,54 @@ +package org.argeo.osgi.metatype; + +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.EnumSet; +import java.util.List; + +import org.osgi.service.metatype.AttributeDefinition; +import org.osgi.service.metatype.ObjectClassDefinition; + +public class EnumOCD> implements ObjectClassDefinition { + private final Class enumClass; + private String locale; + + public EnumOCD(Class clazz, String locale) { + this.enumClass = clazz; + this.locale = locale; + } + + @Override + public String getName() { + return null; + } + + public String getLocale() { + return locale; + } + + @Override + public String getID() { + return enumClass.getName(); + } + + @Override + public String getDescription() { + return null; + } + + @Override + public AttributeDefinition[] getAttributeDefinitions(int filter) { + EnumSet set = EnumSet.allOf(enumClass); + List attrs = new ArrayList<>(); + for (T key : set) + attrs.add((AttributeDefinition) key); + return attrs.toArray(new AttributeDefinition[attrs.size()]); + } + + @Override + public InputStream getIcon(int size) throws IOException { + return null; + } + +}