Package Specification

Source Code of Specification.LoniSpecification

package Specification;

import java.util.Enumeration;
import java.util.List;

import FileOps.Generator;
import FileOps.Parser;
import FileOps.XStream.XStreamWrapper;
import Galaxy.Tree.Tool.Input.Input;
import LONI.tree.*;
import LONI.tree.GraphObject.*;
import LONI.tree.module.Output;
import LONI.tree.module.Parameter;
import LONI.tree.module.Value;
import LONI.tree.module.Values;
import LONI.tree.module.format.FileType;
import LONI.tree.module.format.FileTypes;
import LONI.tree.module.format.Format;
import LONI.tree.module.metadata.Metadata;
import LONI.tree.workflow.Connection;
import LONI.tree.workflow.Connections;
import LONI.tree.workflow.Pipeline;
import LONI.tree.workflow.Variable;
import LONI.tree.workflow.Variables;
import Specification.LONI.ValueHandler;

public class LoniSpecification {
  private static XStreamWrapper<Pipeline> xstream = new XStreamWrapper<Pipeline>();
  private static boolean initialized = false;

  private static void init(){
    initXML();
    initialized = true;

  }

  private static void initXML(){
    /*Pipeline*/
    xstream.bindElementToClass(Pipeline.class, "pipeline");
    xstream.bindAttributeToClassField(Pipeline.class, "version", "version");
    xstream.bindAttributeToClassField(Pipeline.class, "pipelineModuleGroup", "moduleGroup");
    xstream.bindAttributeToClassField(Pipeline.class, "connections", "connections");
   
    /*ModuleGroup*/
    xstream.bindElementToClass(ModuleGroup.class, "moduleGroup");
    xstream.bindAttributeToClassField(ModuleGroup.class, "id", "id");
    xstream.bindAttributeToClassField(ModuleGroup.class, "name", "name");
    xstream.bindAttributeToClassField(ModuleGroup.class, "myPackage", "package");
    xstream.bindAttributeToClassField(ModuleGroup.class, "version", "version");
    xstream.bindAttributeToClassField(ModuleGroup.class, "description", "description");
    xstream.bindAttributeToClassField(ModuleGroup.class, "posX", "posX");
    xstream.bindAttributeToClassField(ModuleGroup.class, "posY", "posY");
    xstream.bindAttributeToClassField(ModuleGroup.class, "rotation", "rotation");
    xstream.bindElementToClassField(ModuleGroup.class, "variables", "variables");
    xstream.bindElementToClassField(ModuleGroup.class, "authors", "authors");
    xstream.bindGroupToList(ModuleGroup.class, "inputs", Parameter.class);
    xstream.bindGroupToList(ModuleGroup.class, "outputs", Output.class);
    xstream.bindGroupToList(ModuleGroup.class, "modules", GraphObject.class);
    xstream.bindElementToClassField(ModuleGroup.class, "metadata", "metadata");
    //xstream.bindElementToClassField(ModuleGroup.class, "connections", "connections");
     
   
    /*Connection(s)*/
    xstream.bindElementToClass(Connections.class, "connections");
    xstream.bindGroupToList(Connections.class, "connections");
    xstream.bindElementToClass(Connection.class, "connection");
    xstream.bindElementToClass(Connection.class, "connection");
    xstream.bindAttributeToClassField(Connection.class, "source", "source");
    xstream.bindAttributeToClassField(Connection.class, "sink", "sink");

   
    /*Format*/
    xstream.bindAttributeToClassField(Format.class, "cardinality", "cardinality");
    xstream.bindAttributeToClassField(Format.class, "cardinalityBase", "cardinalityBase");
    xstream.bindAttributeToClassField(Format.class, "transformationBase", "transformationBase");
    xstream.bindElementToClass(Format.class, "format");
    xstream.bindAttributeToClassField(Format.class, "type", "type");
    xstream.bindGroupToList(Format.class, "enumerations", String.class);
   
    xstream.bindElementToClass(String.class, "enumeration");
   
    /*Values */
    xstream.bindGroupToList(Values.class, "values", Value.class);
    xstream.bindElementToClass(Value.class, "value");
    xstream.addAdvancedHandler(new ValueHandler());
    //xstream.bindElementToClassField(Value.class,"metadata", "value");
   
    /* Variables*/
    xstream.bindGroupToList(Variables.class, "variables");
    xstream.bindElementToClass(Variable.class, "variable");
    xstream.bindAttributeToClassField(Variable.class, "required", "required");
    xstream.bindAttributeToClassField(Variable.class, "name", "name");
    xstream.bindAttributeToClassField(Variable.class, "description", "description");
    xstream.bindAttributeToClassField(Variable.class, "secret", "secret");
    xstream.bindAttributeToClassField(Variable.class, "order", "order");
   
   
    /*  FileType(s) */
    xstream.bindElementToClass(FileTypes.class, "fileTypes");
    xstream.bindGroupToList(FileTypes.class, "fileTypes");
    xstream.bindElementToClass(FileType.class, "filetype");
    xstream.bindAttributeToClassField(FileType.class, "name", "name");
    xstream.bindAttributeToClassField(FileType.class, "extension", "extension");
    xstream.bindAttributeToClassField(FileType.class, "description", "description");

    /*Output*/
   
    /*Module*/
    xstream.bindElementToClass(Module.class, "module");
    xstream.bindElementToClass(String.class, "tag");
    xstream.bindGroupToList(Module.class, "tags", String.class);
    xstream.bindGroupToList(Module.class , "inputs", Input.class);
    xstream.bindGroupToList(Module.class , "outputs", Output.class);
    xstream.bindGroupToList(Module.class , "metadata", Metadata.class);
    xstream.bindAttributeToClassField(Module.class, "myPackage", "package");
    xstream.bindAttributeToClassField(Module.class, "id", "id");
    xstream.bindAttributeToClassField(Module.class, "location", "location");
    xstream.bindAttributeToClassField(Module.class, "description", "description");
    xstream.bindAttributeToClassField(Module.class, "rotation", "rotation");
    xstream.bindAttributeToClassField(Module.class, "version", "version");
    xstream.bindAttributeToClassField(Module.class, "name", "name");
    xstream.bindAttributeToClassField(Module.class, "executableVersion", "executableVersion");
    xstream.bindAttributeToClassField(Module.class, "posX", "posX");
    xstream.bindAttributeToClassField(Module.class, "posY", "posY");
    xstream.bindGroupToList(Module.class ,"outputs", Output.class);
    xstream.bindGroupToList(Module.class ,"inputs",Parameter.class);
   


    xstream.bindElementToClass(Output.class, "output");
    xstream.bindAttributeToClassField(Output.class, "id", "id");
    xstream.bindAttributeToClassField(Output.class, "name", "name");
    xstream.bindAttributeToClassField(Output.class, "description", "description");
    xstream.bindAttributeToClassField(Output.class, "required", "required");
    xstream.bindAttributeToClassField(Output.class, "enabled", "enabled");
    xstream.bindAttributeToClassField(Output.class, "order", "order");
    xstream.bindAttributeToClassField(Output.class, "prefix", "prefix");
    xstream.bindAttributeToClassField(Output.class, "prefixSpaced", "prefixSpaced");
    xstream.bindAttributeToClassField(Output.class, "prefixAllArgs", "prefixAllArgs");
   
    xstream.bindElementToClassField(Output.class, "values", "values");
    xstream.bindAttributeToClassField(Output.class, "link", "link");
    xstream.bindElementToClassField(Output.class, "format", "format");
   
   
    xstream.bindElementToClass(Format.class, "format");
    xstream.bindAttributeToClassField(Format.class, "type", "type");
    xstream.bindAttributeToClassField(Format.class, "cardinality", "cardinality");
    xstream.bindAttributeToClassField(Format.class, "cardinalityBase", "cardinalityBase");
    xstream.bindAttributeToClassField(Format.class, "transformationBase", "transformationBase");
    xstream.bindElementToClassField(Format.class, "fileTypes", "fileTypes");

    /*DataModule*/
    xstream.bindElementToClass(DataModule.class, "dataModule");
    xstream.bindAttributeToClassField(DataModule.class, "myPackage", "package");
    xstream.bindAttributeToClassField(DataModule.class, "id", "id");
    xstream.bindAttributeToClassField(DataModule.class, "description", "description");
    xstream.bindAttributeToClassField(DataModule.class, "rotation", "rotation");
    xstream.bindAttributeToClassField(DataModule.class, "version", "version");
    xstream.bindAttributeToClassField(DataModule.class, "name", "name");
    xstream.bindAttributeToClassField(DataModule.class, "posX", "posX");
    xstream.bindAttributeToClassField(DataModule.class, "posY", "posY");
    xstream.bindAttributeToClassField(DataModule.class, "type", "type");
    xstream.bindAttributeToClassField(DataModule.class, "source", "source");
    xstream.bindAttributeToClassField(DataModule.class, "dirSource", "dirSource");
    xstream.bindAttributeToClassField(DataModule.class, "dirDump", "dirDump");
    xstream.bindAttributeToClassField(DataModule.class, "useDirSourceFilters", "useDirSourceFilters");
    xstream.bindAttributeToClassField(DataModule.class, "dirSourceFilterType", "dirSourceFilterType");
    xstream.bindAttributeToClassField(DataModule.class, "recursive", "recursive");
    xstream.bindAttributeToClassField(DataModule.class, "metadata", "metadata");
    xstream.bindAttributeToClassField(DataModule.class, "fileTypes", "fileTypes");
    xstream.bindGroupToList(DataModule.class, "outputs", Output.class);
    xstream.bindGroupToList(DataModule.class, "inputs", Parameter.class);
    xstream.bindGroupToList(DataModule.class, "tags", String.class);
    xstream.bindElementToClassField(DataModule.class, "uri", "uri");
    xstream.bindElementToClassField(DataModule.class, "authors", "authors");
   
    /*Authors*/
    xstream.bindElementToClass(Authors.class, "authors");
    xstream.bindGroupToList(Authors.class, "authors");
   
    /*Author*/
    xstream.bindElementToClass(Author.class, "author");
    xstream.bindAttributeToClassField(Author.class, "fullName", "fullName");
    xstream.bindAttributeToClassField(Author.class, "email", "email");
    xstream.bindAttributeToClassField(Author.class, "website", "website");
   
    /*Metadata*/
    xstream.bindElementToClass(Metadata.class, "metadata");
    xstream.bindElementToClassField(Metadata.class, "data", "data");

    /*Parameter*/
    xstream.bindElementToClass(Parameter.class, "input");
    xstream.bindElementToClassField(Parameter.class, "fileFormat", "format");
    xstream.bindElementToClassField(Parameter.class, "values", "values");
    xstream.bindAttributeToClassField(Parameter.class, "name", "name");
    xstream.bindAttributeToClassField(Parameter.class, "required", "required");
    xstream.bindAttributeToClassField(Parameter.class, "enabled", "enabled");
    xstream.bindAttributeToClassField(Parameter.class, "order", "order");
    xstream.bindAttributeToClassField(Parameter.class, "id", "id");
    xstream.bindAttributeToClassField(Parameter.class, "predefined", "predefined");
    xstream.bindAttributeToClassField(Parameter.class, "isMetadata", "isMetadata");
    xstream.bindAttributeToClassField(Parameter.class, "isListFile", "isListFile");
    xstream.bindAttributeToClassField(Parameter.class, "isHideData", "isHideData");
    xstream.bindAttributeToClassField(Parameter.class, "includeTransformedParameter", "includeTransformedParameter");
    xstream.bindAttributeToClassField(Parameter.class, "prefix", "prefix");
    xstream.bindAttributeToClassField(Parameter.class, "description", "description");
    xstream.bindAttributeToClassField(Parameter.class, "link", "link");
    xstream.bindAttributeToClassField(Parameter.class, "prefixSpaced", "prefixSpaced");
    xstream.bindAttributeToClassField(Parameter.class, "prefixAllArgs", "prefixAllArgs");
   
  }

  public static Parser<Pipeline> getXMLParser(){
    if(!initialized)
      init();
    return xstream;
  }
  public static Generator<Pipeline> getXMLGenerator(){
    if(!initialized)
      init();
    return xstream;
  }

}
TOP

Related Classes of Specification.LoniSpecification

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.