Search in sources :

Example 1 with ScriptProvider

use of com.cognifide.cq.cqsm.api.actions.interfaces.ScriptProvider in project APM by Cognifide.

the class ScriptManagerImpl method parseIncludeDescriptors.

private List<ActionDescriptor> parseIncludeDescriptors(Script script, Map<String, String> definitions, List<Script> includes, ResourceResolver resolver) throws ExecutionException {
    final List<ActionDescriptor> descriptors = new LinkedList<>();
    LineIterator lineIterator = IOUtils.lineIterator(new StringReader(script.getData()));
    while (lineIterator.hasNext()) {
        String line = lineIterator.next();
        if (ScriptUtils.isAction(line)) {
            final String command = ScriptUtils.parseCommand(line, definitions);
            final ActionDescriptor descriptor = actionFactory.evaluate(command);
            final Action action = descriptor.getAction();
            descriptors.add(descriptor);
            if (action instanceof DefinitionProvider) {
                definitions.putAll(((DefinitionProvider) action).provideDefinitions(definitions));
            } else if (action instanceof ScriptProvider) {
                getIncludes(definitions, includes, resolver, descriptors, (ScriptProvider) action);
            }
        }
    }
    return descriptors;
}
Also used : Action(com.cognifide.cq.cqsm.api.actions.Action) DefinitionProvider(com.cognifide.cq.cqsm.api.actions.interfaces.DefinitionProvider) ScriptProvider(com.cognifide.cq.cqsm.api.actions.interfaces.ScriptProvider) ActionDescriptor(com.cognifide.cq.cqsm.api.actions.ActionDescriptor) StringReader(java.io.StringReader) LineIterator(org.apache.commons.io.LineIterator) LinkedList(java.util.LinkedList)

Aggregations

Action (com.cognifide.cq.cqsm.api.actions.Action)1 ActionDescriptor (com.cognifide.cq.cqsm.api.actions.ActionDescriptor)1 DefinitionProvider (com.cognifide.cq.cqsm.api.actions.interfaces.DefinitionProvider)1 ScriptProvider (com.cognifide.cq.cqsm.api.actions.interfaces.ScriptProvider)1 StringReader (java.io.StringReader)1 LinkedList (java.util.LinkedList)1 LineIterator (org.apache.commons.io.LineIterator)1