Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright 2005-2013 The Kuali Foundation Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 package org.kuali.rice.kew.xml;
 import java.util.List;

 public class RuleExtensionXmlParser {
     private static final Namespace NAMESPACE = Namespace.getNamespace("""ns:workflow/Rule");
     private static final String RULE_EXTENSION = "ruleExtension";
     private static final String ATTRIBUTE = "attribute";
     private static final String RULE_TEMPLATE = "ruleTemplate";
     private static final String RULE_EXTENSION_VALUES = "ruleExtensionValues";
     private static final String RULE_EXTENSION_VALUE = "ruleExtensionValue";
     private static final String KEY = "key";
     private static final String VALUE = "value";
     public List parseRuleExtensions(Element elementRuleBaseValues rulethrows XmlException {
 	List ruleExtensions = new ArrayList();
 	Collection<ElementruleElements = XmlHelper.findElements(element);
 	for (Iterator iterator = ruleElements.iterator(); iterator.hasNext();) {
 	    ruleExtensions.add(parseRuleExtension((, rule));
 	return ruleExtensions;
     private RuleExtensionBo parseRuleExtension(Element elementRuleBaseValues rulethrows XmlException {
 	String attributeName = element.getChildText();
 	String templateName = element.getChildText();
 	Element valuesElement = element.getChild();
 	if (attributeName == null) {
 	    throw new XmlException("Rule extension must have a valid attribute.");
 	if (templateName == null) {
 	    throw new XmlException("Rule extension must have a valid rule template.");
 	RuleAttribute ruleAttribute = KEWServiceLocator.getRuleAttributeService().findByName(attributeName);
 	if (ruleAttribute == null) {
 	    throw new XmlException("Could not locate attribute for the given name '" + attributeName + "'");
 	RuleTemplateBo ruleTemplate = KEWServiceLocator.getRuleTemplateService().findByRuleTemplateName(templateName);
 	if (ruleTemplate == null) {
 	    throw new XmlException("Could not locate rule template for the given name '" + templateName + "'");
 	RuleExtensionBo extension = new RuleExtensionBo();
 	boolean attributeFound = false;
 	for (Iterator iter = ruleTemplate.getActiveRuleTemplateAttributes().iterator(); iter.hasNext();) {
 	    RuleTemplateAttributeBo templateAttribute = (;
 	    if (templateAttribute.getRuleAttributeId().equals(ruleAttribute.getId())) {
 		attributeFound = true;
 	if (!attributeFound) {
 	    // TODO: need test case for this
 	    throw new XmlException("Attribute '" + attributeName + "' not found on template '" + ruleTemplate.getName() + "'");
	return extension;
    private List parseRuleExtensionValues(Element elementRuleExtensionBo ruleExtensionthrows XmlException {
	List values = new ArrayList();
	if (element == null) {
	    return values;
	Collection<ElementvalueElements = XmlHelper.findElements(element);
	for (Iterator iterator = valueElements.iterator(); iterator.hasNext();) {
	    Element valueElement = (;
	return values;
    private RuleExtensionValue parseRuleExtensionValue(Element elementRuleExtensionBo ruleExtensionthrows XmlException {
	String key = element.getChildText();
	String value = element.getChildText();
	if (org.apache.commons.lang.StringUtils.isEmpty(key)) {
	    throw new XmlException("RuleExtensionValue must have a non-empty key.");
	if (value == null) {
	    throw new XmlException("RuleExtensionValue must have a non-null value.");
	RuleExtensionValue extensionValue = new RuleExtensionValue(keyvalue);
	return extensionValue;
New to GrepCode? Check out our FAQ X