Package org.jbpm.ui.validation

Source Code of org.jbpm.ui.validation.ValidatorDefinitionRegistry

package org.jbpm.ui.validation;

import java.util.HashMap;
import java.util.Map;

import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtension;
import org.eclipse.core.runtime.Platform;
import org.jbpm.ui.DesignerLogger;
import org.jbpm.ui.validation.ValidatorDefinition.Param;

public class ValidatorDefinitionRegistry {
    private static final Map<String, ValidatorDefinition> definitions = new HashMap<String, ValidatorDefinition>();

    private static void init() {
        if (definitions.size() > 0) {
            return;
        }
       
        IExtension[] extensions = Platform.getExtensionRegistry().getExtensionPoint("org.jbpm.ui.validators").getExtensions();
        for (IExtension extension : extensions) {
            IConfigurationElement[] configElements = extension.getConfigurationElements();
            for (IConfigurationElement configElement : configElements) {
                try {
                    ValidatorDefinition definition = new ValidatorDefinition(
                            configElement.getAttribute("name"),
                            configElement.getAttribute("displayName"),
                            ValidatorDefinition.FIELD_TYPE,
                            configElement.getAttribute("description"));

                    String applicableString = configElement.getAttribute("applicable");
                    if (applicableString != null && applicableString.length() > 0) {
                        for (String string : applicableString.split(",")) {
                            definition.addApplicableType(string.trim());
                        }
                    }

                    IConfigurationElement[] paramElements = configElement.getChildren();
                    for (IConfigurationElement paramElement : paramElements) {
                        Param param = new Param(
                                paramElement.getAttribute("name"),
                                paramElement.getAttribute("displayName"),
                                paramElement.getAttribute("type"));
                        definition.addParam(param);
                    }
                    definitions.put(definition.getName(), definition);
                } catch (Exception e) {
                    DesignerLogger.logError("Error processing org.jbpm.ui.validators element", e);
                }
            }
        }
       
        ValidatorDefinition global = new ValidatorDefinition(
                ValidatorDefinition.GLOBAL_VALIDATOR_NAME,
                "BSH",
                ValidatorDefinition.GLOBAL_TYPE,
                "BSH code");
        global.addParam(new Param(ValidatorDefinition.EXPRESSION_PARAM_NAME, "", Param.BSH_TYPE));
        definitions.put(ValidatorDefinition.GLOBAL_VALIDATOR_NAME, global);
    }

    public static Map<String, ValidatorDefinition> getValidatorDefinitions() {
        init();
        return definitions;
    }

    public static ValidatorDefinition getGlobalDefinition() {
        init();
        return definitions.get(ValidatorDefinition.GLOBAL_VALIDATOR_NAME);
    }
}
TOP

Related Classes of org.jbpm.ui.validation.ValidatorDefinitionRegistry

TOP
Copyright © 2018 www.massapi.com. 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.