Search in sources :

Example 1 with CommandConfiguration

use of org.springframework.roo.addon.tailor.config.CommandConfiguration in project spring-roo by spring-projects.

the class TailorParser method parseTailorConfiguration.

/**
 * Maps the single XML tailor configuration to a TailorConfiguration object.
 *
 * @param tailor element
 * @return tailor configurations
 */
public static TailorConfiguration parseTailorConfiguration(final Element elTailor) {
    if (StringUtils.isBlank(elTailor.getAttribute("name"))) {
        logTailorXMLInvalid("<tailor> must have a name attribute");
        return null;
    }
    final TailorConfiguration result = new TailorConfiguration(elTailor.getAttribute("name"), elTailor.getAttribute("description"));
    final String activeAttribute = elTailor.getAttribute("activate");
    if (StringUtils.isNotBlank(activeAttribute)) {
        final boolean isActive = "true".equalsIgnoreCase(activeAttribute) || "yes".equalsIgnoreCase(activeAttribute);
        result.setActive(isActive);
    }
    final List<Element> elConfigs = XmlUtils.findElements("config", elTailor);
    if (elConfigs.isEmpty()) {
        logTailorXMLInvalid("<tailor> must have <config> child elements");
        return null;
    }
    for (final Element elConfig : elConfigs) {
        final String command = elConfig.getAttribute("command");
        if (StringUtils.isBlank(command)) {
            logTailorXMLInvalid("found <config> without command attribute");
            return null;
        }
        final CommandConfiguration newCmdConfig = new CommandConfiguration();
        newCmdConfig.setCommandName(command);
        final List<Element> elActions = XmlUtils.findElements("action", elConfig);
        for (final Element elAction : elActions) {
            // Determine the action type
            if (StringUtils.isBlank(elAction.getAttribute("type"))) {
                logTailorXMLInvalid("found <action> without type attribute");
                return null;
            }
            final ActionConfig newAction = new ActionConfig(elAction.getAttribute("type"));
            final NamedNodeMap attributes = elAction.getAttributes();
            for (int i = 0; i < attributes.getLength(); i++) {
                final Node item = attributes.item(i);
                final String attributeKey = item.getNodeName();
                if (!"type".equals(attributeKey)) {
                    newAction.setAttribute(attributeKey, item.getNodeValue());
                }
            }
            newCmdConfig.addAction(newAction);
        }
        result.addCommandConfig(newCmdConfig);
    }
    return result;
}
Also used : ActionConfig(org.springframework.roo.addon.tailor.actions.ActionConfig) NamedNodeMap(org.w3c.dom.NamedNodeMap) CommandConfiguration(org.springframework.roo.addon.tailor.config.CommandConfiguration) Element(org.w3c.dom.Element) Node(org.w3c.dom.Node) TailorConfiguration(org.springframework.roo.addon.tailor.config.TailorConfiguration)

Example 2 with CommandConfiguration

use of org.springframework.roo.addon.tailor.config.CommandConfiguration in project spring-roo by spring-projects.

the class DefaultTailorImpl method execute.

private void execute(final CommandTransformation commandTrafo) {
    final TailorConfiguration configuration = configLocator.getActiveTailorConfiguration();
    if (configuration == null) {
        return;
    }
    final CommandConfiguration commandConfig = configuration.getCommandConfigFor(commandTrafo.getInputCommand());
    if (commandConfig == null) {
        return;
    }
    logInDevelopmentMode(Level.INFO, "Tailor: detected " + commandTrafo.getInputCommand());
    for (final ActionConfig config : commandConfig.getActions()) {
        final Action component = actionLocator.getAction(config.getActionTypeId());
        if (component != null) {
            logInDevelopmentMode(Level.INFO, "\tTailoring: " + component.getDescription(config));
            component.execute(commandTrafo, config);
        } else {
            logInDevelopmentMode(Level.WARNING, "\tTailoring: Couldn't find action '" + config.getActionTypeId());
        }
    }
}
Also used : ActionConfig(org.springframework.roo.addon.tailor.actions.ActionConfig) Action(org.springframework.roo.addon.tailor.actions.Action) CommandConfiguration(org.springframework.roo.addon.tailor.config.CommandConfiguration) TailorConfiguration(org.springframework.roo.addon.tailor.config.TailorConfiguration)

Aggregations

ActionConfig (org.springframework.roo.addon.tailor.actions.ActionConfig)2 CommandConfiguration (org.springframework.roo.addon.tailor.config.CommandConfiguration)2 TailorConfiguration (org.springframework.roo.addon.tailor.config.TailorConfiguration)2 Action (org.springframework.roo.addon.tailor.actions.Action)1 Element (org.w3c.dom.Element)1 NamedNodeMap (org.w3c.dom.NamedNodeMap)1 Node (org.w3c.dom.Node)1