/** * 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); } }
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")); } }