Add factory methods to create class references with internal names

Will be used in future versions to support references to mapped mutable
collections
This commit is contained in:
Alexander Udalov
2015-11-05 15:20:11 +03:00
parent e64a270d1a
commit baa28de865
3 changed files with 27 additions and 0 deletions
@@ -29,6 +29,11 @@ public class ReflectionFactoryImpl extends ReflectionFactory {
return new KClassImpl(javaClass);
}
@Override
public KClass createKotlinClass(Class javaClass, String internalName) {
return new KClassImpl(javaClass);
}
@Override
public KDeclarationContainer getOrCreateKotlinPackage(Class javaClass, String moduleName) {
return new KPackageImpl(javaClass, moduleName);
@@ -39,6 +44,11 @@ public class ReflectionFactoryImpl extends ReflectionFactory {
return KClassCacheKt.getOrCreateKotlinClass(javaClass);
}
@Override
public KClass getOrCreateKotlinClass(Class javaClass, String internalName) {
return KClassCacheKt.getOrCreateKotlinClass(javaClass);
}
// Functions
@Override
@@ -45,6 +45,10 @@ public class Reflection {
return factory.createKotlinClass(javaClass);
}
public static KClass createKotlinClass(Class javaClass, String internalName) {
return factory.createKotlinClass(javaClass, internalName);
}
public static KDeclarationContainer getOrCreateKotlinPackage(Class javaClass, String moduleName) {
return factory.getOrCreateKotlinPackage(javaClass, moduleName);
}
@@ -53,6 +57,10 @@ public class Reflection {
return factory.getOrCreateKotlinClass(javaClass);
}
public static KClass getOrCreateKotlinClass(Class javaClass, String internalName) {
return factory.getOrCreateKotlinClass(javaClass, internalName);
}
public static KClass[] getOrCreateKotlinClasses(Class[] javaClasses) {
int size = javaClasses.length;
if (size == 0) return EMPTY_K_CLASS_ARRAY;
@@ -96,6 +104,7 @@ public class Reflection {
}
// Deprecated
// TODO: drop before 1.0
@Deprecated
public static KPackage createKotlinPackage(Class javaClass, String moduleName) {
@@ -23,6 +23,10 @@ public class ReflectionFactory {
return new ClassReference(javaClass);
}
public KClass createKotlinClass(Class javaClass, String internalName) {
return new ClassReference(javaClass);
}
public KDeclarationContainer getOrCreateKotlinPackage(Class javaClass, String moduleName) {
return null;
}
@@ -31,6 +35,10 @@ public class ReflectionFactory {
return new ClassReference(javaClass);
}
public KClass getOrCreateKotlinClass(Class javaClass, String internalName) {
return new ClassReference(javaClass);
}
// Functions
public KFunction function(FunctionReference f) {