X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=sli%2Fcommon%2Fsrc%2Fmain%2Fjava%2Forg%2Fopenecomp%2Fsdnc%2Fsli%2FSvcLogicBinaryExpression.java;fp=sli%2Fcommon%2Fsrc%2Fmain%2Fjava%2Forg%2Fopenecomp%2Fsdnc%2Fsli%2FSvcLogicBinaryExpression.java;h=1d780d7e739bba64aad2370db3b8f000ce57656e;hb=0ca979112add1fe6c2771676cfb36e90e6410174;hp=9b35006ce789cd4f17e8aaa3923973604bf4870b;hpb=b6ed3bfa8f64a4850392f47daf46846fec51e36d;p=sdnc%2Fcore.git diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicBinaryExpression.java b/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicBinaryExpression.java index 9b35006..1d780d7 100644 --- a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicBinaryExpression.java +++ b/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicBinaryExpression.java @@ -102,40 +102,48 @@ public class SvcLogicBinaryExpression extends SvcLogicExpression { sbuff.append(" "); sbuff.append(operators.get(i)); sbuff.append(" "); - sbuff.append(operands.get(i+1).toString()); + if (i + 1 < operands.size()) { + sbuff.append(operands.get(i + 1).toString()); + } else { + // expression incomplete; operand not bound yet + sbuff.append("?"); + } } return(sbuff.toString()); } - public String asParsedExpr() - { - - Listoperands = getOperands(); - StringBuffer sbuff = new StringBuffer(); - StringBuffer closeParens = new StringBuffer(); - int i = 0; - for (OperatorType operator : operators) - { - sbuff.append("("); - sbuff.append(operator.getText()); - sbuff.append(" "); - sbuff.append(operands.get(i++).asParsedExpr()); - closeParens.append(")"); - } - sbuff.append(" "); - if (i < operands.size()) - { - sbuff.append(operands.get(i).asParsedExpr()); - } - else - { - sbuff.append("__MISSING_OPERAND__"); + public String asParsedExpr() { + + List operands = getOperands(); + + if (operators.isEmpty()) { + return operands.get(0).asParsedExpr(); + } else { + StringBuffer sbuff = new StringBuffer(); + // operators in reverse order for left associativity + for (int i = operators.size() - 1; i >= 0; --i) { + sbuff.append("("); + sbuff.append(operators.get(i).getText()); + sbuff.append(" "); + } + for (int i = 0; i < operators.size() + 1; ++i) { + if (i < operands.size()) { + sbuff.append(operands.get(i).asParsedExpr()); + } else { + // expression incomplete; operand not bound yet + sbuff.append("?"); + } + if (i != 0) { + sbuff.append(")"); + } + if (i < operators.size()) { + sbuff.append(" "); + } + } + return sbuff.toString(); } - sbuff.append(closeParens.toString()); - return(sbuff.toString()); - } }