Add direction to JavaToKotlinClassMap and KotlinToJavaTypesMap
This commit is contained in:
+12
-6
@@ -96,20 +96,26 @@ public class JavaToKotlinClassMap extends JavaToKotlinClassMapBuilder implements
|
||||
@Override
|
||||
/*package*/ void register(
|
||||
@NotNull Class<?> javaClass,
|
||||
@NotNull ClassDescriptor kotlinDescriptor
|
||||
@NotNull ClassDescriptor kotlinDescriptor,
|
||||
@NotNull Direction direction
|
||||
) {
|
||||
register(getJavaClassFqName(javaClass), kotlinDescriptor);
|
||||
if (direction == Direction.BOTH || direction == Direction.JAVA_TO_KOTLIN) {
|
||||
register(getJavaClassFqName(javaClass), kotlinDescriptor);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
/*package*/ void register(
|
||||
@NotNull Class<?> javaClass,
|
||||
@NotNull ClassDescriptor kotlinDescriptor,
|
||||
@NotNull ClassDescriptor kotlinMutableDescriptor
|
||||
@NotNull ClassDescriptor kotlinMutableDescriptor,
|
||||
@NotNull Direction direction
|
||||
) {
|
||||
FqName javaClassName = getJavaClassFqName(javaClass);
|
||||
register(javaClassName, kotlinDescriptor);
|
||||
registerCovariant(javaClassName, kotlinMutableDescriptor);
|
||||
if (direction == Direction.BOTH || direction == Direction.JAVA_TO_KOTLIN) {
|
||||
FqName javaClassName = getJavaClassFqName(javaClass);
|
||||
register(javaClassName, kotlinDescriptor);
|
||||
registerCovariant(javaClassName, kotlinMutableDescriptor);
|
||||
}
|
||||
}
|
||||
|
||||
private void register(@NotNull FqName javaClassName, @NotNull ClassDescriptor kotlinDescriptor) {
|
||||
|
||||
+14
-2
@@ -28,6 +28,12 @@ import java.util.*;
|
||||
*/
|
||||
public abstract class JavaToKotlinClassMapBuilder {
|
||||
|
||||
public enum Direction {
|
||||
JAVA_TO_KOTLIN,
|
||||
KOTLIN_TO_JAVA,
|
||||
BOTH
|
||||
}
|
||||
|
||||
/*package*/ void init() {
|
||||
KotlinBuiltIns kotlinBuiltIns = KotlinBuiltIns.getInstance();
|
||||
|
||||
@@ -50,7 +56,13 @@ public abstract class JavaToKotlinClassMapBuilder {
|
||||
register(ListIterator.class, kotlinBuiltIns.getListIterator(), kotlinBuiltIns.getMutableListIterator());
|
||||
}
|
||||
|
||||
/*package*/ abstract void register(@NotNull Class<?> javaClass, @NotNull ClassDescriptor kotlinDescriptor);
|
||||
/*package*/ void register(@NotNull Class<?> javaClass, @NotNull ClassDescriptor kotlinDescriptor) {
|
||||
register(javaClass, kotlinDescriptor, Direction.BOTH);
|
||||
}
|
||||
/*package*/ abstract void register(@NotNull Class<?> javaClass, @NotNull ClassDescriptor kotlinDescriptor, @NotNull Direction direction);
|
||||
|
||||
/*package*/ abstract void register(@NotNull Class<?> javaClass, @NotNull ClassDescriptor kotlinDescriptor, @NotNull ClassDescriptor kotlinMutableDescriptor);
|
||||
/*package*/ void register(@NotNull Class<?> javaClass, @NotNull ClassDescriptor kotlinDescriptor, @NotNull ClassDescriptor kotlinMutableDescriptor) {
|
||||
register(javaClass, kotlinDescriptor, kotlinMutableDescriptor, Direction.BOTH);
|
||||
}
|
||||
/*package*/ abstract void register(@NotNull Class<?> javaClass, @NotNull ClassDescriptor kotlinDescriptor, @NotNull ClassDescriptor kotlinMutableDescriptor, @NotNull Direction direction);
|
||||
}
|
||||
|
||||
+11
-5
@@ -87,19 +87,25 @@ public class KotlinToJavaTypesMap extends JavaToKotlinClassMapBuilder {
|
||||
@Override
|
||||
/*package*/ void register(
|
||||
@NotNull Class<?> javaClass,
|
||||
@NotNull ClassDescriptor kotlinDescriptor
|
||||
@NotNull ClassDescriptor kotlinDescriptor,
|
||||
@NotNull Direction direction
|
||||
) {
|
||||
register(kotlinDescriptor, AsmTypeConstants.getType(javaClass));
|
||||
if (direction == Direction.BOTH || direction == Direction.KOTLIN_TO_JAVA) {
|
||||
register(kotlinDescriptor, AsmTypeConstants.getType(javaClass));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
/*package*/ void register(
|
||||
@NotNull Class<?> javaClass,
|
||||
@NotNull ClassDescriptor kotlinDescriptor,
|
||||
@NotNull ClassDescriptor kotlinMutableDescriptor
|
||||
@NotNull ClassDescriptor kotlinMutableDescriptor,
|
||||
@NotNull Direction direction
|
||||
) {
|
||||
register(javaClass, kotlinDescriptor);
|
||||
register(javaClass, kotlinMutableDescriptor);
|
||||
if (direction == Direction.BOTH || direction == Direction.KOTLIN_TO_JAVA) {
|
||||
register(javaClass, kotlinDescriptor);
|
||||
register(javaClass, kotlinMutableDescriptor);
|
||||
}
|
||||
}
|
||||
|
||||
private void register(@NotNull ClassDescriptor kotlinDescriptor, @NotNull Type javaType) {
|
||||
|
||||
Reference in New Issue
Block a user