package org.quaere.expressions; import java.util.Arrays; import java.util.List; public class NewExpression extends Expression { private final Class<?> clazz; private final List<Property> properties; public NewExpression(Class<?> clazz, List<Property> properties) { this.clazz = clazz; this.properties = properties; } public NewExpression(Class<?> clazz, Property... properties) { this(clazz, Arrays.asList(properties)); } public Class getClazz() { return clazz; } public List<Property> getProperties() { return properties; } public String toString() { StringBuilder sb = new StringBuilder(); sb.append("new "); sb.append(clazz != null ? clazz.getName() : "Variant"); sb.append(" {"); for (Property p : properties) { sb.append(" "); sb.append(p.toString()); sb.append("\n"); } sb.append("}"); return sb.toString(); } // --------------------- Interface ExpressionTreeNode --------------------- public void accept(ExpressionTreeVisitor visitor) { visitor.visit(this); } }