/plugins/PHPParser/tags/v1_0_2/src/net/sourceforge/phpdt/internal/compiler/ast/ConditionalExpression.java

# · Java · 69 lines · 42 code · 8 blank · 19 comment · 0 complexity · 27dcdf8aba2e052d5ba7477daca1ee9f MD5 · raw file

  1. package net.sourceforge.phpdt.internal.compiler.ast;
  2. import java.util.List;
  3. /**
  4. * A ConditionalExpression is like that : booleanExpression ? trueValue : falseValue;.
  5. * @author Matthieu Casanova
  6. */
  7. public final class ConditionalExpression extends OperatorExpression {
  8. private final Expression condition;
  9. private final Expression valueIfTrue;
  10. private final Expression valueIfFalse;
  11. public ConditionalExpression(final Expression condition,
  12. final Expression valueIfTrue,
  13. final Expression valueIfFalse) {
  14. super(-1, condition.sourceStart, valueIfFalse.sourceEnd);
  15. this.condition = condition;
  16. this.valueIfTrue = valueIfTrue;
  17. this.valueIfFalse = valueIfFalse;
  18. }
  19. public String toStringExpression() {
  20. final String conditionString = condition.toStringExpression();
  21. final String valueIfTrueString = valueIfTrue.toStringExpression();
  22. final String valueIfFalse = this.valueIfFalse.toStringExpression();
  23. final StringBuffer buff = new StringBuffer(8 +
  24. conditionString.length() +
  25. valueIfTrueString.length() +
  26. valueIfFalse.length());
  27. buff.append("(");
  28. buff.append(conditionString);
  29. buff.append(") ? ");
  30. buff.append(valueIfTrueString);
  31. buff.append(" : ");
  32. buff.append(valueIfFalse);
  33. return buff.toString();
  34. }
  35. /**
  36. * Get the variables from outside (parameters, globals ...)
  37. *
  38. * @param list the list where we will put variables
  39. */
  40. public void getOutsideVariable(final List list) {}
  41. /**
  42. * get the modified variables.
  43. *
  44. * @param list the list where we will put variables
  45. */
  46. public void getModifiedVariable(final List list) {
  47. condition.getModifiedVariable(list);
  48. valueIfTrue.getModifiedVariable(list);
  49. valueIfFalse.getModifiedVariable(list);
  50. }
  51. /**
  52. * Get the variables used.
  53. *
  54. * @param list the list where we will put variables
  55. */
  56. public void getUsedVariable(final List list) {
  57. condition.getUsedVariable(list);
  58. valueIfTrue.getUsedVariable(list);
  59. valueIfFalse.getUsedVariable(list);
  60. }
  61. }