- Timestamp:
- 06/30/13 12:48:20 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
java/main/src/main/java/com/framsticks/params/Registry.java
r87 r88 4 4 5 5 import com.framsticks.params.annotations.FramsClassAnnotation; 6 import com.framsticks.util.DoubleMap; 7 import com.framsticks.util.FramsticksException; 6 8 7 import java.util.Collections;8 import java.util.HashMap;9 import java.util.HashSet;10 import java.util.Map;11 9 import java.util.Set; 12 10 … … 16 14 public class Registry { 17 15 private static final Logger log = Logger.getLogger(Registry.class.getName()); 18 19 public static class DoubleSet<K1, K2, V> {20 protected final Map<K1, V> byId = new HashMap<>();21 protected final Map<K2, V> byName = new HashMap<>();22 protected final Set<V> values = new HashSet<>();23 24 public int size() {25 return values.size();26 }27 28 public void put(K1 id, K2 name, V value) {29 values.add(value);30 if (id != null) {31 byId.put(id, value);32 }33 if (name != null) {34 byName.put(name, value);35 }36 }37 38 public boolean containsValue(V value) {39 return values.contains(value);40 41 }42 43 public boolean containsKey(String identifier) {44 return byId.containsKey(identifier) || byName.containsKey(identifier);45 }46 47 public V get(String identifier) {48 if (byId.containsKey(identifier)) {49 return byId.get(identifier);50 }51 if (byName.containsKey(identifier)) {52 return byName.get(identifier);53 }54 return null;55 }56 57 public Set<V> getValues() {58 return Collections.unmodifiableSet(values);59 }60 }61 16 62 17 // protected void internalRegisterClass(FramsClass framsClass, @Nullable Class<?> javaClass) { … … 71 26 // } 72 27 // } 73 protected final Double Set<String, String, Class<?>> javaClasses = new DoubleSet<>();74 protected final Double Set<String, String, FramsClass> framsClasses = new DoubleSet<>();28 protected final DoubleMap<String, Class<?>> javaClasses = new DoubleMap<>(); 29 protected final DoubleMap<String, FramsClass> framsClasses = new DoubleMap<>(); 75 30 76 31 public void registerReflectedClass(String name, String id, Class<?> reflectedClass) { … … 78 33 } 79 34 35 public Registry registerAndBuild(Class<?> reflectedClass) { 36 register(reflectedClass); 37 putInfoIntoCache(FramsClass.build().forClass(reflectedClass)); 38 return this; 39 } 40 80 41 public Registry register(Class<?> reflectedClass) { 81 42 FramsClassAnnotation a = reflectedClass.getAnnotation(FramsClassAnnotation.class); 82 43 if (a == null) { 83 log.error("class is not annotated: " + reflectedClass); 84 return this; 44 throw new FramsticksException().msg("class is not annotated").arg("class", reflectedClass); 85 45 } 86 46 87 47 registerReflectedClass(FramsClassBuilder.getName(a, reflectedClass), FramsClassBuilder.getId(a, reflectedClass), reflectedClass); 88 89 48 return this; 90 49 } 91 50 92 51 public AccessInterface createAccess(String name, FramsClass framsClass) throws ConstructionException { 93 assert framsClasses.containsValue(framsClass);52 // assert framsClasses.containsValue(framsClass); 94 53 if (javaClasses.containsKey(name)) { 95 54 return new ReflectionAccess(javaClasses.get(name), framsClass);
Note: See TracChangeset
for help on using the changeset viewer.