Merge remote-tracking branch 'gale/patch-2'

Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/commit/579bafe4
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/579bafe4
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/579bafe4

Branch: refs/heads/master
Commit: 579bafe40f1b372f7354549a5073070fd8c11bc0
Parents: 755469c 0abb308
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Tue Feb 2 22:16:57 2016 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Tue Feb 2 22:16:57 2016 +0000

----------------------------------------------------------------------
 .../java/org/apache/taverna/tavlang/CommandLineTool.java  | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/579bafe4/taverna-tavlang-tool/src/main/java/org/apache/taverna/tavlang/CommandLineTool.java
----------------------------------------------------------------------
diff --cc 
taverna-tavlang-tool/src/main/java/org/apache/taverna/tavlang/CommandLineTool.java
index 068c933,0000000..366ebc5
mode 100644,000000..100644
--- 
a/taverna-tavlang-tool/src/main/java/org/apache/taverna/tavlang/CommandLineTool.java
+++ 
b/taverna-tavlang-tool/src/main/java/org/apache/taverna/tavlang/CommandLineTool.java
@@@ -1,350 -1,0 +1,350 @@@
 +package org.apache.taverna.tavlang;
 +
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one
 + * or more contributor license agreements.  See the NOTICE file
 + * distributed with this work for additional information
 + * regarding copyright ownership.  The ASF licenses this file
 + * to you under the Apache 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
 + * 
 + *   http://www.apache.org/licenses/LICENSE-2.0
 + * 
 + * 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.
 + */
 +
 +import io.airlift.airline.Arguments;
 +import io.airlift.airline.Cli;
 +import io.airlift.airline.Cli.CliBuilder;
 +import io.airlift.airline.Command;
 +import io.airlift.airline.Help;
 +import io.airlift.airline.Option;
 +
 +import java.io.IOException;
 +import java.util.List;
 +
 +import javax.inject.Inject;
 +import javax.xml.bind.JAXBException;
 +
 +import org.apache.taverna.scufl2.api.io.ReaderException;
 +import org.apache.taverna.tavlang.tools.convert.Scufl2Convert;
 +import org.apache.taverna.tavlang.tools.convert.ToRobundle;
 +import org.apache.taverna.tavlang.tools.inspect.ProcessorNames;
 +import org.apache.taverna.tavlang.tools.inspect.ServiceTypes;
 +import org.apache.taverna.tavlang.tools.stats.GetWfStat;
 +import org.apache.taverna.tavlang.tools.validate.Validate;
 +
 +import com.google.common.collect.Lists;
 +
 +/*
 + * The command line options for convert, validate and inspect workflows.
 + * Use the airlift/airline library
 + * */
 +
 +public class CommandLineTool {
 +
 +      private static Cli<TvnLangTool> parser() {
 +              CliBuilder<TvnLangTool> build = Cli.<TvnLangTool> 
builder("tavlang")
 +                              .withDescription("Convert, manage workflows")
 +                              .withDefaultCommand(HelpCommand.class)
 +                              .withCommand(CommandConvert.class) // Conversion
 +                              .withCommand(HelpCommand.class) // Help
 +                              .withCommand(CommandInspect.class) // Inspect
 +                              .withCommand(CommandValidate.class) // Validate
 +                              .withCommand(CommandVersion.class) // Version
 +                              .withCommand(CommandStat.class); // Statistics
 +
 +              return build.build();
 +      }
 +
 +      public CommandLineTool() {
 +      };
 +
 +      public void parse(String... args) {
 +              TvnLangTool command = parser().parse(args);
 +              command.execute();
 +              System.out.println();
 +      }
 +
 +      public static abstract class TvnLangTool {
 +
 +              public abstract void execute();
 +      }
 +
 +      // placeholder for output file types
 +      public static class Filetypes {
 +              @Option(name = "--wfdesc", description = "Convert the workflow 
file to wfdesc-turtle")
 +              public static boolean isWfdesc = false;
 +
 +              @Option(name = "--wfbundle", description = "Convert the 
workflow file to wfbundle")
 +              public static boolean isWfbundle = false;
 +
-               @Option(name = "--robundle", description = "Convert given 
bundle in to Research Object bundle")
++              @Option(name = "--robundle", description = "Convert the given 
bundle into Research Object bundle")
 +              public static boolean isRo = false;
 +
 +              @Option(name = "--structure", description = "Convert the 
workflow into *.structure")
 +              public static boolean isStructure = false;
 +
 +              @Option(name = "--json", description = "Convert the workflow 
into json")
 +              public static boolean isJson = false;
 +
 +              
 +              @Option(name = "--iwir", description = "Convert scufl2 
workflows into IWIR 1.1 specification")
 +              public static boolean isIwir = false;
 +              
 +              
 +              // The tool can only handle one output format at a time.
 +              // Return the file type which is selected
 +              public static String isTrue() {
 +                      if (isWfdesc)
 +                              return "wfdesc";
 +                      else if (isWfbundle)
 +                              return "wfbundle";
 +                      else if (isRo)
 +                              return "robundle";
 +                      else if (isStructure)
 +                              return "structure";
 +                      else if (isJson)
 +                              return "json";
 +                      
 +                      else if (isIwir)
 +                              return "iwir";
 +                              
 +                      
 +                      else{
 +                              System.out.println("Invalid argument....");
 +                              TvnLangTool command = parser().parse("help", 
"convert");
 +                              command.execute();
 +                              return null;
 +                      }
 +                              
 +              }
 +
 +      }
 +
 +      public static class Inspect {
 +              @Option(name = "--servicetypes", description = "List the 
service types used in workflow")
 +              public static boolean servicetypes = false;
 +
 +              @Option(name = "--processornames", description = "List a tree 
of processor names used in workflow")
 +              public static boolean processor = false;
 +
 +              public String getWay() {
 +                      if (servicetypes)
 +                              return "servicetypes";
 +                      else if (processor)
 +                              return "processornames";
 +                      else{
 +                              System.out.println("Invalid argument....");
 +                              TvnLangTool command = parser().parse("help", 
"inspect");
 +                              command.execute();
 +                              return null;
 +                              
 +                      }
 +                              
 +              }
 +
 +      }
 +
 +      // Placeholder for optional parameters: Ex: -i, -o
 +      public static class Optional {
 +
 +              // The input file or directory
 +              @Option(name = { "-i", "--input" }, description = "Input file/ 
file dir for conversion")
 +              public static String in_file_dir;
 +
 +              // The out put file or directory. When this is set, all the 
converted
 +              // files will be saved into the directory that specified.
 +              @Option(name = { "-o", "--output" }, description = "Output 
file/ directory")
 +              public static String out_file_dir;
 +
 +              public static String getInFile() {
 +                      return in_file_dir;
 +              }
 +
 +              public static String getOutFile() {
 +                      return out_file_dir;
 +              }
 +
 +      }
 +
-       @Command(name = "help", description = "Display help information about 
Tvarna")
++      @Command(name = "help", description = "Display help information about 
Taverna")
 +      public static class HelpCommand extends TvnLangTool {
 +              @Inject
 +              public Help help;
 +
 +              @Override
 +              public void execute() {
 +                      help.call();
 +              }
 +      }
 +
 +      // Command for convert workflows
 +      @Command(name = "convert", description = "Convert the given workflow")
 +      public static class CommandConvert extends TvnLangTool {
 +              @Inject
 +              Optional optional = new Optional();
 +
 +              @Inject
 +              Filetypes filetypes = new Filetypes();
 +
 +              @Arguments(usage = "<output format> <input files> ", 
description = "List of files to be converted.\n "
 +                              + "Give the list of files to be converted 
without -i/-o and the converted files will be saved in to /converted folder in 
the same dir")
 +              public final List<String> files = Lists.newArrayList();
 +
 +              // When this is true, the command will run recursively in a 
directory.
 +              @Option(name = { "-r", "--recursive" }, description = "Execute 
the command recursively")
 +              public boolean recurse = false;
 +
 +              // Option for validate the given workflow when converting
 +              @Option(name = { "-V", "--validate" }, description = "Validate 
the workflow before convert")
 +              public boolean validate = false;
 +
 +              @Override
 +              public void execute() {
 +                      
 +                      //Validate before convert
 +                      if(validate){
 +                              Validate validate = new Validate(files, null, 
false);
 +                              if(validate.getCheck()){
 +                                      System.out.println("Conversion 
failed...! Workflow bundle has errors");
 +                                      return;
 +                              }else{
 +                                      runcommand();
 +                              }
 +                      }
 +              }
 +                      
 +              public void runcommand(){
 +                      if (Filetypes.isRo) {
 +                              try {
 +                                      new ToRobundle(files, 
Optional.getOutFile());
 +                              } catch (Exception e) {
 +                                      e.printStackTrace();
 +                              }
 +//                            else if(Filetypes.isIwir || Filetypes.isJson || 
Filetypes.isStructure || Filetypes.isWfbundle || Filetypes.isWfdesc)
 +                      } else if(Filetypes.isIwir || Filetypes.isJson || 
Filetypes.isStructure || Filetypes.isWfbundle || Filetypes.isWfdesc){
 +                              if (recurse) {
 +                                      new Scufl2Convert(Filetypes.isTrue(),
 +                                                      Optional.getInFile(), 
Optional.getOutFile());
 +                              } else {
 +                                      new Scufl2Convert(Filetypes.isTrue(), 
files,
 +                                                      Optional.getOutFile());
 +                              }
 +                      }else{
 +                              System.out.println("Invalid argument....");
 +                              TvnLangTool command = parser().parse("help", 
"convert");
 +                              command.execute();
 +                      }
 +
 +              }
 +              
 +              
 +              
 +      }
 +
 +      // Version command
-       @Command(name = "version", description = "Show version informantion")
++      @Command(name = "version", description = "Show version information")
 +      public static class CommandVersion extends TvnLangTool {
 +
 +              @Override
 +              public void execute() {
 +                      
System.out.print(getClass().getPackage().getImplementationTitle());
 +            System.out.println(" " + 
getClass().getPackage().getImplementationVersion());
 +              }
 +
 +      }
 +
 +      // Command for inspection of workflows....!!
 +      @Command(name = "inspect", description = "Inspect the given workflow 
and show the results on the terminal")
 +      public static class CommandInspect extends TvnLangTool {
 +
 +              @Inject
 +              Inspect inspect = new Inspect();
 +
 +              @Option(name = { "-l", "--log" }, description = "Specify the 
file name where results should be stored ([some dir]/log.txt)")
 +              public String file;
 +
 +              @Arguments(usage = "<option> <input files>", description = 
"Inspect the given workflow")
 +              public List<String> toInspect = Lists.newArrayList();
 +
 +              @Override
 +              public void execute() {
 +                      if (Inspect.processor) {
 +                              try {
 +                                      new ProcessorNames(toInspect, file);
 +
 +                              } catch (ReaderException | IOException | 
JAXBException e) {
 +                                      e.printStackTrace();
 +                              }
 +                      } else if (Inspect.servicetypes) {
 +                              try {
 +                                      new ServiceTypes(toInspect, file);
 +                              } catch (IOException | ReaderException e) {
 +                                      e.printStackTrace();
 +                              }
 +
 +                      }else{
 +                              System.out.println("Invalid argument....");
 +                              TvnLangTool command = parser().parse("help", 
"inspect");
 +                              command.execute();
 +                      }
 +
 +              }
 +
 +      }
 +
 +      // Command for validation
-       @Command(name = "validate", description = "validate the given workflow")
++      @Command(name = "validate", description = "Validate the given workflow")
 +      public static class CommandValidate extends TvnLangTool{
 +      
 +              @Option(name = { "-l", "--log" }, description = "Specify the 
file name where results should be stored ([some dir]/log.txt)")
 +              public String file;
 +              
 +              @Option(name = {"-v", "--verbose"}, description = "Verbose 
mode")
 +              public boolean verbose;
 +
 +//            @Arguments(usage = "<option> <input files> <output dir>", 
description = "Validate the given workflow file/s")
 +              @Arguments(usage = "input files", description = "Validate the 
given workflow file/s")
 +              public List<String> toValidate = Lists.newArrayList();
 +
 +              @Override
 +              public void execute() {
 +              
 +                      Validate validate = new Validate(toValidate, file, 
verbose);
 +                      
 +
 +              }
 +
 +      }
 +      
 +      //Command for getting workflow stats
 +      @Command (name = "stats", description = "Shows the workflow statistics")
 +      public static class CommandStat extends TvnLangTool{
 +
 +              
-               @Option(name = {"-l", "--log"}, description ="Save the workflow 
statictics in a file")
++              @Option(name = {"-l", "--log"}, description ="Save the workflow 
statistics in a file")
 +              public String file;
 +              
 +              @Option(name = {"-v", "--verbose"}, description = "Verbose 
mode")
 +              public boolean verbose;
 +              
 +              @Arguments(usage="input files", description = "Enter the 
workflow bundle files")
 +              public List<String> files;
 +              
 +              @Override
 +              public void execute() {
 +                      
 +                      GetWfStat stat = new GetWfStat(files, file, verbose);
 +                      
 +              }
 +              
 +      }
 +
 +}

Reply via email to