source: java/main/src/main/java/com/framsticks/parsers/GenotypeLoader.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: 4.9 KB
Line 
1package com.framsticks.parsers;
2
3import com.framsticks.model.Genotype;
4import com.framsticks.params.*;
5import com.framsticks.params.types.*;
6
7import org.apache.logging.log4j.Logger;
8import org.apache.logging.log4j.LogManager;
9import static com.framsticks.params.ParamFlags.*;
10
11public class GenotypeLoader extends MultiParamLoader {
12        private Genotype genotypeReturnObject = new Genotype();
13        private static Logger logger = LogManager.getLogger(GenotypeLoader.class);
14
15        public GenotypeLoader() throws Exception {
16
17                FramsClass entries = FramsClass.build()
18                        .name("Genotype")
19                        .id("org")
20                        .description("A Genotype with the associated performance information. All but one Genotype objects are placed in Genotype Groups. There is also a single static Genotype object not associated with a group, which is used as a temporary storage by genetic operators and some functions from GenePools.")
21                        .group("Body")
22                        .group("Performance")
23                        .group("Fitness")
24                        .group("Conversions")
25                        .param(Param.build().id("name").group(0).name("Name").type(StringParam.class).min(0).max(40))
26                        .param(Param.build().id("genotype").group(0).name("Genotype").type(StringParam.class).min(1))
27                        .param(Param.build().id("info").group(0).name("Info").type(StringParam.class).min(1).help("Additional information or comments"))
28                        .param(Param.build().id("simi").group(1).flags(READONLY | DONTSAVE).name("Similarity").type(FloatParam.class))
29                        .param(Param.build().id("energ0").group(1).flags(READONLY | DONTSAVE).name("Starting energy").type(FloatParam.class))
30                        .param(Param.build().id("strsiz").group(1).flags(READONLY | DONTSAVE | USERHIDDEN).name("Body parts (deprecated; use numparts)").type(FloatParam.class))
31                        .param(Param.build().id("strjoints").group(1).flags(READONLY | DONTSAVE | USERHIDDEN).name("Body joints (deprecated; use numjoints)").type(FloatParam.class))
32                        .param(Param.build().id("nnsiz").group(1).flags(READONLY | DONTSAVE | USERHIDDEN).name("Brain size (deprecated; use numneurons)").type(FloatParam.class))
33                        .param(Param.build().id("nncon").group(1).flags(READONLY | DONTSAVE | USERHIDDEN).name("Brain connections (deprecated; use numconnections)").type(FloatParam.class))
34                        .param(Param.build().id("numparts").group(1).flags(READONLY | DONTSAVE).name("Body parts").type(FloatParam.class))
35                        .param(Param.build().id("numjoints").group(1).flags(READONLY | DONTSAVE).name("Body joints").type(FloatParam.class))
36                        .param(Param.build().id("numneurons").group(1).flags(READONLY | DONTSAVE).name("Brain size").type(FloatParam.class))
37                        .param(Param.build().id("numconnections").group(1).flags(READONLY | DONTSAVE).name("Brain connections").type(FloatParam.class))
38                        .param(Param.build().id("num").group(2).name("Ordinal number").type(DecimalParam.class))
39                        .param(Param.build().id("gnum").group(2).name("Generation").type(DecimalParam.class))
40                        .param(Param.build().id("popsiz").group(2).flags(USERHIDDEN).name("Deprecated; use entities").type(DecimalParam.class))
41                        .param(Param.build().id("entities").group(2).flags(DONTSAVE).name("Instances").type(DecimalParam.class).help("Copies of this genotype"))
42                        .param(Param.build().id("lifespan").group(2).name("Life span").type(FloatParam.class).help("Average life span"))
43                        .param(Param.build().id("velocity").group(2).name("Velocity").type(FloatParam.class).help("Average velocity"))
44                        .param(Param.build().id("distance").group(2).name("Distance").type(FloatParam.class))
45                        .param(Param.build().id("vertvel").group(2).name("Vertical velocity").type(FloatParam.class))
46                        .param(Param.build().id("vertpos").group(2).name("Vertical position").type(FloatParam.class))
47                        .param(Param.build().id("fit").group(3).flags(READONLY | DONTSAVE).name("Fitness").type(FloatParam.class))
48                        .param(Param.build().id("fit2").group(3).flags(READONLY | DONTSAVE).name("Final fitness").type(FloatParam.class).help("Fitness shifted by (avg-n*stddev)"))
49                        .param(Param.build().id("f0genotype").group(4).flags(READONLY | DONTSAVE).name("f0 genotype").type(StringParam.class).min(1).help("converted to f0 genotype"))
50                        .param(Param.build().id("user1").group(2).name("User field 1").type(UniversalParam.class))
51                        .param(Param.build().id("user2").group(2).name("User field 2").type(UniversalParam.class))
52                        .param(Param.build().id("user3").group(2).name("User field 3").type(UniversalParam.class))
53                        .param(Param.build().id("isValid").group(0).flags(READONLY | DONTSAVE | USERHIDDEN).name("Valid").type(DecimalParam.class).min(0).max(1))
54                        .param(Param.build().id("uid").group(0).flags(READONLY | USERHIDDEN).name("#").type("s").help("Unique identifier"))
55                        .finish();
56
57                Access reflectionParam = new PropertiesAccess(entries);
58                setAccessProvider(new AccessStash().add(reflectionParam));
59                addBreakCondition(Status.AfterObject);
60        }
61
62        public Genotype loadNextGenotype() throws Exception {
63                logger.info("Loading next genotype");
64                Status result = go();
65
66                if (result == Status.AfterObject) {
67                        return genotypeReturnObject;
68                }
69
70                return null;
71        }
72}
Note: See TracBrowser for help on using the repository browser.