Class JavaTypeJoiner
java.lang.Object
com.rosetta.util.types.BinaryCommunicativeJavaTypeVisitor<JavaType>
com.regnosys.rosetta.generator.java.types.JavaTypeJoiner
A service that can compute the least common supertype of two given Java types.
Examples: given three classes A, B, C with B <: A.
visitTypes(A, B) -> A
visitTypes(A, C) -> Object
visitTypes(B, B) -> B
visitTypes(List, List) -> List<? extends A>
visitTypes(List, List) -> List<?>
visitTypes(List, B) -> Object
visitTypes(boolean, Boolean) -> Boolean
visitTypes(int, float) -> float
visitTypes(Integer, BigDecimal) -> Number
visitTypes(List, List<? extends BigDecimal>) -> List<? extends Number>
Based on the subtype relation of the Java specification:
https://docs.oracle.com/javase/specs/jls/se11/html/jls-4.html#jls-4.10
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected JavaReferenceTypeprotected JavaArrayTypeprotected JavaClass<?>visitTypeAndNull(JavaClass<?> left) protected JavaParameterizedType<?>visitTypeAndNull(JavaParameterizedType<?> left) protected JavaClass<?>protected JavaTypeVariablevisitTypes(JavaArrayType left, JavaArrayType right) protected JavaClass<?>visitTypes(JavaArrayType left, JavaClass<?> right) protected JavaTypevisitTypes(JavaArrayType left, JavaParameterizedType<?> right) protected JavaTypevisitTypes(JavaArrayType left, JavaPrimitiveType right) protected JavaTypevisitTypes(JavaArrayType left, JavaTypeVariable right) protected JavaClass<?>visitTypes(JavaClass<?> left, JavaClass<?> right) protected JavaClass<?>visitTypes(JavaClass<?> left, JavaParameterizedType<?> right) protected JavaTypevisitTypes(JavaClass<?> left, JavaPrimitiveType right) protected JavaReferenceTypevisitTypes(JavaClass<?> left, JavaTypeVariable right) protected JavaClass<?>visitTypes(JavaParameterizedType<?> left, JavaParameterizedType<?> right) protected JavaTypevisitTypes(JavaParameterizedType<?> left, JavaPrimitiveType right) protected JavaTypevisitTypes(JavaParameterizedType<?> left, JavaTypeVariable right) protected JavaTypevisitTypes(JavaPrimitiveType left, JavaPrimitiveType right) protected JavaReferenceTypevisitTypes(JavaPrimitiveType left, JavaTypeVariable right) visitTypes(JavaReferenceType left, JavaReferenceType right) protected JavaReferenceTypevisitTypes(JavaTypeVariable left, JavaTypeVariable right) Methods inherited from class com.rosetta.util.types.BinaryCommunicativeJavaTypeVisitor
visitTypes
-
Constructor Details
-
JavaTypeJoiner
public JavaTypeJoiner()
-
-
Method Details
-
visitTypes
-
visitTypes
- Specified by:
visitTypesin classBinaryCommunicativeJavaTypeVisitor<JavaType>
-
visitTypes
- Specified by:
visitTypesin classBinaryCommunicativeJavaTypeVisitor<JavaType>
-
visitTypes
- Specified by:
visitTypesin classBinaryCommunicativeJavaTypeVisitor<JavaType>
-
visitTypes
- Specified by:
visitTypesin classBinaryCommunicativeJavaTypeVisitor<JavaType>
-
visitTypes
- Specified by:
visitTypesin classBinaryCommunicativeJavaTypeVisitor<JavaType>
-
visitTypeAndNull
- Specified by:
visitTypeAndNullin classBinaryCommunicativeJavaTypeVisitor<JavaType>
-
visitTypes
- Specified by:
visitTypesin classBinaryCommunicativeJavaTypeVisitor<JavaType>
-
visitTypes
- Specified by:
visitTypesin classBinaryCommunicativeJavaTypeVisitor<JavaType>
-
visitTypes
- Specified by:
visitTypesin classBinaryCommunicativeJavaTypeVisitor<JavaType>
-
visitTypes
- Specified by:
visitTypesin classBinaryCommunicativeJavaTypeVisitor<JavaType>
-
visitTypeAndNull
- Specified by:
visitTypeAndNullin classBinaryCommunicativeJavaTypeVisitor<JavaType>
-
visitTypes
- Specified by:
visitTypesin classBinaryCommunicativeJavaTypeVisitor<JavaType>
-
visitTypes
- Specified by:
visitTypesin classBinaryCommunicativeJavaTypeVisitor<JavaType>
-
visitTypes
- Specified by:
visitTypesin classBinaryCommunicativeJavaTypeVisitor<JavaType>
-
visitTypeAndNull
- Specified by:
visitTypeAndNullin classBinaryCommunicativeJavaTypeVisitor<JavaType>
-
visitTypes
- Specified by:
visitTypesin classBinaryCommunicativeJavaTypeVisitor<JavaType>
-
visitTypes
- Specified by:
visitTypesin classBinaryCommunicativeJavaTypeVisitor<JavaType>
-
visitTypeAndNull
- Specified by:
visitTypeAndNullin classBinaryCommunicativeJavaTypeVisitor<JavaType>
-
visitTypes
- Specified by:
visitTypesin classBinaryCommunicativeJavaTypeVisitor<JavaType>
-
visitTypeAndNull
- Specified by:
visitTypeAndNullin classBinaryCommunicativeJavaTypeVisitor<JavaType>
-
visitBothNull
- Specified by:
visitBothNullin classBinaryCommunicativeJavaTypeVisitor<JavaType>
-