Skip to content
This repository was archived by the owner on Oct 20, 2022. It is now read-only.

Commit e86be29

Browse files
committed
Merge pull request #28 from Orange-OpenSource/long-support
cep: long and boolean support
2 parents c0c3d55 + 8e1870e commit e86be29

File tree

3 files changed

+34
-2
lines changed

3 files changed

+34
-2
lines changed

cepheus-cep/src/main/java/com/orange/cepheus/cep/EventMapper.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,8 @@ private Class classForType(String attributeType) {
222222
return String.class;
223223
case "int":
224224
return int.class;
225+
case "long":
226+
return long.class;
225227
case "float":
226228
return float.class;
227229
case "double":
@@ -273,9 +275,11 @@ private Object valueForString(String value, String type, String name) throws Eve
273275
case "string":
274276
return value;
275277
case "boolean":
276-
return value;
278+
return Boolean.valueOf(value);
277279
case "int":
278280
return Integer.valueOf(value);
281+
case "long":
282+
return Long.valueOf(value);
279283
case "float":
280284
return Float.valueOf(value);
281285
case "double":

cepheus-cep/src/test/java/com/orange/cepheus/cep/EventMapperTest.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ public void testEsperTypes() {
5050
e.addAttribute(new Attribute("4", "float"));
5151
e.addAttribute(new Attribute("5", "boolean"));
5252
e.addAttribute(new Attribute("6", "XXXX"));
53+
e.addAttribute(new Attribute("7", "long"));
5354

5455
Map<String, Object> map = eventMapper.esperTypeFromEventType(e);
5556

@@ -59,6 +60,7 @@ public void testEsperTypes() {
5960
assertEquals(int.class, map.get("3"));
6061
assertEquals(float.class, map.get("4"));
6162
assertEquals(boolean.class, map.get("5"));
63+
assertEquals(long.class, map.get("7"));
6264
}
6365

6466
/**
@@ -92,6 +94,9 @@ public void testContextElementConversion() throws Exception {
9294
attributes.add(new ContextAttribute("2", "float", 1.4f));
9395
attributes.add(new ContextAttribute("3", "double", 3.1d));
9496
attributes.add(new ContextAttribute("4", "int", 3));
97+
attributes.add(new ContextAttribute("5", "long", 3l));
98+
attributes.add(new ContextAttribute("6", "boolean", true));
99+
attributes.add(new ContextAttribute("7", "boolean", false));
95100
ce.setContextAttributeList(attributes);
96101

97102
Map<String, Object> values = eventMapper.eventFromContextElement(ce).getValues();
@@ -101,6 +106,9 @@ public void testContextElementConversion() throws Exception {
101106
assertEquals(1.4f, values.get("2"));
102107
assertEquals(3.1d, values.get("3"));
103108
assertEquals(3, values.get("4"));
109+
assertEquals(3l, values.get("5"));
110+
assertEquals(true, values.get("6"));
111+
assertEquals(false, values.get("7"));
104112
}
105113

106114
/**
@@ -117,6 +125,9 @@ public void testContextElementConversionString() throws Exception {
117125
attributes.add(new ContextAttribute("2", "float", "1.4"));
118126
attributes.add(new ContextAttribute("3", "double", "3.1"));
119127
attributes.add(new ContextAttribute("4", "int", "3"));
128+
attributes.add(new ContextAttribute("5", "long", "3"));
129+
attributes.add(new ContextAttribute("6", "boolean", "true"));
130+
attributes.add(new ContextAttribute("7", "boolean", "false"));
120131
ce.setContextAttributeList(attributes);
121132

122133
Map<String, Object> values = eventMapper.eventFromContextElement(ce).getValues();
@@ -125,6 +136,9 @@ public void testContextElementConversionString() throws Exception {
125136
assertEquals(1.4f, values.get("2"));
126137
assertEquals(3.1d, values.get("3"));
127138
assertEquals(3, values.get("4"));
139+
assertEquals(3l, values.get("5"));
140+
assertEquals(true, values.get("6"));
141+
assertEquals(false, values.get("7"));
128142
}
129143

130144
/**
@@ -143,13 +157,19 @@ public void testContextElementConversionMetadata() throws Exception {
143157
metadatas.add(new ContextMetadata("2", "float", 1.4f));
144158
metadatas.add(new ContextMetadata("3", "double", 3.1d));
145159
metadatas.add(new ContextMetadata("4", "int", 3));
160+
metadatas.add(new ContextMetadata("5", "long", 3l));
161+
metadatas.add(new ContextMetadata("6", "boolean", true));
162+
metadatas.add(new ContextMetadata("7", "boolean", false));
146163
ca.setMetadata(metadatas);
147164

148165
Map<String, Object> values = eventMapper.eventFromContextElement(ce).getValues();
149166
assertEquals("hello", values.get("ATTR1_1"));
150167
assertEquals(1.4f, values.get("ATTR1_2"));
151168
assertEquals(3.1d, values.get("ATTR1_3"));
152169
assertEquals(3, values.get("ATTR1_4"));
170+
assertEquals(3l, values.get("ATTR1_5"));
171+
assertEquals(true, values.get("ATTR1_6"));
172+
assertEquals(false, values.get("ATTR1_7"));
153173
}
154174

155175
/**
@@ -168,13 +188,21 @@ public void testContextElementConversionMetadataString() throws Exception {
168188
metadatas.add(new ContextMetadata("2", "float", "1.4"));
169189
metadatas.add(new ContextMetadata("3", "double", "3.1"));
170190
metadatas.add(new ContextMetadata("4", "int", "3"));
191+
metadatas.add(new ContextMetadata("5", "long", "3"));
192+
metadatas.add(new ContextMetadata("6", "boolean", "true"));
193+
metadatas.add(new ContextMetadata("7", "boolean", "false"));
194+
195+
171196
ca.setMetadata(metadatas);
172197

173198
Map<String, Object> values = eventMapper.eventFromContextElement(ce).getValues();
174199
assertEquals("hello", values.get("ATTR1_1"));
175200
assertEquals(1.4f, values.get("ATTR1_2"));
176201
assertEquals(3.1d, values.get("ATTR1_3"));
177202
assertEquals(3, values.get("ATTR1_4"));
203+
assertEquals(3l, values.get("ATTR1_5"));
204+
assertEquals(true, values.get("ATTR1_6"));
205+
assertEquals(false, values.get("ATTR1_7"));
178206
}
179207

180208
/**

doc/cep/mapping.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Therefore no Context Attribute is allowed to be named `id`.
2929

3030
### Simple attribute types
3131

32-
The current version of the CEP engine only handle simple attribute types (like string, int, float, ...)
32+
The current version of the CEP engine only handle simple attribute types (like string, int, long, float, double and boolean)
3333
and cannot execute statements for complex types like objects or arrays because of the strongly typed nature of the CEP engine.
3434

3535
### Accessing attributes metadata

0 commit comments

Comments
 (0)