Package com.puppetlabs.geppetto.pp

Examples of com.puppetlabs.geppetto.pp.TextExpression


        if(result == null)
          result = defaultCase(theEObject);
        return result;
      }
      case PPPackage.TEXT_EXPRESSION: {
        TextExpression textExpression = (TextExpression) theEObject;
        T result = caseTextExpression(textExpression);
        if(result == null)
          result = defaultCase(theEObject);
        return result;
      }
View Full Code Here


  @Check
  public void checkDoubleQuotedString(DoubleQuotedString o) {
    // Check if a verbatim part starting with '-' follows a VariableTE.
    // If so, issue configurable issue for the VariableTE
    //
    TextExpression previous = null;
    int idx = 0;
    IValidationAdvisor advisor = advisor();
    ValidationPreference hyphens = advisor.interpolatedNonBraceEnclosedHyphens();
    for(TextExpression te : o.getStringPart()) {
      if(idx > 0 && previous instanceof VariableTE && te instanceof VerbatimTE) {
        VerbatimTE verbatim = (VerbatimTE) te;
        if(verbatim.getText().startsWith("-")) {
          if(hyphens.isWarningOrError()) {
            warningOrError(
              acceptor, hyphens,
              "Interpolation continues past '-' in some puppet 2.7 versions", //
              o, PPPackage.Literals.DOUBLE_QUOTED_STRING__STRING_PART, idx - 1,
              IPPDiagnostics.ISSUE__INTERPOLATED_HYPHEN);
          }
        }
      }
      previous = te;
      idx++;
    }
    ValidationPreference booleansInStringForm = advisor.booleansInStringForm();

    BOOLEAN_STRING: if(booleansInStringForm.isWarningOrError()) {
      // Check if string contains "true" or "false"
      String constant = stringConstantEvaluator.doToString(o);
      if(constant == null)
        break BOOLEAN_STRING;
      constant = constant.trim();
      if("true".equals(constant) || "false".equals(constant))
        warningOrError(
          acceptor, booleansInStringForm, "This is not a boolean", o, IPPDiagnostics.ISSUE__STRING_BOOLEAN,
          constant);
    }

    // DQ_STRING_NOT_REQUIRED
    ValidationPreference dqStringNotRequired = advisor.dqStringNotRequired();
    if(dqStringNotRequired.isWarningOrError() && !hasInterpolation(o)) {
      // contains escape sequences?
      String constant = stringConstantEvaluator.doToString(o);
      if(!constant.contains("\\"))
        warningOrError(
          acceptor, dqStringNotRequired, "Double quoted string not required", o,
          IPPDiagnostics.ISSUE__DQ_STRING_NOT_REQUIRED);
    }
    // UNBRACED INTERPOLATION
    ValidationPreference unbracedInterpolation = advisor.unbracedInterpolation();
    if(unbracedInterpolation.isWarningOrError()) {
      for(TextExpression te : o.getStringPart()) {
        if(te.eClass().getClassifierID() == PPPackage.VARIABLE_TE) {
          warningOrError(
            acceptor, unbracedInterpolation, "Unbraced interpolation of variable", te,
            IPPDiagnostics.ISSUE__UNBRACED_INTERPOLATION);
        }
      }
    }
    // SINGLE INTERPOLATION
    ValidationPreference dqStringNotRequiredVariable = advisor.dqStringNotRequiredVariable();
    SINGLE_INTERPOLATION: if(dqStringNotRequiredVariable.isWarningOrError()) {
      if(o.getStringPart().size() == 1) {
        String replacement = null;
        TextExpression te = o.getStringPart().get(0);
        switch(te.eClass().getClassifierID()) {
          case PPPackage.VARIABLE_TE:
            replacement = ((VariableTE) te).getVarName();
            break;
          case PPPackage.EXPRESSION_TE:
            Expression expr = ((ExpressionTE) te).getExpression();
View Full Code Here

TOP

Related Classes of com.puppetlabs.geppetto.pp.TextExpression

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.