Skip to content

Commit b530d7c

Browse files
committed
Add data type interfaces for script and schema
1 parent 4f3d1bd commit b530d7c

File tree

11 files changed

+206
-0
lines changed

11 files changed

+206
-0
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.relogiclabs.jschema.type;
2+
3+
import java.util.List;
4+
5+
public interface EArray extends EValue {
6+
EValue get(int index);
7+
List<? extends EValue> elements();
8+
9+
default int size() {
10+
return elements().size();
11+
}
12+
13+
@Override
14+
default EType getType() {
15+
return EType.ARRAY;
16+
}
17+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.relogiclabs.jschema.type;
2+
3+
public interface EBoolean extends EValue {
4+
boolean getValue();
5+
6+
@Override
7+
default boolean toBoolean() {
8+
return getValue();
9+
}
10+
11+
@Override
12+
default EType getType() {
13+
return EType.BOOLEAN;
14+
}
15+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.relogiclabs.jschema.type;
2+
3+
public interface EDouble extends ENumber {
4+
double getValue();
5+
6+
@Override
7+
default double toDouble() {
8+
return getValue();
9+
}
10+
11+
@Override
12+
default EType getType() {
13+
return EType.DOUBLE;
14+
}
15+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.relogiclabs.jschema.type;
2+
3+
public interface EInteger extends ENumber {
4+
long getValue();
5+
6+
@Override
7+
default double toDouble() {
8+
return getValue();
9+
}
10+
11+
@Override
12+
default EType getType() {
13+
return EType.INTEGER;
14+
}
15+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.relogiclabs.jschema.type;
2+
3+
public interface ENull extends EValue {
4+
String STRING = "null";
5+
ENull NULL = new ENull() {
6+
@Override
7+
public String toString() {
8+
return STRING;
9+
}
10+
};
11+
12+
@Override
13+
default EType getType() {
14+
return EType.NULL;
15+
}
16+
17+
@Override
18+
default boolean toBoolean() {
19+
return false;
20+
}
21+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.relogiclabs.jschema.type;
2+
3+
public interface ENumber extends EValue {
4+
double toDouble();
5+
6+
@Override
7+
default EType getType() {
8+
return EType.NUMBER;
9+
}
10+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.relogiclabs.jschema.type;
2+
3+
import java.util.Set;
4+
5+
public interface EObject extends EValue {
6+
EValue get(String key);
7+
int size();
8+
Set<String> keySet();
9+
10+
@Override
11+
default EType getType() {
12+
return EType.OBJECT;
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.relogiclabs.jschema.type;
2+
3+
public interface EString extends EValue {
4+
String getValue();
5+
6+
default int length() {
7+
return getValue().length();
8+
}
9+
10+
@Override
11+
default EType getType() {
12+
return EType.STRING;
13+
}
14+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.relogiclabs.jschema.type;
2+
3+
import lombok.Getter;
4+
5+
@Getter
6+
public enum EType {
7+
NUMBER("#number"),
8+
INTEGER("#integer"),
9+
FLOAT("#float"),
10+
DOUBLE("#double"),
11+
STRING("#string"),
12+
ARRAY("#array"),
13+
RANGE("#range"),
14+
OBJECT("#object"),
15+
BOOLEAN("#boolean"),
16+
DATETIME("#datetime"),
17+
DATE("#date"),
18+
TIME("#time"),
19+
PRIMITIVE("#primitive"),
20+
COMPOSITE("#composite"),
21+
ANY("#any"),
22+
NULL("#null"),
23+
UNDEFINED("#undefined"),
24+
VOID("#void");
25+
26+
private final String name;
27+
28+
EType(String name) {
29+
this.name = name;
30+
}
31+
32+
@Override
33+
public String toString() {
34+
return name;
35+
}
36+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.relogiclabs.jschema.type;
2+
3+
public interface EUndefined extends EValue {
4+
String STRING = "undefined";
5+
EUndefined UNDEFINED = new EUndefined() {
6+
@Override
7+
public String toString() {
8+
return STRING;
9+
}
10+
};
11+
12+
@Override
13+
default EType getType() {
14+
return EType.UNDEFINED;
15+
}
16+
17+
@Override
18+
default boolean toBoolean() {
19+
return false;
20+
}
21+
}

0 commit comments

Comments
 (0)