Skip to content
This repository was archived by the owner on Dec 15, 2018. It is now read-only.

Commit 6b579c2

Browse files
authored
Updated Ozark regarding new Models interface (#183)
1 parent 83566ee commit 6b579c2

File tree

15 files changed

+33
-205
lines changed

15 files changed

+33
-205
lines changed

core/src/main/java/org/mvcspec/ozark/core/ModelsImpl.java

Lines changed: 20 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -17,91 +17,50 @@
1717

1818
import javax.enterprise.context.RequestScoped;
1919
import javax.mvc.Models;
20-
import java.util.*;
20+
import java.util.Collections;
21+
import java.util.Iterator;
22+
import java.util.LinkedHashMap;
23+
import java.util.Map;
24+
import java.util.Objects;
2125

2226
/**
2327
* Implementation of {@link javax.mvc.Models} interface. A CDI class that delegates
2428
* to a {@link java.util.Map} implementation.
2529
*
2630
* @author Santiago Pericas-Geertsen
31+
* @author Christian Kaltepoth
2732
*/
2833
@RequestScoped
2934
public class ModelsImpl implements Models {
3035

31-
private Map<String, Object> delegate = new HashMap<>();
36+
private final Map<String, Object> map = new LinkedHashMap<>();
3237

3338
@Override
34-
public int size() {
35-
return delegate.size();
39+
public Models put(String name, Object model) {
40+
Objects.requireNonNull(name, "Name must not be null");
41+
map.put(name, model);
42+
return this;
3643
}
3744

3845
@Override
39-
public boolean isEmpty() {
40-
return delegate.isEmpty();
46+
public Object get(String name) {
47+
return get(name, Object.class);
4148
}
4249

4350
@Override
44-
public boolean containsKey(Object key) {
45-
return delegate.containsKey(key);
51+
public <T> T get(String name, Class<T> type) {
52+
Objects.requireNonNull(name, "Name must not be null");
53+
Objects.requireNonNull(type, "Type must not be null");
54+
return type.cast(map.get(name));
4655
}
4756

4857
@Override
49-
public boolean containsValue(Object value) {
50-
return delegate.containsValue(value);
51-
}
52-
53-
@Override
54-
public Object get(Object key) {
55-
return delegate.get(key);
56-
}
57-
58-
@Override
59-
public Object put(String key, Object value) {
60-
return delegate.put(key, value);
61-
}
62-
63-
@Override
64-
public Object remove(Object key) {
65-
return delegate.remove(key);
66-
}
67-
68-
@Override
69-
public void putAll(Map<? extends String, ?> m) {
70-
delegate.putAll(m);
71-
}
72-
73-
@Override
74-
public void clear() {
75-
delegate.clear();
76-
}
77-
78-
@Override
79-
public Set<String> keySet() {
80-
return delegate.keySet();
81-
}
82-
83-
@Override
84-
public Collection<Object> values() {
85-
return delegate.values();
86-
}
87-
88-
@Override
89-
public Set<Entry<String, Object>> entrySet() {
90-
return delegate.entrySet();
91-
}
92-
93-
@Override
94-
public boolean equals(Object o) {
95-
return delegate.equals(o);
96-
}
97-
98-
@Override
99-
public int hashCode() {
100-
return delegate.hashCode();
58+
public Map<String, Object> asMap() {
59+
return Collections.unmodifiableMap(new LinkedHashMap<>(map));
10160
}
10261

10362
@Override
10463
public Iterator<String> iterator() {
105-
return delegate.keySet().iterator();
64+
return map.keySet().iterator();
10665
}
10766
}

core/src/test/java/org/mvcspec/ozark/core/ModelsImplTest.java

Lines changed: 0 additions & 131 deletions
Original file line numberDiff line numberDiff line change
@@ -33,50 +33,6 @@
3333
@SuppressWarnings("unchecked")
3434
public class ModelsImplTest {
3535

36-
/**
37-
* Test size method.
38-
*/
39-
@Test
40-
public void testSize() {
41-
ModelsImpl models = new ModelsImpl();
42-
assertEquals(0, models.size());
43-
models.put("1", "1");
44-
assertEquals(1, models.size());
45-
}
46-
47-
/**
48-
* Test isEmpty method.
49-
*/
50-
@Test
51-
public void testIsEmpty() {
52-
ModelsImpl models = new ModelsImpl();
53-
assertTrue(models.isEmpty());
54-
models.put("1", "1");
55-
assertFalse(models.isEmpty());
56-
}
57-
58-
/**
59-
* Test containsKey method.
60-
*/
61-
@Test
62-
public void testContainsKey() {
63-
ModelsImpl models = new ModelsImpl();
64-
assertFalse(models.containsKey("K"));
65-
models.put("K", "V");
66-
assertTrue(models.containsKey("K"));
67-
}
68-
69-
/**
70-
* Test containsValue method.
71-
*/
72-
@Test
73-
public void testContainsValue() {
74-
ModelsImpl models = new ModelsImpl();
75-
assertFalse(models.containsValue("V"));
76-
models.put("K", "V");
77-
assertTrue(models.containsValue("V"));
78-
}
79-
8036
/**
8137
* Test get method.
8238
*/
@@ -89,93 +45,6 @@ public void testGet() {
8945
assertEquals("V", models.get("K"));
9046
}
9147

92-
/**
93-
* Test remove method.
94-
*/
95-
@Test
96-
public void testRemove() {
97-
ModelsImpl models = new ModelsImpl();
98-
assertEquals(0, models.size());
99-
models.put("K", "V");
100-
assertEquals(1, models.size());
101-
models.remove("K");
102-
assertEquals(0, models.size());
103-
}
104-
105-
/**
106-
* Test putAll method.
107-
*/
108-
@Test
109-
public void testPutAll() {
110-
ModelsImpl models = new ModelsImpl();
111-
assertEquals(0, models.size());
112-
HashMap otherMap = new HashMap();
113-
otherMap.put("1", "1V");
114-
otherMap.put("2", "2V");
115-
models.putAll(otherMap);
116-
assertEquals(2, models.size());
117-
}
118-
119-
/**
120-
* Test clear method.
121-
*/
122-
@Test
123-
public void testClear() {
124-
ModelsImpl models = new ModelsImpl();
125-
assertFalse(models.containsValue("V"));
126-
models.put("K", "V");
127-
assertEquals(1, models.size());
128-
models.clear();
129-
assertEquals(0, models.size());
130-
}
131-
132-
/**
133-
* Test keySet method.
134-
*/
135-
@Test
136-
public void testKeySet() {
137-
ModelsImpl models = new ModelsImpl();
138-
assertNotNull(models.keySet());
139-
}
140-
141-
/**
142-
* Test values method.
143-
*/
144-
@Test
145-
public void testValues() {
146-
ModelsImpl models = new ModelsImpl();
147-
assertNotNull(models.values());
148-
}
149-
150-
/**
151-
* Test entrySet method.
152-
*/
153-
@Test
154-
public void testEntrySet() {
155-
ModelsImpl models = new ModelsImpl();
156-
assertNotNull(models.entrySet());
157-
}
158-
159-
/**
160-
* Test equals method.
161-
*/
162-
@Test
163-
public void testEquals() {
164-
ModelsImpl modelsA = new ModelsImpl();
165-
ModelsImpl modelsB = new ModelsImpl();
166-
assertTrue(modelsA.equals(modelsB));
167-
}
168-
169-
/**
170-
* Test hashCode method.
171-
*/
172-
@Test
173-
public void testHashCode() {
174-
ModelsImpl modelsA = new ModelsImpl();
175-
ModelsImpl modelsB = new ModelsImpl();
176-
assertEquals(modelsA.hashCode(), modelsB.hashCode());
177-
}
178-
17948
/**
18049
* Test iterator method.
18150
*/

ext/asciidoc/src/main/java/org/mvcspec/ozark/ext/asciidoc/AsciiDocViewEngine.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public void processView(ViewEngineContext context) throws ViewEngineException {
6565
BufferedReader reader = new BufferedReader(isr)) {
6666

6767
Options options = new Options();
68-
options.setAttributes(new HashMap(context.getModels()));
68+
options.setAttributes(new HashMap<>(context.getModels().asMap()));
6969

7070
asciidoctor.convert(reader, writer, options);
7171
} catch (IOException e) {

ext/freemarker/src/main/java/org/mvcspec/ozark/ext/freemarker/FreemarkerViewEngine.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public void processView(ViewEngineContext context) throws ViewEngineException {
5959

6060
Template template = configuration.getTemplate(resolveView(context));
6161

62-
Map<String, Object> model = new HashMap<>(context.getModels());
62+
Map<String, Object> model = new HashMap<>(context.getModels().asMap());
6363
model.put("request", context.getRequest(HttpServletRequest.class));
6464

6565
template.process(model, writer);

ext/groovy/src/main/java/org/mvcspec/ozark/ext/groovy/GroovyViewEngine.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public boolean supports(String view) {
6060

6161
public void processView(ViewEngineContext context) throws ViewEngineException {
6262

63-
Map<String, Object> model = new HashMap<>(context.getModels());
63+
Map<String, Object> model = new HashMap<>(context.getModels().asMap());
6464
model.put("request", context.getRequest(HttpServletRequest.class));
6565
Charset charset = resolveCharsetAndSetContentType(context);
6666
try (Writer writer = new OutputStreamWriter(context.getOutputStream(), charset);

ext/handlebars/src/main/java/org/mvcspec/ozark/ext/handlebars/HandlebarsViewEngine.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public boolean supports(String view) {
6060
@Override
6161
public void processView(ViewEngineContext context) throws ViewEngineException {
6262

63-
Map<String, Object> model = new HashMap<>(context.getModels());
63+
Map<String, Object> model = new HashMap<>(context.getModels().asMap());
6464
model.put("request", context.getRequest(HttpServletRequest.class));
6565

6666
Charset charset = resolveCharsetAndSetContentType(context);

ext/jade/src/main/java/org/mvcspec/ozark/ext/jade/JadeViewEngine.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public void processView(ViewEngineContext context) throws ViewEngineException {
6161

6262
JadeTemplate template = jade.getTemplate(resolveView(context));
6363

64-
Map<String, Object> model = new HashMap<>(context.getModels());
64+
Map<String, Object> model = new HashMap<>(context.getModels().asMap());
6565
model.put("request", context.getRequest(HttpServletRequest.class));
6666

6767
jade.renderTemplate(template, model, writer);

ext/jetbrick/src/main/java/org/mvcspec/ozark/ext/jetbrick/JetbrickViewEngine.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public void processView(ViewEngineContext context) throws ViewEngineException {
6565

6666
JetTemplate template = jetEngine.getTemplate(resolveView(context));
6767

68-
Map<String, Object> model = new HashMap<>(context.getModels());
68+
Map<String, Object> model = new HashMap<>(context.getModels().asMap());
6969
model.put("request", context.getRequest(HttpServletRequest.class));
7070

7171
template.render(model, writer);

ext/jsr223/src/main/java/org/mvcspec/ozark/ext/jsr223/Jsr223ViewEngine.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ public void processView(ViewEngineContext context) throws ViewEngineException {
9292
InputStream inputStream = servletContext.getResourceAsStream(resolveView(context));
9393
InputStreamReader reader = new InputStreamReader(inputStream);
9494
Bindings bindings = scriptEngine.createBindings();
95-
bindings.put("models", context.getModels());
95+
bindings.put("models", context.getModels().asMap());
9696
responseObject = scriptEngine.eval(reader, bindings);
9797
} catch (ScriptException exception) {
9898
throw new ViewEngineException("Unable to execute script", exception);

ext/jtwig/src/main/java/org/mvcspec/ozark/ext/jtwig/JtwigViewEngine.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public void processView(ViewEngineContext context) throws ViewEngineException {
5151

5252
try {
5353

54-
Map<String, Object> model = new HashMap<>(context.getModels());
54+
Map<String, Object> model = new HashMap<>(context.getModels().asMap());
5555
model.put("request", context.getRequest(HttpServletRequest.class));
5656

5757
HttpServletRequest request = context.getRequest(HttpServletRequest.class);

0 commit comments

Comments
 (0)