View Javadoc
1   package org.argeo.osgi.metatype;
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  public 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  	public String getLocale() {
27  		return locale;
28  	}
29  
30  	@Override
31  	public String getID() {
32  		return enumClass.getName();
33  	}
34  
35  	@Override
36  	public String getDescription() {
37  		return null;
38  	}
39  
40  	@Override
41  	public AttributeDefinition[] getAttributeDefinitions(int filter) {
42  		EnumSet<T> set = EnumSet.allOf(enumClass);
43  		List<AttributeDefinition> attrs = new ArrayList<>();
44  		for (T key : set)
45  			attrs.add((AttributeDefinition) key);
46  		return attrs.toArray(new AttributeDefinition[attrs.size()]);
47  	}
48  
49  	@Override
50  	public InputStream getIcon(int size) throws IOException {
51  		return null;
52  	}
53  
54  }