diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-10-25 18:18:38 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-10-25 18:18:38 +0000 |
| commit | bf686485cebb7550ae9ddbbdbefa929aea9f8127 (patch) | |
| tree | cdaf3c6217c0ae41c2bfa4fe99cd8f9db5a52746 /src/main/java/org/zwobble | |
| parent | d86042ef32735a78ea68e4312b34ed032b336c86 (diff) | |
Remove lombok from LocalVariableDeclarationNode
Diffstat (limited to 'src/main/java/org/zwobble')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/ast/LocalVariableDeclarationNode.java | 67 |
1 files changed, 62 insertions, 5 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/LocalVariableDeclarationNode.java b/src/main/java/org/zwobble/couscous/ast/LocalVariableDeclarationNode.java index 61fd9a3..bb272fc 100644 --- a/src/main/java/org/zwobble/couscous/ast/LocalVariableDeclarationNode.java +++ b/src/main/java/org/zwobble/couscous/ast/LocalVariableDeclarationNode.java @@ -4,9 +4,6 @@ import org.zwobble.couscous.ast.visitors.StatementNodeMapper; import static org.zwobble.couscous.ast.VariableDeclaration.var; -import lombok.Value; - -@Value(staticConstructor="localVariableDeclaration") public class LocalVariableDeclarationNode implements VariableNode, StatementNode { public static LocalVariableDeclarationNode localVariableDeclaration( String id, @@ -16,9 +13,30 @@ public class LocalVariableDeclarationNode implements VariableNode, StatementNode return localVariableDeclaration(var(id, name, type), initialValue); } - VariableDeclaration declaration; - ExpressionNode initialValue; + public static LocalVariableDeclarationNode localVariableDeclaration( + VariableDeclaration declaration, + ExpressionNode initialValue) { + return new LocalVariableDeclarationNode(declaration, initialValue); + } + + private final VariableDeclaration declaration; + private final ExpressionNode initialValue; + private LocalVariableDeclarationNode( + VariableDeclaration declaration, + ExpressionNode initialValue) { + this.declaration = declaration; + this.initialValue = initialValue; + } + + public VariableDeclaration getDeclaration() { + return declaration; + } + + public ExpressionNode getInitialValue() { + return initialValue; + } + public String getName() { return declaration.getName(); } @@ -31,4 +49,43 @@ public class LocalVariableDeclarationNode implements VariableNode, StatementNode public <T> T accept(StatementNodeMapper<T> visitor) { return visitor.visit(this); } + + @Override + public String toString() { + return "LocalVariableDeclarationNode(declaration=" + declaration + + ", initialValue=" + initialValue + ")"; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + + ((declaration == null) ? 0 : declaration.hashCode()); + result = prime * result + + ((initialValue == null) ? 0 : initialValue.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + LocalVariableDeclarationNode other = (LocalVariableDeclarationNode) obj; + if (declaration == null) { + if (other.declaration != null) + return false; + } else if (!declaration.equals(other.declaration)) + return false; + if (initialValue == null) { + if (other.initialValue != null) + return false; + } else if (!initialValue.equals(other.initialValue)) + return false; + return true; + } } |
