This is an automated email from the ASF dual-hosted git repository.
emilles pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/master by this push:
new 855cfbb copy implicit-this, static, and type when transforming and
add getText()
855cfbb is described below
commit 855cfbb677a3d167e69b39269546b0e63af0ea87
Author: Eric Milles <[email protected]>
AuthorDate: Thu Jul 30 12:55:24 2020 -0500
copy implicit-this, static, and type when transforming and add getText()
to AttributeExpression
---
.../groovy/ast/expr/AttributeExpression.java | 29 +++++++++++----
.../groovy/ast/expr/PropertyExpression.java | 42 +++++++++++-----------
2 files changed, 43 insertions(+), 28 deletions(-)
diff --git
a/src/main/java/org/codehaus/groovy/ast/expr/AttributeExpression.java
b/src/main/java/org/codehaus/groovy/ast/expr/AttributeExpression.java
index 00d1647..07c1b2e 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/AttributeExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/AttributeExpression.java
@@ -25,23 +25,38 @@ import org.codehaus.groovy.ast.GroovyCodeVisitor;
*/
public class AttributeExpression extends PropertyExpression {
- public AttributeExpression(Expression objectExpression, Expression
property) {
+ public AttributeExpression(final Expression objectExpression, final
Expression property) {
super(objectExpression, property, false);
}
- public AttributeExpression(Expression objectExpression, Expression
property, boolean safe) {
+ public AttributeExpression(final Expression objectExpression, final
Expression property, final boolean safe) {
super(objectExpression, property, safe);
}
- public void visit(GroovyCodeVisitor visitor) {
- visitor.visitAttributeExpression(this);
+ @Override
+ public String getText() {
+ StringBuilder sb = new StringBuilder(getObjectExpression().getText());
+ if (isSpreadSafe()) sb.append('*');
+ if (isSafe()) sb.append('?');
+ sb.append(".@");
+
+ return sb.append(getProperty().getText()).toString();
}
- public Expression transformExpression(ExpressionTransformer transformer) {
- AttributeExpression ret = new
AttributeExpression(transformer.transform(getObjectExpression()),transformer.transform(getProperty()),isSafe());
+ @Override
+ public Expression transformExpression(final ExpressionTransformer
transformer) {
+ AttributeExpression ret = new
AttributeExpression(transformer.transform(getObjectExpression()),
transformer.transform(getProperty()), isSafe());
+ ret.setImplicitThis(this.isImplicitThis());
+ ret.setSpreadSafe(this.isSpreadSafe());
+ ret.setStatic(this.isStatic());
+ ret.setType(this.getType());
ret.setSourcePosition(this);
- ret.setSpreadSafe(isSpreadSafe());
ret.copyNodeMetaData(this);
return ret;
}
+
+ @Override
+ public void visit(final GroovyCodeVisitor visitor) {
+ visitor.visitAttributeExpression(this);
+ }
}
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/PropertyExpression.java
b/src/main/java/org/codehaus/groovy/ast/expr/PropertyExpression.java
index 7bfaf84..8d65d2f 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/PropertyExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/PropertyExpression.java
@@ -46,24 +46,23 @@ public class PropertyExpression extends Expression {
this.safe = safe;
}
- public void visit(final GroovyCodeVisitor visitor) {
- visitor.visitPropertyExpression(this);
- }
-
+ @Override
public Expression transformExpression(final ExpressionTransformer
transformer) {
- PropertyExpression ret = new PropertyExpression(
- transformer.transform(objectExpression),
- transformer.transform(property),
- safe
- );
- ret.setImplicitThis(implicitThis);
- ret.setSpreadSafe(spreadSafe);
- ret.setStatic(isStatic);
+ PropertyExpression ret = new
PropertyExpression(transformer.transform(getObjectExpression()),
transformer.transform(getProperty()), isSafe());
+ ret.setImplicitThis(this.isImplicitThis());
+ ret.setSpreadSafe(this.isSpreadSafe());
+ ret.setStatic(this.isStatic());
+ ret.setType(this.getType());
ret.setSourcePosition(this);
ret.copyNodeMetaData(this);
return ret;
}
+ @Override
+ public void visit(final GroovyCodeVisitor visitor) {
+ visitor.visitPropertyExpression(this);
+ }
+
public Expression getObjectExpression() {
return objectExpression;
}
@@ -77,17 +76,17 @@ public class PropertyExpression extends Expression {
}
public String getPropertyAsString() {
- if (!(property instanceof ConstantExpression)) return null;
- ConstantExpression constant = (ConstantExpression) property;
- return constant.getText();
+ return getProperty() instanceof ConstantExpression ?
getProperty().getText() : null;
}
+ @Override
public String getText() {
- String object = objectExpression.getText();
- String text = property.getText();
- String spread = isSpreadSafe() ? "*" : "";
- String safe = isSafe() ? "?" : "";
- return object + spread + safe + "." + text;
+ StringBuilder sb = new StringBuilder(getObjectExpression().getText());
+ if (isSpreadSafe()) sb.append('*');
+ if (isSafe()) sb.append('?');
+ sb.append('.');
+
+ return sb.append(getProperty().getText()).toString();
}
public boolean isDynamic() {
@@ -126,7 +125,8 @@ public class PropertyExpression extends Expression {
this.isStatic = isStatic;
}
+ @Override
public String toString() {
- return super.toString() + "[object: " + objectExpression + " property:
" + property + "]";
+ return super.toString() + "[object: " + getObjectExpression() + "
property: " + getProperty() + "]";
}
}