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