source: java/main/src/main/java/com/framsticks/model/f0/SchemaBuilder.java @ 193

Last change on this file since 193 was 193, checked in by Maciej Komosinski, 10 years ago

Set svn:eol-style native for all textual files

  • Property svn:eol-style set to native
File size: 1.3 KB
Line 
1package com.framsticks.model.f0;
2
3import java.util.Arrays;
4import java.util.List;
5
6import com.framsticks.model.ModelPackage;
7import com.framsticks.params.FramsClassBuilder;
8import com.framsticks.params.GroupBuilder;
9import com.framsticks.params.ParamBuilder;
10import com.framsticks.params.annotations.FramsClassAnnotation;
11import com.framsticks.parsers.XmlLoader;
12import com.framsticks.util.AutoBuilder;
13import com.framsticks.util.ResourceBuilder;
14
15@FramsClassAnnotation
16public class SchemaBuilder extends ResourceBuilder<Schema> implements AutoBuilder {
17
18        @Override
19        public Schema finish() {
20
21                if (stream == null) {
22                        stream(Schema.getDefaultDefinitionAsStream());
23                }
24
25                XmlLoader xmlLoader = new XmlLoader();
26                xmlLoader.setUseLowerCase(true);
27                xmlLoader.getRegistry()
28                        .registerAndBuild(Schema.class)
29                        .registerAndBuild(FramsClassBuilder.class)
30                        .registerAndBuild(NeuroClassBuilder.class)
31                        .registerAndBuild(ParamBuilder.class)
32                        .registerAndBuild(NeuroParamBuilder.class)
33                        .registerAndBuild(GroupBuilder.class)
34                        ;
35
36                new ModelPackage().register(xmlLoader.getRegistry());
37
38                Schema schema = xmlLoader.load(Schema.class, stream);
39                new ModelPackage().register(schema.getRegistry());
40                return schema;
41        }
42
43        @Override
44        public List<Object> autoFinish() {
45                Schema result = finish();
46                return Arrays.asList((Object) result);
47        }
48
49}
Note: See TracBrowser for help on using the repository browser.