@Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } AbstractModelASTCodeBlock that = (AbstractModelASTCodeBlock) o; if (getName() != null ? !getName().equals(that.getName()) : that.getName() != null) { return false; } if (isLiteralSingleArg() && that.isLiteralSingleArg()) { return codeBlockAsString().equals(that.codeBlockAsString()); } else { return getArgs() != null ? getArgs().equals(that.getArgs()) : that.getArgs() == null; } }
protected boolean isLiteralSingleArg() { return getArgs() != null && getSingleValue() != null && getSingleValue().isLiteral(); }
protected AbstractModelASTCodeBlock(Object sourceLocation, String name) { super(sourceLocation); this.setName(name); }
public String codeBlockAsString() { if (getArgs() == null) { return null; } else if (isLiteralSingleArg()) { Object v = getSingleValue().getValue(); if (v instanceof String) { List<String> retList = new ArrayList<>(); for (String s : v.toString().split("\\r?\\n")) { retList.add(s.trim()); } return StringUtils.join(retList, "\n"); } else { return v.toString(); } } else { return getArgs().toGroovy(); } }
@Override public String toGroovy() { StringBuilder result = new StringBuilder(getName()).append(" {\n"); result.append(codeBlockAsString()); result.append("\n}\n"); return result.toString(); }
protected ModelASTValue getSingleValue() { if (getArgs() instanceof ModelASTSingleArgument) { return ((ModelASTSingleArgument) getArgs()).getValue(); } else if (getArgs() instanceof ModelASTNamedArgumentList) { ModelASTNamedArgumentList namedArgs = (ModelASTNamedArgumentList) getArgs(); if (namedArgs.getArguments().size() == 1 && namedArgs.containsKeyName("scriptBlock")) { return namedArgs.valueForName("scriptBlock"); } } return null; }
public String codeBlockAsString() { if (getArgs() == null) { return null; } else if (isLiteralSingleArg()) { Object v = getSingleValue().getValue(); if (v instanceof String) { List<String> retList = new ArrayList<>(); for (String s : v.toString().split("\\r?\\n")) { retList.add(s.trim()); } return StringUtils.join(retList, "\n"); } else { return v.toString(); } } else { return getArgs().toGroovy(); } }
@Override public String toGroovy() { StringBuilder result = new StringBuilder(getName()).append(" {\n"); result.append(codeBlockAsString()); result.append("\n}\n"); return result.toString(); }
protected ModelASTValue getSingleValue() { if (getArgs() instanceof ModelASTSingleArgument) { return ((ModelASTSingleArgument) getArgs()).getValue(); } else if (getArgs() instanceof ModelASTNamedArgumentList) { ModelASTNamedArgumentList namedArgs = (ModelASTNamedArgumentList) getArgs(); if (namedArgs.getArguments().size() == 1 && namedArgs.containsKeyName("scriptBlock")) { return namedArgs.valueForName("scriptBlock"); } } return null; }
@Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } AbstractModelASTCodeBlock that = (AbstractModelASTCodeBlock) o; if (getName() != null ? !getName().equals(that.getName()) : that.getName() != null) { return false; } if (isLiteralSingleArg() && that.isLiteralSingleArg()) { return codeBlockAsString().equals(that.codeBlockAsString()); } else { return getArgs() != null ? getArgs().equals(that.getArgs()) : that.getArgs() == null; } }
protected boolean isLiteralSingleArg() { return getArgs() != null && getSingleValue() != null && getSingleValue().isLiteral(); }
protected AbstractModelASTCodeBlock(Object sourceLocation, String name) { super(sourceLocation); this.setName(name); }