Skip to content

Commit 66eea84

Browse files
authored
135 option enum value type alias (#143)
* Emit enum with value type alias * Use enumValueTypeAlias for constant type annotation for rust
1 parent b012f75 commit 66eea84

37 files changed

Lines changed: 155 additions & 63 deletions

annotation/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>online.sharedtype</groupId>
66
<artifactId>sharedtype-parent</artifactId>
7-
<version>0.13.0-SNAPSHOT</version>
7+
<version>0.12.1-SNAPSHOT</version>
88
<relativePath>../pom.xml</relativePath>
99
</parent>
1010

e2e/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>online.sharedtype</groupId>
66
<artifactId>sharedtype-parent</artifactId>
7-
<version>0.13.0-SNAPSHOT</version>
7+
<version>0.12.1-SNAPSHOT</version>
88
<relativePath>../pom.xml</relativePath>
99
</parent>
1010

internal/src/main/java/online/sharedtype/processor/domain/def/ConcreteTypeDef.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public abstract class ConcreteTypeDef implements TypeDef {
2929

3030
/**
3131
* Register a counterpart typeInfo.
32+
* <b>Note:</b> This method should not be called from outside, please use {@link ConcreteTypeInfo#shallowResolved()}
3233
*/
3334
public abstract void linkTypeInfo(ConcreteTypeInfo typeInfo);
3435
}

internal/src/main/java/online/sharedtype/processor/domain/def/EnumDef.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,13 @@ public TypeInfo getComponentValueType() {
5454
}
5555
return enumValueInfos.get(0).value().getValueType();
5656
}
57+
/** @return true if component value has a different type other than this enumType, i.e. when enumValue is defined */
58+
public boolean hasComponentValueType() {
59+
return !getComponentValueType().equals(typeInfo);
60+
}
61+
public String valueTypeAlias() {
62+
return String.format("%sValue", simpleName);
63+
}
5764

5865
@Override
5966
public Set<ConcreteTypeInfo> typeInfoSet() {

internal/src/main/java/online/sharedtype/processor/domain/value/EnumConstantValue.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,11 @@
99
@EqualsAndHashCode(callSuper = true)
1010
public final class EnumConstantValue extends LiteralValue {
1111
private static final long serialVersionUID = -6711930218877737970L;
12+
private final ConcreteTypeInfo enumType;
1213
private final String enumConstantName;
13-
EnumConstantValue(String enumConstantName, ConcreteTypeInfo valueType, Object value) {
14+
EnumConstantValue(ConcreteTypeInfo enumType, String enumConstantName, ConcreteTypeInfo valueType, Object value) {
1415
super(valueType, value);
16+
this.enumType = enumType;
1517
this.enumConstantName = enumConstantName;
1618
}
1719

internal/src/main/java/online/sharedtype/processor/domain/value/ValueHolder.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import online.sharedtype.processor.domain.Constants;
44
import online.sharedtype.processor.domain.type.ConcreteTypeInfo;
5-
import online.sharedtype.processor.domain.type.TypeInfo;
65

76
import java.io.Serializable;
87

@@ -27,15 +26,15 @@ static ValueHolder of(ConcreteTypeInfo valueType, Object value) {
2726
}
2827
}
2928

30-
static EnumConstantValue ofEnum(String enumConstantName, ConcreteTypeInfo valueType, Object value) {
29+
static EnumConstantValue ofEnum(ConcreteTypeInfo enumType, String enumConstantName, ConcreteTypeInfo valueType, Object value) {
3130
ConcreteTypeInfo actualValueType = valueType;
3231
Object actualValue = value;
3332
while (actualValue instanceof ValueHolder) {
3433
ValueHolder valueHolder = (ValueHolder) actualValue;
3534
actualValueType = valueHolder.getValueType();
3635
actualValue = valueHolder.getValue();
3736
}
38-
return new EnumConstantValue(enumConstantName, actualValueType, actualValue);
37+
return new EnumConstantValue(enumType, enumConstantName, actualValueType, actualValue);
3938
}
4039

4140
LiteralValue NULL = new LiteralValue(Constants.NULL_TYPE_INFO,null);

it/java17/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>online.sharedtype</groupId>
66
<artifactId>sharedtype-it-parent</artifactId>
7-
<version>0.13.0-SNAPSHOT</version>
7+
<version>0.12.1-SNAPSHOT</version>
88
<relativePath>../pom.xml</relativePath>
99
</parent>
1010

it/java8/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>online.sharedtype</groupId>
66
<artifactId>sharedtype-it-parent</artifactId>
7-
<version>0.13.0-SNAPSHOT</version>
7+
<version>0.12.1-SNAPSHOT</version>
88
<relativePath>../pom.xml</relativePath>
99
</parent>
1010

it/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>online.sharedtype</groupId>
66
<artifactId>sharedtype-parent</artifactId>
7-
<version>0.13.0-SNAPSHOT</version>
7+
<version>0.12.1-SNAPSHOT</version>
88
<relativePath>../pom.xml</relativePath>
99
</parent>
1010

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>online.sharedtype</groupId>
88
<artifactId>sharedtype-parent</artifactId>
9-
<version>0.13.0-SNAPSHOT</version>
9+
<version>0.12.1-SNAPSHOT</version>
1010
<packaging>pom</packaging>
1111

1212
<name>SharedType Parent</name>

0 commit comments

Comments
 (0)