diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-10-06 11:02:51 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-10-06 11:02:51 +0100 |
| commit | 56470c01483077849dae33f65364bad987afac7a (patch) | |
| tree | 2954d1d44f6c11a6c27299496014b0723e7d6e8d /src/main/java/org/zwobble/couscous/backends/python | |
| parent | a7669795d1d58e4962f16272cb5e92783cf01c64 (diff) | |
Combine type reference and class name into type name
Diffstat (limited to 'src/main/java/org/zwobble/couscous/backends/python')
4 files changed, 15 insertions, 15 deletions
diff --git a/src/main/java/org/zwobble/couscous/backends/python/PrimitiveMethods.java b/src/main/java/org/zwobble/couscous/backends/python/PrimitiveMethods.java index 67f66ea..02db3b2 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/PrimitiveMethods.java +++ b/src/main/java/org/zwobble/couscous/backends/python/PrimitiveMethods.java @@ -4,9 +4,9 @@ import java.util.List; import java.util.Map; import java.util.Optional; +import org.zwobble.couscous.ast.TypeName; import org.zwobble.couscous.backends.python.ast.PythonExpressionNode; import org.zwobble.couscous.values.StringValue; -import org.zwobble.couscous.values.TypeReference; import com.google.common.collect.ImmutableMap; @@ -29,16 +29,16 @@ public class PrimitiveMethods { .build(); - private static final Map<TypeReference, Map<String, PrimitiveMethodGenerator>> METHODS = - ImmutableMap.<TypeReference, Map<String, PrimitiveMethodGenerator>>builder() + private static final Map<TypeName, Map<String, PrimitiveMethodGenerator>> METHODS = + ImmutableMap.<TypeName, Map<String, PrimitiveMethodGenerator>>builder() .put(StringValue.REF, STRING_METHODS) .build(); - public static boolean isPrimitive(TypeReference type) { + public static boolean isPrimitive(TypeName type) { return METHODS.containsKey(type); } - public static Optional<PrimitiveMethodGenerator> getPrimitiveMethod(TypeReference type, String methodName) { + public static Optional<PrimitiveMethodGenerator> getPrimitiveMethod(TypeName type, String methodName) { return Optional.ofNullable(METHODS.get(type)) .flatMap(methodsForType -> Optional.ofNullable(methodsForType.get(methodName))); } diff --git a/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java b/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java index d0024de..1524be7 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java +++ b/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java @@ -7,7 +7,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import org.zwobble.couscous.ast.AssignmentNode; -import org.zwobble.couscous.ast.ClassName; +import org.zwobble.couscous.ast.TypeName; import org.zwobble.couscous.ast.ClassNode; import org.zwobble.couscous.ast.ExpressionNode; import org.zwobble.couscous.ast.ExpressionStatementNode; @@ -83,8 +83,8 @@ public class PythonCodeGenerator { .map(name -> pythonImport(name)); } - private static Set<ClassName> findReferencedClasses(ClassNode classNode) { - val imports = ImmutableSet.<ClassName>builder(); + private static Set<TypeName> findReferencedClasses(ClassNode classNode) { + val imports = ImmutableSet.<TypeName>builder(); NodeVisitors.visitAll(classNode, new NodeVisitorWithEmptyDefaults() { @Override public void visit(StaticMethodCallNode staticMethodCall) { diff --git a/src/main/java/org/zwobble/couscous/backends/python/PythonCompiler.java b/src/main/java/org/zwobble/couscous/backends/python/PythonCompiler.java index 67e24cc..1fb9149 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/PythonCompiler.java +++ b/src/main/java/org/zwobble/couscous/backends/python/PythonCompiler.java @@ -5,7 +5,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.List; -import org.zwobble.couscous.ast.ClassName; +import org.zwobble.couscous.ast.TypeName; import org.zwobble.couscous.ast.ClassNode; import static java.util.Arrays.asList; @@ -26,14 +26,14 @@ public class PythonCompiler { for (val classNode : classes) { compileClass(classNode); } - writeClass(ClassName.of("java.lang.Integer"), + writeClass(TypeName.of("java.lang.Integer"), "class Integer(object):\n" + " def parseInt(value):\n" + " return int(value)" ); } - private Path pathForClass(ClassName className) { + private Path pathForClass(TypeName className) { return root.resolve(className.getQualifiedName().replace(".", File.separator) + ".py"); } @@ -42,7 +42,7 @@ public class PythonCompiler { } @SneakyThrows - private void writeClass(ClassName name, String contents) { + private void writeClass(TypeName name, String contents) { val path = pathForClass(name); Files.createDirectories(path.getParent()); Files.write(path, asList(contents)); diff --git a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonImportNode.java b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonImportNode.java index d8b97ad..eb6f743 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonImportNode.java +++ b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonImportNode.java @@ -1,6 +1,6 @@ package org.zwobble.couscous.backends.python.ast; -import org.zwobble.couscous.ast.ClassName; +import org.zwobble.couscous.ast.TypeName; import org.zwobble.couscous.backends.python.ast.visitors.PythonNodeVisitor; import lombok.Value; @@ -8,10 +8,10 @@ import lombok.Value; @Value(staticConstructor="pythonImport") public class PythonImportNode implements PythonStatementNode { public static PythonImportNode pythonImport(String name) { - return pythonImport(ClassName.of(name)); + return pythonImport(TypeName.of(name)); } - ClassName name; + TypeName name; @Override public void accept(PythonNodeVisitor visitor) { |
