Package org.springframework.xd.dirt.stream.dsl

Examples of org.springframework.xd.dirt.stream.dsl.StreamNode


   */
  @Override
  public List<ModuleDescriptor> parse(String name, String config, ParsingContext parsingContext) {

    StreamConfigParser parser = new StreamConfigParser(repository);
    StreamNode stream = parser.parse(name, config);
    Deque<ModuleDescriptor.Builder> builders = new LinkedList<ModuleDescriptor.Builder>();

    List<ModuleNode> moduleNodes = stream.getModuleNodes();
    for (int m = moduleNodes.size() - 1; m >= 0; m--) {
      ModuleNode moduleNode = moduleNodes.get(m);
      ModuleDescriptor.Builder builder =
          new ModuleDescriptor.Builder()
              .setGroup(name)
              .setModuleName(moduleNode.getName())
              .setModuleLabel(moduleNode.getLabelName())
              .setIndex(m);
      if (moduleNode.hasArguments()) {
        ArgumentNode[] arguments = moduleNode.getArguments();
        for (ArgumentNode argument : arguments) {
          builder.setParameter(argument.getName(), argument.getValue());
        }
      }
      builders.add(builder);
    }

    SourceChannelNode sourceChannel = stream.getSourceChannelNode();
    if (sourceChannel != null) {
      if (parsingContext.supportsNamedChannels()) {
        builders.getLast().setSourceChannelName(sourceChannel.getChannelName());
      }
      else {
        throw new StreamDefinitionException(config, sourceChannel.getStartPos(),
            NAMED_CHANNELS_UNSUPPORTED_HERE);
      }
    }

    SinkChannelNode sinkChannel = stream.getSinkChannelNode();
    if (sinkChannel != null) {
      if (parsingContext.supportsNamedChannels()) {
        builders.getFirst().setSinkChannelName(sinkChannel.getChannelName());
      }
      else {
View Full Code Here

TOP

Related Classes of org.springframework.xd.dirt.stream.dsl.StreamNode

Copyright © 2018 www.massapicom. 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.