aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/backends/python
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-10-06 11:02:51 +0100
committerMichael Williamson <mike@zwobble.org>2015-10-06 11:02:51 +0100
commit56470c01483077849dae33f65364bad987afac7a (patch)
tree2954d1d44f6c11a6c27299496014b0723e7d6e8d /src/main/java/org/zwobble/couscous/backends/python
parenta7669795d1d58e4962f16272cb5e92783cf01c64 (diff)
Combine type reference and class name into type name
Diffstat (limited to 'src/main/java/org/zwobble/couscous/backends/python')
-rw-r--r--src/main/java/org/zwobble/couscous/backends/python/PrimitiveMethods.java10
-rw-r--r--src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java6
-rw-r--r--src/main/java/org/zwobble/couscous/backends/python/PythonCompiler.java8
-rw-r--r--src/main/java/org/zwobble/couscous/backends/python/ast/PythonImportNode.java6
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) {