View Javadoc
1   package io.guixer.lang;
2   
3   import static com.google.common.base.Preconditions.checkNotNull;
4   import static com.google.common.collect.Lists.newArrayList;
5   
6   import java.io.File;
7   import java.io.IOException;
8   import java.util.List;
9   
10  import net.avcompris.commons3.yaml.Yaml;
11  import net.avcompris.commons3.yaml.YamlUtils;
12  
13  public abstract class GuixerScenarioLoader1 {
14  
15  	public static GuixerScenario load(
16  		final File yamlFile
17  	) throws IOException, GuixerSyntaxException {
18  
19  		return AbstractGuixerScenarioLoader.load(yamlFile, new MyYamlStrategy1());
20  	}
21  
22  	private static class MyYamlStrategy1 implements MyYamlStrategy {
23  
24  		@Override
25  		public MyYaml loadYaml(
26  			final File yamlFile
27  		) throws IOException {
28  
29  			final Yaml yaml = YamlUtils.loadYaml(yamlFile);
30  
31  			return new MyYaml1(yaml);
32  		}
33  	}
34  
35  	private static class MyYaml1 implements MyYaml {
36  
37  		private final Yaml yaml;
38  
39  		public MyYaml1(
40  			final Yaml yaml
41  		) {
42  
43  			this.yaml = checkNotNull(yaml, "yaml");
44  		}
45  
46  		@Override
47  		public boolean isArray() {
48  
49  			return yaml.isArray();
50  		}
51  
52  		@Override
53  		public boolean isMap() {
54  
55  			return yaml.isMap();
56  		}
57  
58  		@Override
59  		public String asString() {
60  
61  			return yaml.asString();
62  		}
63  
64  		@Override
65  		public boolean asBoolean() {
66  
67  			return yaml.asBoolean();
68  		}
69  
70  		@Override
71  		public boolean has(
72  			final String name
73  		) {
74  
75  			return yaml.has(name);
76  		}
77  
78  		@Override
79  		public MyYaml get(
80  			final String name
81  		) {
82  
83  			final Yaml sub = yaml.get(name);
84  
85  			return new MyYaml1(sub);
86  		}
87  
88  		@Override
89  		public Iterable<MyYaml> items() {
90  
91  			final List<MyYaml> items = newArrayList();
92  
93  			for (final Yaml sub : yaml.items()) {
94  
95  				items.add(new MyYaml1(sub));
96  			}
97  
98  			return items;
99  		}
100 
101 		@Override
102 		public String uniqueKey() {
103 
104 			return yaml.keysAsStrings().iterator().next();
105 		}
106 
107 		@Override
108 		public Iterable<String> keysAsStrings() {
109 
110 			return yaml.keysAsStrings();
111 		}
112 	}
113 }