Refactor.
This commit is contained in:
@@ -38,26 +38,15 @@ public final class StandardClasses {
|
|||||||
private static void declareJavaArrayList(@NotNull StandardClasses standardClasses) {
|
private static void declareJavaArrayList(@NotNull StandardClasses standardClasses) {
|
||||||
String arrayListFQName = "<java_root>.java.util.ArrayList";
|
String arrayListFQName = "<java_root>.java.util.ArrayList";
|
||||||
standardClasses.declareStandardTopLevelObject(arrayListFQName, "ArrayList");
|
standardClasses.declareStandardTopLevelObject(arrayListFQName, "ArrayList");
|
||||||
standardClasses.declareStandardInnerDeclaration(arrayListFQName, "size", "size");
|
|
||||||
standardClasses.declareStandardInnerDeclaration(arrayListFQName, "<init>", "ArrayList");
|
standardClasses.declareStandardInnerDeclaration(arrayListFQName, "<init>", "ArrayList");
|
||||||
standardClasses.declareStandardInnerDeclaration(arrayListFQName, "add", "add");
|
declareMethods(standardClasses, arrayListFQName, "size", "add", "get",
|
||||||
standardClasses.declareStandardInnerDeclaration(arrayListFQName, "get", "get");
|
"isEmpty", "set", "remove", "addAll");
|
||||||
standardClasses.declareStandardInnerDeclaration(arrayListFQName, "isEmpty", "isEmpty");
|
|
||||||
standardClasses.declareStandardInnerDeclaration(arrayListFQName, "set", "set");
|
|
||||||
standardClasses.declareStandardInnerDeclaration(arrayListFQName, "remove", "remove");
|
|
||||||
standardClasses.declareStandardInnerDeclaration(arrayListFQName, "addAll", "addAll");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: more generic ways to declare standard classes
|
|
||||||
private static void bindIterator(@NotNull StandardClasses standardClasses,
|
private static void bindIterator(@NotNull StandardClasses standardClasses,
|
||||||
@NotNull ClassDescriptor iteratorClass) {
|
@NotNull ClassDescriptor iteratorClass) {
|
||||||
standardClasses.declareStandardTopLevelObject(iteratorClass, "ArrayIterator");
|
standardClasses.declareStandardTopLevelObject(iteratorClass, "ArrayIterator");
|
||||||
FunctionDescriptor nextFunction =
|
declareMethods(standardClasses, getFQName(iteratorClass), "next", "hasNext");
|
||||||
getFunctionByName(iteratorClass.getDefaultType().getMemberScope(), "next");
|
|
||||||
standardClasses.declareStandardMethodOrProperty(nextFunction, "next");
|
|
||||||
PropertyDescriptor hasNextProperty =
|
|
||||||
getPropertyByName(iteratorClass.getDefaultType().getMemberScope(), "hasNext");
|
|
||||||
standardClasses.declareStandardMethodOrProperty(hasNextProperty, "hasNext");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void bindArray(@NotNull StandardClasses standardClasses,
|
private static void bindArray(@NotNull StandardClasses standardClasses,
|
||||||
@@ -68,7 +57,16 @@ public final class StandardClasses {
|
|||||||
standardClasses.declareStandardTopLevelObject(nullConstructorFunction, "array");
|
standardClasses.declareStandardTopLevelObject(nullConstructorFunction, "array");
|
||||||
PropertyDescriptor sizeProperty =
|
PropertyDescriptor sizeProperty =
|
||||||
getPropertyByName(arrayClass.getDefaultType().getMemberScope(), "size");
|
getPropertyByName(arrayClass.getDefaultType().getMemberScope(), "size");
|
||||||
standardClasses.declareStandardMethodOrProperty(sizeProperty, "size");
|
standardClasses.declareStandardInnerDeclaration(sizeProperty, "size");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static void declareMethods(@NotNull StandardClasses standardClasses,
|
||||||
|
@NotNull String classFQName,
|
||||||
|
@NotNull String... methodNames) {
|
||||||
|
for (String methodName : methodNames) {
|
||||||
|
standardClasses.declareStandardInnerDeclaration(classFQName, methodName, methodName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -95,7 +93,7 @@ public final class StandardClasses {
|
|||||||
scopeMap.put(fullQualifiedName, new JsScope(kotlinScope, "standard object " + kotlinLibName));
|
scopeMap.put(fullQualifiedName, new JsScope(kotlinScope, "standard object " + kotlinLibName));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void declareStandardMethodOrProperty(@NotNull DeclarationDescriptor descriptor,
|
private void declareStandardInnerDeclaration(@NotNull DeclarationDescriptor descriptor,
|
||||||
@NotNull String kotlinLibName) {
|
@NotNull String kotlinLibName) {
|
||||||
String containingFQName = getFQName(getContainingDeclaration(descriptor));
|
String containingFQName = getFQName(getContainingDeclaration(descriptor));
|
||||||
declareStandardInnerDeclaration(containingFQName, descriptor.getName(), kotlinLibName);
|
declareStandardInnerDeclaration(containingFQName, descriptor.getName(), kotlinLibName);
|
||||||
|
|||||||
Reference in New Issue
Block a user