示例#1
0
  /**
   * In the case of mandatory extensions declared in the <extensions> element not supported by a
   * WS-BPEL implementation, the process definition MUST be rejected.
   */
  @ARule(
      sa = 9,
      desc = "Mandatory extensions must be understood",
      date = "03/15/2007",
      errors = "BPELC_EXTENSION__NOT_SUPPORTED")
  public void rule_CheckMustUnderstand_20() {
    String key = "extension." + fNamespaceURI + "." + fMustUnderstand;

    if (containsValueKey(fParentNode, key)) {
      return;
    }
    boolean bSupports = mModelQuery.hasSupport(IModelQueryLookups.SUPPORT_EXTENSION, fNamespaceURI);

    setValue(fParentNode, key, bSupports);

    IProblem problem;

    if (bSupports == false && YES.equals(fMustUnderstand)) {
      problem = createError();

      problem.fill(
          "BPELC_EXTENSION__NOT_SUPPORTED",
          toString(mNode.nodeName()),
          fNamespaceURI,
          fMustUnderstand);
    }
  }
示例#2
0
 public static final boolean toBoolean(Truncated truncated) {
   return YES.equals(truncated) ? true : false;
 }
  @Override
  public void startElement(
      final String namespaceURI, final String lName, final String qName, final Attributes attrs)
      throws SAXException {
    if (qName.equals("category")) {
      final String catName = attrs.getValue("name");
      final String priorityStr = attrs.getValue("priority");
      // int prio = 0;
      if (priorityStr != null) {
        category = new Category(catName, Integer.parseInt(priorityStr));
      } else {
        category = new Category(catName);
      }

      if ("off".equals(attrs.getValue(DEFAULT))) {
        category.setDefaultOff();
      }

    } else if (qName.equals("rules")) {
      final String languageStr = attrs.getValue("targetLang");
      language = Language.getLanguageForShortName(languageStr);
      if (language == null) {
        throw new SAXException("Unknown language '" + languageStr + "'");
      }
    } else if (qName.equals("rule")) {
      id = attrs.getValue("id");
      if (inRuleGroup) subId++;
      if (!(inRuleGroup && defaultOff)) {
        defaultOff = "off".equals(attrs.getValue(DEFAULT));
      }

      if (!(inRuleGroup && defaultOn)) {
        defaultOn = "on".equals(attrs.getValue(DEFAULT));
      }
      if (inRuleGroup && id == null) {
        id = ruleGroupId;
      }
      description = attrs.getValue("name");
      if (inRuleGroup && description == null) {
        description = ruleGroupDescription;
      }
      correctExamples = new ArrayList<StringPair>();
      incorrectExamples = new ArrayList<IncorrectBitextExample>();
      if (suggestionMatches != null) {
        suggestionMatches.clear();
      }
    } else if (PATTERN.equals(qName) || "target".equals(qName)) {
      startPattern(attrs);
    } else if (AND.equals(qName)) {
      inAndGroup = true;
    } else if (UNIFY.equals(qName)) {
      inUnification = true;
      uniNegation = YES.equals(attrs.getValue(NEGATE));
    } else if (qName.equals("feature")) {
      uFeature = attrs.getValue("id");
    } else if (qName.equals(TYPE)) {
      uType = attrs.getValue("id");
      uTypeList.add(uType);
    } else if (qName.equals(TOKEN)) {
      setToken(attrs);
    } else if (qName.equals(EXCEPTION)) {
      setExceptions(attrs);
    } else if (qName.equals(EXAMPLE) && attrs.getValue(TYPE).equals("correct")) {
      inCorrectExample = true;
      correctExample = new StringBuilder();
    } else if (EXAMPLE.equals(qName) && attrs.getValue(TYPE).equals("incorrect")) {
      inIncorrectExample = true;
      incorrectExample = new StringBuilder();
      exampleCorrection = new StringBuilder();
      if (attrs.getValue("correction") != null) {
        exampleCorrection.append(attrs.getValue("correction"));
      }
    } else if (MESSAGE.equals(qName)) {
      inMessage = true;
      message = new StringBuilder();
    } else if (qName.equals("short")) {
      inShortMessage = true;
      shortMessage = new StringBuilder();
    } else if (qName.equals(RULEGROUP)) {
      ruleGroupId = attrs.getValue("id");
      ruleGroupDescription = attrs.getValue("name");
      defaultOff = "off".equals(attrs.getValue(DEFAULT));
      defaultOn = "on".equals(attrs.getValue(DEFAULT));
      inRuleGroup = true;
      subId = 0;
    } else if (qName.equals("suggestion") && inMessage) {
      message.append("<suggestion>");
      inSuggestion = true;
    } else if (qName.equals("match")) {
      setMatchElement(attrs);
    } else if (qName.equals(MARKER) && inCorrectExample) {
      correctExample.append("<marker>");
    } else if (qName.equals(MARKER) && inIncorrectExample) {
      incorrectExample.append("<marker>");
    } else if (qName.equals("unification")) {
      uFeature = attrs.getValue("feature");
      inUnificationDef = true;
    } else if (qName.equals("equivalence")) {
      uType = attrs.getValue(TYPE);
    } else if (qName.equals("phrases")) {
      inPhrases = true;
    } else if (qName.equals("includephrases")) {
      phraseElementInit();
    } else if (qName.equals("phrase") && inPhrases) {
      phraseId = attrs.getValue("id");
    } else if (qName.equals("phraseref") && (attrs.getValue("idref") != null)) {
      preparePhrase(attrs);
    } else if (qName.equals("source")) {
      srcLang = Language.getLanguageForShortName(attrs.getValue("lang"));
    }
  }