]> git.argeo.org Git - lgpl/argeo-commons.git/blob - node/EnumOCD.java
Prepare next development cycle
[lgpl/argeo-commons.git] / node / EnumOCD.java
1 package org.argeo.node;
2
3 import java.io.IOException;
4 import java.io.InputStream;
5 import java.util.ArrayList;
6 import java.util.EnumSet;
7 import java.util.List;
8
9 import org.osgi.service.metatype.AttributeDefinition;
10 import org.osgi.service.metatype.ObjectClassDefinition;
11
12 class EnumOCD<T extends Enum<T>> implements ObjectClassDefinition {
13 private final Class<T> enumClass;
14 private String locale;
15
16 public EnumOCD(Class<T> clazz, String locale) {
17 this.enumClass = clazz;
18 this.locale = locale;
19 }
20
21 @Override
22 public String getName() {
23 return null;
24 }
25
26 @Override
27 public String getID() {
28 return enumClass.getName();
29 }
30
31 @Override
32 public String getDescription() {
33 return null;
34 }
35
36 @Override
37 public AttributeDefinition[] getAttributeDefinitions(int filter) {
38 EnumSet<T> set = EnumSet.allOf(enumClass);
39 List<AttributeDefinition> attrs = new ArrayList<>();
40 for (T key : set)
41 attrs.add((AttributeDefinition) key);
42 return attrs.toArray(new AttributeDefinition[attrs.size()]);
43 }
44
45 @Override
46 public InputStream getIcon(int size) throws IOException {
47 return null;
48 }
49
50 }