From c6aabb1b656644fe6cbed271e34adfa829418a31 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 24 Jan 2016 18:14:02 +0000 Subject: Add transform to Receiver interface --- src/main/java/org/zwobble/couscous/ast/InstanceReceiver.java | 8 +------- src/main/java/org/zwobble/couscous/ast/Receiver.java | 4 ++-- src/main/java/org/zwobble/couscous/ast/StaticReceiver.java | 8 +------- .../org/zwobble/couscous/ast/visitors/NodeTransformer.java | 12 +----------- 4 files changed, 5 insertions(+), 27 deletions(-) (limited to 'src/main/java/org') diff --git a/src/main/java/org/zwobble/couscous/ast/InstanceReceiver.java b/src/main/java/org/zwobble/couscous/ast/InstanceReceiver.java index 6a3f42c..cbd4b6e 100644 --- a/src/main/java/org/zwobble/couscous/ast/InstanceReceiver.java +++ b/src/main/java/org/zwobble/couscous/ast/InstanceReceiver.java @@ -3,8 +3,6 @@ package org.zwobble.couscous.ast; import org.zwobble.couscous.ast.visitors.NodeMapper; import org.zwobble.couscous.ast.visitors.NodeTransformer; -import java.util.function.Function; - public class InstanceReceiver implements Receiver { public static Receiver instanceReceiver(ExpressionNode expression) { return new InstanceReceiver(expression); @@ -20,16 +18,12 @@ public class InstanceReceiver implements Receiver { return expression; } - @Override - public Receiver replaceExpressions(Function replace) { - return new InstanceReceiver(replace.apply(expression)); - } - @Override public T accept(Mapper visitor) { return visitor.visit(expression); } + @Override public Receiver transform(NodeTransformer transformer) { return new InstanceReceiver(transformer.transformExpression(expression)); } diff --git a/src/main/java/org/zwobble/couscous/ast/Receiver.java b/src/main/java/org/zwobble/couscous/ast/Receiver.java index 0e0e077..1afb9b7 100644 --- a/src/main/java/org/zwobble/couscous/ast/Receiver.java +++ b/src/main/java/org/zwobble/couscous/ast/Receiver.java @@ -1,10 +1,10 @@ package org.zwobble.couscous.ast; -import java.util.function.Function; +import org.zwobble.couscous.ast.visitors.NodeTransformer; public interface Receiver extends Node { - Receiver replaceExpressions(Function replace); T accept(Mapper mapper); + Receiver transform(NodeTransformer transformer); interface Mapper { T visit(ExpressionNode receiver); diff --git a/src/main/java/org/zwobble/couscous/ast/StaticReceiver.java b/src/main/java/org/zwobble/couscous/ast/StaticReceiver.java index 7814108..84cf266 100644 --- a/src/main/java/org/zwobble/couscous/ast/StaticReceiver.java +++ b/src/main/java/org/zwobble/couscous/ast/StaticReceiver.java @@ -3,8 +3,6 @@ package org.zwobble.couscous.ast; import org.zwobble.couscous.ast.visitors.NodeMapper; import org.zwobble.couscous.ast.visitors.NodeTransformer; -import java.util.function.Function; - public class StaticReceiver implements Receiver { public static Receiver staticReceiver(TypeName type) { return new StaticReceiver(type); @@ -20,11 +18,6 @@ public class StaticReceiver implements Receiver { return type; } - @Override - public Receiver replaceExpressions(Function replace) { - return this; - } - @Override public T accept(Mapper mapper) { return mapper.visit(type); @@ -35,6 +28,7 @@ public class StaticReceiver implements Receiver { return visitor.visit(this); } + @Override public Receiver transform(NodeTransformer transformer) { return new StaticReceiver(transformer.transform(type)); } diff --git a/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java b/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java index 4f7f819..683b3b9 100644 --- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java +++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java @@ -191,17 +191,7 @@ public class NodeTransformer { } public Receiver transformReceiver(Receiver receiver) { - return receiver.accept(new Receiver.Mapper() { - @Override - public Receiver visit(ExpressionNode receiver) { - return new InstanceReceiver(receiver.transform(NodeTransformer.this)); - } - - @Override - public Receiver visit(TypeName receiver) { - return new StaticReceiver(transform(receiver)); - } - }); + return receiver.transform(this); } public VariableDeclaration transform(VariableDeclaration declaration) { -- cgit v1.2.3