- Timestamp:
- 07/02/13 16:20:07 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
java/main/src/main/java/com/framsticks/model/f0/Schema.java
r88 r90 7 7 import com.framsticks.params.annotations.AutoAppendAnnotation; 8 8 import com.framsticks.params.annotations.FramsClassAnnotation; 9 import com.framsticks.parsers.XmlLoader; 10 import com.framsticks.util.DoubleMap; 11 import com.framsticks.util.FramsticksException; 9 import com.framsticks.params.annotations.ParamAnnotation; 10 import com.framsticks.util.lang.Casting; 12 11 13 import com.framsticks.model.Package;14 12 15 13 /** … … 27 25 28 26 /** The neuro classes (classess representing different types of neurons). */ 29 private DoubleMap<String, FramsClass> framsClasses = new DoubleMap<>(); 30 private DoubleMap<String, NeuroClass> neuroClasses = new DoubleMap<>(); 27 private final Registry framsClasses = new Registry(); 28 private final Registry neuroClasses = new Registry(); 29 // private DoubleMap<String, FramsClass> framsClasses = new DoubleMap<>(); 30 // private DoubleMap<String, NeuroClass> neuroClasses = new DoubleMap<>(); 31 31 32 32 public static InputStream getDefaultDefinitionAsStream() { … … 35 35 } 36 36 37 p ublic static Schema load(InputStream stream) {37 protected static Schema defaultSchema; 38 38 39 XmlLoader xmlLoader = new XmlLoader(); 40 xmlLoader.setUseLowerCase(true); 41 xmlLoader.getRegistry() 42 .registerAndBuild(Schema.class) 43 .registerAndBuild(FramsClassBuilder.class) 44 .registerAndBuild(NeuroClassBuilder.class) 45 .registerAndBuild(ParamBuilder.class) 46 .registerAndBuild(NeuroParamBuilder.class) 47 .registerAndBuild(GroupBuilder.class) 48 ; 49 50 Package.register(xmlLoader.getRegistry()); 51 52 Object object = xmlLoader.load(Schema.getDefaultDefinitionAsStream()); 53 if (!(object instanceof Schema)) { 54 throw new FramsticksException().msg("failed to load schema"); 39 public synchronized static Schema getDefaultSchema() { 40 if (defaultSchema == null) { 41 defaultSchema = new SchemaBuilder().stream(getDefaultDefinitionAsStream()).finish(); 55 42 } 56 return (Schema) object;43 return defaultSchema; 57 44 } 58 45 … … 60 47 } 61 48 49 @AutoAppendAnnotation 62 50 public void addClass(FramsClass framsClass) { 63 registry.put InfoIntoCache(framsClass);51 registry.putFramsClass(framsClass); 64 52 if (framsClass instanceof NeuroClass) { 65 neuroClasses.put (framsClass.getId(), framsClass.getName(), (NeuroClass)framsClass);53 neuroClasses.putFramsClass(framsClass); 66 54 return; 67 55 } 68 framsClasses.put (framsClass.getId(), framsClass.getName(),framsClass);56 framsClasses.putFramsClass(framsClass); 69 57 } 70 58 … … 74 62 } 75 63 76 public Set< NeuroClass> getNeuroClasses() {77 return neuroClasses.get Values();64 public Set<FramsClass> getNeuroClasses() { 65 return neuroClasses.getFramsClasses(); 78 66 } 79 67 80 68 public Set<FramsClass> getFramsClasses() { 81 return framsClasses.get Values();69 return framsClasses.getFramsClasses(); 82 70 } 83 71 84 72 public NeuroClass getNeuroClass(String identifier) { 85 return neuroClasses.get(identifier);73 return Casting.throwCast(NeuroClass.class, neuroClasses.getFramsClass(identifier)); 86 74 } 87 75 88 76 public FramsClass getFramsClass(String identifier) { 89 return framsClasses.get (identifier);77 return framsClasses.getFramsClass(identifier); 90 78 } 91 79 80 @ParamAnnotation 92 81 public final Registry getRegistry() { 93 82 return registry; 94 83 } 95 84 85 @ParamAnnotation 86 public final Registry getFramsRegistry() { 87 return framsClasses; 88 } 89 90 @ParamAnnotation 91 public final Registry getNeurosRegistry() { 92 return neuroClasses; 93 } 94 95 96 96 }
Note: See TracChangeset
for help on using the changeset viewer.