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); return new KClassImpl(javaClass);
} }
@Override
public KClass createKotlinClass(Class javaClass, String internalName) {
return new KClassImpl(javaClass);
}
@Override @Override
public KDeclarationContainer getOrCreateKotlinPackage(Class javaClass, String moduleName) { public KDeclarationContainer getOrCreateKotlinPackage(Class javaClass, String moduleName) {
return new KPackageImpl(javaClass, moduleName); return new KPackageImpl(javaClass, moduleName);
@@ -39,6 +44,11 @@ public class ReflectionFactoryImpl extends ReflectionFactory {
return KClassCacheKt.getOrCreateKotlinClass(javaClass); return KClassCacheKt.getOrCreateKotlinClass(javaClass);
} }
@Override
public KClass getOrCreateKotlinClass(Class javaClass, String internalName) {
return KClassCacheKt.getOrCreateKotlinClass(javaClass);
}
// Functions // Functions
@Override @Override
@@ -45,6 +45,10 @@ public class Reflection {
return factory.createKotlinClass(javaClass); 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) { public static KDeclarationContainer getOrCreateKotlinPackage(Class javaClass, String moduleName) {
return factory.getOrCreateKotlinPackage(javaClass, moduleName); return factory.getOrCreateKotlinPackage(javaClass, moduleName);
} }
@@ -53,6 +57,10 @@ public class Reflection {
return factory.getOrCreateKotlinClass(javaClass); return factory.getOrCreateKotlinClass(javaClass);
} }
public static KClass getOrCreateKotlinClass(Class javaClass, String internalName) {
return factory.getOrCreateKotlinClass(javaClass, internalName);
}
public static KClass[] getOrCreateKotlinClasses(Class[] javaClasses) { public static KClass[] getOrCreateKotlinClasses(Class[] javaClasses) {
int size = javaClasses.length; int size = javaClasses.length;
if (size == 0) return EMPTY_K_CLASS_ARRAY; if (size == 0) return EMPTY_K_CLASS_ARRAY;
@@ -96,6 +104,7 @@ public class Reflection {
} }
// Deprecated // Deprecated
// TODO: drop before 1.0
@Deprecated @Deprecated
public static KPackage createKotlinPackage(Class javaClass, String moduleName) { public static KPackage createKotlinPackage(Class javaClass, String moduleName) {
@@ -23,6 +23,10 @@ public class ReflectionFactory {
return new ClassReference(javaClass); return new ClassReference(javaClass);
} }
public KClass createKotlinClass(Class javaClass, String internalName) {
return new ClassReference(javaClass);
}
public KDeclarationContainer getOrCreateKotlinPackage(Class javaClass, String moduleName) { public KDeclarationContainer getOrCreateKotlinPackage(Class javaClass, String moduleName) {
return null; return null;
} }
@@ -31,6 +35,10 @@ public class ReflectionFactory {
return new ClassReference(javaClass); return new ClassReference(javaClass);
} }
public KClass getOrCreateKotlinClass(Class javaClass, String internalName) {
return new ClassReference(javaClass);
}
// Functions // Functions
public KFunction function(FunctionReference f) { public KFunction function(FunctionReference f) {