http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/InputDataObjectType.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/InputDataObjectType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/InputDataObjectType.java index 97227b8..8ab0b46 100644 --- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/InputDataObjectType.java +++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/InputDataObjectType.java @@ -85,6 +85,10 @@ import org.slf4j.LoggerFactory; private static final org.apache.thrift.protocol.TField STANDARD_INPUT_FIELD_DESC = new org.apache.thrift.protocol.TField("standardInput", org.apache.thrift.protocol.TType.BOOL, (short)5); private static final org.apache.thrift.protocol.TField USER_FRIENDLY_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("userFriendlyDescription", org.apache.thrift.protocol.TType.STRING, (short)6); private static final org.apache.thrift.protocol.TField META_DATA_FIELD_DESC = new org.apache.thrift.protocol.TField("metaData", org.apache.thrift.protocol.TType.STRING, (short)7); + private static final org.apache.thrift.protocol.TField INPUT_ORDER_FIELD_DESC = new org.apache.thrift.protocol.TField("inputOrder", org.apache.thrift.protocol.TType.I32, (short)8); + private static final org.apache.thrift.protocol.TField INPUT_VALID_FIELD_DESC = new org.apache.thrift.protocol.TField("inputValid", org.apache.thrift.protocol.TType.I32, (short)9); + private static final org.apache.thrift.protocol.TField ADDED_TO_COMMAND_LINE_FIELD_DESC = new org.apache.thrift.protocol.TField("addedToCommandLine", org.apache.thrift.protocol.TType.I32, (short)10); + private static final org.apache.thrift.protocol.TField DATA_STAGED_FIELD_DESC = new org.apache.thrift.protocol.TField("dataStaged", org.apache.thrift.protocol.TType.BOOL, (short)11); private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>(); static { @@ -99,6 +103,10 @@ import org.slf4j.LoggerFactory; private boolean standardInput; // optional private String userFriendlyDescription; // optional private String metaData; // optional + private int inputOrder; // optional + private ValidityType inputValid; // optional + private CommandLineType addedToCommandLine; // optional + private boolean dataStaged; // optional /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum { @@ -112,7 +120,19 @@ import org.slf4j.LoggerFactory; APPLICATION_ARGUMENT((short)4, "applicationArgument"), STANDARD_INPUT((short)5, "standardInput"), USER_FRIENDLY_DESCRIPTION((short)6, "userFriendlyDescription"), - META_DATA((short)7, "metaData"); + META_DATA((short)7, "metaData"), + INPUT_ORDER((short)8, "inputOrder"), + /** + * + * @see ValidityType + */ + INPUT_VALID((short)9, "inputValid"), + /** + * + * @see CommandLineType + */ + ADDED_TO_COMMAND_LINE((short)10, "addedToCommandLine"), + DATA_STAGED((short)11, "dataStaged"); private static final Map<String, _Fields> byName = new HashMap<String, _Fields>(); @@ -141,6 +161,14 @@ import org.slf4j.LoggerFactory; return USER_FRIENDLY_DESCRIPTION; case 7: // META_DATA return META_DATA; + case 8: // INPUT_ORDER + return INPUT_ORDER; + case 9: // INPUT_VALID + return INPUT_VALID; + case 10: // ADDED_TO_COMMAND_LINE + return ADDED_TO_COMMAND_LINE; + case 11: // DATA_STAGED + return DATA_STAGED; default: return null; } @@ -182,8 +210,10 @@ import org.slf4j.LoggerFactory; // isset id assignments private static final int __STANDARDINPUT_ISSET_ID = 0; + private static final int __INPUTORDER_ISSET_ID = 1; + private static final int __DATASTAGED_ISSET_ID = 2; private byte __isset_bitfield = 0; - private _Fields optionals[] = {_Fields.VALUE,_Fields.TYPE,_Fields.APPLICATION_ARGUMENT,_Fields.STANDARD_INPUT,_Fields.USER_FRIENDLY_DESCRIPTION,_Fields.META_DATA}; + private _Fields optionals[] = {_Fields.VALUE,_Fields.TYPE,_Fields.APPLICATION_ARGUMENT,_Fields.STANDARD_INPUT,_Fields.USER_FRIENDLY_DESCRIPTION,_Fields.META_DATA,_Fields.INPUT_ORDER,_Fields.INPUT_VALID,_Fields.ADDED_TO_COMMAND_LINE,_Fields.DATA_STAGED}; public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; static { Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); @@ -201,6 +231,14 @@ import org.slf4j.LoggerFactory; new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); tmpMap.put(_Fields.META_DATA, new org.apache.thrift.meta_data.FieldMetaData("metaData", org.apache.thrift.TFieldRequirementType.OPTIONAL, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); + tmpMap.put(_Fields.INPUT_ORDER, new org.apache.thrift.meta_data.FieldMetaData("inputOrder", org.apache.thrift.TFieldRequirementType.OPTIONAL, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); + tmpMap.put(_Fields.INPUT_VALID, new org.apache.thrift.meta_data.FieldMetaData("inputValid", org.apache.thrift.TFieldRequirementType.OPTIONAL, + new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ValidityType.class))); + tmpMap.put(_Fields.ADDED_TO_COMMAND_LINE, new org.apache.thrift.meta_data.FieldMetaData("addedToCommandLine", org.apache.thrift.TFieldRequirementType.OPTIONAL, + new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, CommandLineType.class))); + tmpMap.put(_Fields.DATA_STAGED, new org.apache.thrift.meta_data.FieldMetaData("dataStaged", org.apache.thrift.TFieldRequirementType.OPTIONAL, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL))); metaDataMap = Collections.unmodifiableMap(tmpMap); org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(InputDataObjectType.class, metaDataMap); } @@ -208,6 +246,8 @@ import org.slf4j.LoggerFactory; public InputDataObjectType() { this.standardInput = false; + this.dataStaged = false; + } public InputDataObjectType( @@ -241,6 +281,14 @@ import org.slf4j.LoggerFactory; if (other.isSetMetaData()) { this.metaData = other.metaData; } + this.inputOrder = other.inputOrder; + if (other.isSetInputValid()) { + this.inputValid = other.inputValid; + } + if (other.isSetAddedToCommandLine()) { + this.addedToCommandLine = other.addedToCommandLine; + } + this.dataStaged = other.dataStaged; } public InputDataObjectType deepCopy() { @@ -257,6 +305,12 @@ import org.slf4j.LoggerFactory; this.userFriendlyDescription = null; this.metaData = null; + setInputOrderIsSet(false); + this.inputOrder = 0; + this.inputValid = null; + this.addedToCommandLine = null; + this.dataStaged = false; + } public String getName() { @@ -427,6 +481,112 @@ import org.slf4j.LoggerFactory; } } + public int getInputOrder() { + return this.inputOrder; + } + + public void setInputOrder(int inputOrder) { + this.inputOrder = inputOrder; + setInputOrderIsSet(true); + } + + public void unsetInputOrder() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __INPUTORDER_ISSET_ID); + } + + /** Returns true if field inputOrder is set (has been assigned a value) and false otherwise */ + public boolean isSetInputOrder() { + return EncodingUtils.testBit(__isset_bitfield, __INPUTORDER_ISSET_ID); + } + + public void setInputOrderIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __INPUTORDER_ISSET_ID, value); + } + + /** + * + * @see ValidityType + */ + public ValidityType getInputValid() { + return this.inputValid; + } + + /** + * + * @see ValidityType + */ + public void setInputValid(ValidityType inputValid) { + this.inputValid = inputValid; + } + + public void unsetInputValid() { + this.inputValid = null; + } + + /** Returns true if field inputValid is set (has been assigned a value) and false otherwise */ + public boolean isSetInputValid() { + return this.inputValid != null; + } + + public void setInputValidIsSet(boolean value) { + if (!value) { + this.inputValid = null; + } + } + + /** + * + * @see CommandLineType + */ + public CommandLineType getAddedToCommandLine() { + return this.addedToCommandLine; + } + + /** + * + * @see CommandLineType + */ + public void setAddedToCommandLine(CommandLineType addedToCommandLine) { + this.addedToCommandLine = addedToCommandLine; + } + + public void unsetAddedToCommandLine() { + this.addedToCommandLine = null; + } + + /** Returns true if field addedToCommandLine is set (has been assigned a value) and false otherwise */ + public boolean isSetAddedToCommandLine() { + return this.addedToCommandLine != null; + } + + public void setAddedToCommandLineIsSet(boolean value) { + if (!value) { + this.addedToCommandLine = null; + } + } + + public boolean isDataStaged() { + return this.dataStaged; + } + + public void setDataStaged(boolean dataStaged) { + this.dataStaged = dataStaged; + setDataStagedIsSet(true); + } + + public void unsetDataStaged() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __DATASTAGED_ISSET_ID); + } + + /** Returns true if field dataStaged is set (has been assigned a value) and false otherwise */ + public boolean isSetDataStaged() { + return EncodingUtils.testBit(__isset_bitfield, __DATASTAGED_ISSET_ID); + } + + public void setDataStagedIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __DATASTAGED_ISSET_ID, value); + } + public void setFieldValue(_Fields field, Object value) { switch (field) { case NAME: @@ -485,6 +645,38 @@ import org.slf4j.LoggerFactory; } break; + case INPUT_ORDER: + if (value == null) { + unsetInputOrder(); + } else { + setInputOrder((Integer)value); + } + break; + + case INPUT_VALID: + if (value == null) { + unsetInputValid(); + } else { + setInputValid((ValidityType)value); + } + break; + + case ADDED_TO_COMMAND_LINE: + if (value == null) { + unsetAddedToCommandLine(); + } else { + setAddedToCommandLine((CommandLineType)value); + } + break; + + case DATA_STAGED: + if (value == null) { + unsetDataStaged(); + } else { + setDataStaged((Boolean)value); + } + break; + } } @@ -511,6 +703,18 @@ import org.slf4j.LoggerFactory; case META_DATA: return getMetaData(); + case INPUT_ORDER: + return Integer.valueOf(getInputOrder()); + + case INPUT_VALID: + return getInputValid(); + + case ADDED_TO_COMMAND_LINE: + return getAddedToCommandLine(); + + case DATA_STAGED: + return Boolean.valueOf(isDataStaged()); + } throw new IllegalStateException(); } @@ -536,6 +740,14 @@ import org.slf4j.LoggerFactory; return isSetUserFriendlyDescription(); case META_DATA: return isSetMetaData(); + case INPUT_ORDER: + return isSetInputOrder(); + case INPUT_VALID: + return isSetInputValid(); + case ADDED_TO_COMMAND_LINE: + return isSetAddedToCommandLine(); + case DATA_STAGED: + return isSetDataStaged(); } throw new IllegalStateException(); } @@ -616,6 +828,42 @@ import org.slf4j.LoggerFactory; return false; } + boolean this_present_inputOrder = true && this.isSetInputOrder(); + boolean that_present_inputOrder = true && that.isSetInputOrder(); + if (this_present_inputOrder || that_present_inputOrder) { + if (!(this_present_inputOrder && that_present_inputOrder)) + return false; + if (this.inputOrder != that.inputOrder) + return false; + } + + boolean this_present_inputValid = true && this.isSetInputValid(); + boolean that_present_inputValid = true && that.isSetInputValid(); + if (this_present_inputValid || that_present_inputValid) { + if (!(this_present_inputValid && that_present_inputValid)) + return false; + if (!this.inputValid.equals(that.inputValid)) + return false; + } + + boolean this_present_addedToCommandLine = true && this.isSetAddedToCommandLine(); + boolean that_present_addedToCommandLine = true && that.isSetAddedToCommandLine(); + if (this_present_addedToCommandLine || that_present_addedToCommandLine) { + if (!(this_present_addedToCommandLine && that_present_addedToCommandLine)) + return false; + if (!this.addedToCommandLine.equals(that.addedToCommandLine)) + return false; + } + + boolean this_present_dataStaged = true && this.isSetDataStaged(); + boolean that_present_dataStaged = true && that.isSetDataStaged(); + if (this_present_dataStaged || that_present_dataStaged) { + if (!(this_present_dataStaged && that_present_dataStaged)) + return false; + if (this.dataStaged != that.dataStaged) + return false; + } + return true; } @@ -702,6 +950,46 @@ import org.slf4j.LoggerFactory; return lastComparison; } } + lastComparison = Boolean.valueOf(isSetInputOrder()).compareTo(other.isSetInputOrder()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetInputOrder()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.inputOrder, other.inputOrder); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetInputValid()).compareTo(other.isSetInputValid()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetInputValid()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.inputValid, other.inputValid); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetAddedToCommandLine()).compareTo(other.isSetAddedToCommandLine()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetAddedToCommandLine()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.addedToCommandLine, other.addedToCommandLine); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetDataStaged()).compareTo(other.isSetDataStaged()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetDataStaged()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataStaged, other.dataStaged); + if (lastComparison != 0) { + return lastComparison; + } + } return 0; } @@ -785,6 +1073,38 @@ import org.slf4j.LoggerFactory; } first = false; } + if (isSetInputOrder()) { + if (!first) sb.append(", "); + sb.append("inputOrder:"); + sb.append(this.inputOrder); + first = false; + } + if (isSetInputValid()) { + if (!first) sb.append(", "); + sb.append("inputValid:"); + if (this.inputValid == null) { + sb.append("null"); + } else { + sb.append(this.inputValid); + } + first = false; + } + if (isSetAddedToCommandLine()) { + if (!first) sb.append(", "); + sb.append("addedToCommandLine:"); + if (this.addedToCommandLine == null) { + sb.append("null"); + } else { + sb.append(this.addedToCommandLine); + } + first = false; + } + if (isSetDataStaged()) { + if (!first) sb.append(", "); + sb.append("dataStaged:"); + sb.append(this.dataStaged); + first = false; + } sb.append(")"); return sb.toString(); } @@ -890,6 +1210,38 @@ import org.slf4j.LoggerFactory; org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); } break; + case 8: // INPUT_ORDER + if (schemeField.type == org.apache.thrift.protocol.TType.I32) { + struct.inputOrder = iprot.readI32(); + struct.setInputOrderIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 9: // INPUT_VALID + if (schemeField.type == org.apache.thrift.protocol.TType.I32) { + struct.inputValid = ValidityType.findByValue(iprot.readI32()); + struct.setInputValidIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 10: // ADDED_TO_COMMAND_LINE + if (schemeField.type == org.apache.thrift.protocol.TType.I32) { + struct.addedToCommandLine = CommandLineType.findByValue(iprot.readI32()); + struct.setAddedToCommandLineIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 11: // DATA_STAGED + if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) { + struct.dataStaged = iprot.readBool(); + struct.setDataStagedIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; default: org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); } @@ -948,6 +1300,30 @@ import org.slf4j.LoggerFactory; oprot.writeFieldEnd(); } } + if (struct.isSetInputOrder()) { + oprot.writeFieldBegin(INPUT_ORDER_FIELD_DESC); + oprot.writeI32(struct.inputOrder); + oprot.writeFieldEnd(); + } + if (struct.inputValid != null) { + if (struct.isSetInputValid()) { + oprot.writeFieldBegin(INPUT_VALID_FIELD_DESC); + oprot.writeI32(struct.inputValid.getValue()); + oprot.writeFieldEnd(); + } + } + if (struct.addedToCommandLine != null) { + if (struct.isSetAddedToCommandLine()) { + oprot.writeFieldBegin(ADDED_TO_COMMAND_LINE_FIELD_DESC); + oprot.writeI32(struct.addedToCommandLine.getValue()); + oprot.writeFieldEnd(); + } + } + if (struct.isSetDataStaged()) { + oprot.writeFieldBegin(DATA_STAGED_FIELD_DESC); + oprot.writeBool(struct.dataStaged); + oprot.writeFieldEnd(); + } oprot.writeFieldStop(); oprot.writeStructEnd(); } @@ -985,7 +1361,19 @@ import org.slf4j.LoggerFactory; if (struct.isSetMetaData()) { optionals.set(5); } - oprot.writeBitSet(optionals, 6); + if (struct.isSetInputOrder()) { + optionals.set(6); + } + if (struct.isSetInputValid()) { + optionals.set(7); + } + if (struct.isSetAddedToCommandLine()) { + optionals.set(8); + } + if (struct.isSetDataStaged()) { + optionals.set(9); + } + oprot.writeBitSet(optionals, 10); if (struct.isSetValue()) { oprot.writeString(struct.value); } @@ -1004,6 +1392,18 @@ import org.slf4j.LoggerFactory; if (struct.isSetMetaData()) { oprot.writeString(struct.metaData); } + if (struct.isSetInputOrder()) { + oprot.writeI32(struct.inputOrder); + } + if (struct.isSetInputValid()) { + oprot.writeI32(struct.inputValid.getValue()); + } + if (struct.isSetAddedToCommandLine()) { + oprot.writeI32(struct.addedToCommandLine.getValue()); + } + if (struct.isSetDataStaged()) { + oprot.writeBool(struct.dataStaged); + } } @Override @@ -1011,7 +1411,7 @@ import org.slf4j.LoggerFactory; TTupleProtocol iprot = (TTupleProtocol) prot; struct.name = iprot.readString(); struct.setNameIsSet(true); - BitSet incoming = iprot.readBitSet(6); + BitSet incoming = iprot.readBitSet(10); if (incoming.get(0)) { struct.value = iprot.readString(); struct.setValueIsSet(true); @@ -1036,6 +1436,22 @@ import org.slf4j.LoggerFactory; struct.metaData = iprot.readString(); struct.setMetaDataIsSet(true); } + if (incoming.get(6)) { + struct.inputOrder = iprot.readI32(); + struct.setInputOrderIsSet(true); + } + if (incoming.get(7)) { + struct.inputValid = ValidityType.findByValue(iprot.readI32()); + struct.setInputValidIsSet(true); + } + if (incoming.get(8)) { + struct.addedToCommandLine = CommandLineType.findByValue(iprot.readI32()); + struct.setAddedToCommandLineIsSet(true); + } + if (incoming.get(9)) { + struct.dataStaged = iprot.readBool(); + struct.setDataStagedIsSet(true); + } } }
http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/OutputDataObjectType.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/OutputDataObjectType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/OutputDataObjectType.java index ddfaae9..337f167 100644 --- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/OutputDataObjectType.java +++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/OutputDataObjectType.java @@ -81,6 +81,9 @@ import org.slf4j.LoggerFactory; private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)1); private static final org.apache.thrift.protocol.TField VALUE_FIELD_DESC = new org.apache.thrift.protocol.TField("value", org.apache.thrift.protocol.TType.STRING, (short)2); private static final org.apache.thrift.protocol.TField TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("type", org.apache.thrift.protocol.TType.I32, (short)3); + private static final org.apache.thrift.protocol.TField VALIDITY_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("validityType", org.apache.thrift.protocol.TType.I32, (short)4); + private static final org.apache.thrift.protocol.TField DATA_MOVEMENT_FIELD_DESC = new org.apache.thrift.protocol.TField("dataMovement", org.apache.thrift.protocol.TType.BOOL, (short)5); + private static final org.apache.thrift.protocol.TField DATA_NAME_LOCATION_FIELD_DESC = new org.apache.thrift.protocol.TField("dataNameLocation", org.apache.thrift.protocol.TType.STRING, (short)6); private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>(); static { @@ -91,6 +94,9 @@ import org.slf4j.LoggerFactory; private String name; // required private String value; // optional private DataType type; // optional + private ValidityType validityType; // optional + private boolean dataMovement; // optional + private String dataNameLocation; // optional /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum { @@ -100,7 +106,14 @@ import org.slf4j.LoggerFactory; * * @see DataType */ - TYPE((short)3, "type"); + TYPE((short)3, "type"), + /** + * + * @see ValidityType + */ + VALIDITY_TYPE((short)4, "validityType"), + DATA_MOVEMENT((short)5, "dataMovement"), + DATA_NAME_LOCATION((short)6, "dataNameLocation"); private static final Map<String, _Fields> byName = new HashMap<String, _Fields>(); @@ -121,6 +134,12 @@ import org.slf4j.LoggerFactory; return VALUE; case 3: // TYPE return TYPE; + case 4: // VALIDITY_TYPE + return VALIDITY_TYPE; + case 5: // DATA_MOVEMENT + return DATA_MOVEMENT; + case 6: // DATA_NAME_LOCATION + return DATA_NAME_LOCATION; default: return null; } @@ -161,7 +180,9 @@ import org.slf4j.LoggerFactory; } // isset id assignments - private _Fields optionals[] = {_Fields.VALUE,_Fields.TYPE}; + private static final int __DATAMOVEMENT_ISSET_ID = 0; + private byte __isset_bitfield = 0; + private _Fields optionals[] = {_Fields.VALUE,_Fields.TYPE,_Fields.VALIDITY_TYPE,_Fields.DATA_MOVEMENT,_Fields.DATA_NAME_LOCATION}; public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; static { Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); @@ -171,6 +192,12 @@ import org.slf4j.LoggerFactory; new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); tmpMap.put(_Fields.TYPE, new org.apache.thrift.meta_data.FieldMetaData("type", org.apache.thrift.TFieldRequirementType.OPTIONAL, new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, DataType.class))); + tmpMap.put(_Fields.VALIDITY_TYPE, new org.apache.thrift.meta_data.FieldMetaData("validityType", org.apache.thrift.TFieldRequirementType.OPTIONAL, + new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ValidityType.class))); + tmpMap.put(_Fields.DATA_MOVEMENT, new org.apache.thrift.meta_data.FieldMetaData("dataMovement", org.apache.thrift.TFieldRequirementType.OPTIONAL, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL))); + tmpMap.put(_Fields.DATA_NAME_LOCATION, new org.apache.thrift.meta_data.FieldMetaData("dataNameLocation", org.apache.thrift.TFieldRequirementType.OPTIONAL, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); metaDataMap = Collections.unmodifiableMap(tmpMap); org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(OutputDataObjectType.class, metaDataMap); } @@ -189,6 +216,7 @@ import org.slf4j.LoggerFactory; * Performs a deep copy on <i>other</i>. */ public OutputDataObjectType(OutputDataObjectType other) { + __isset_bitfield = other.__isset_bitfield; if (other.isSetName()) { this.name = other.name; } @@ -198,6 +226,13 @@ import org.slf4j.LoggerFactory; if (other.isSetType()) { this.type = other.type; } + if (other.isSetValidityType()) { + this.validityType = other.validityType; + } + this.dataMovement = other.dataMovement; + if (other.isSetDataNameLocation()) { + this.dataNameLocation = other.dataNameLocation; + } } public OutputDataObjectType deepCopy() { @@ -209,6 +244,10 @@ import org.slf4j.LoggerFactory; this.name = null; this.value = null; this.type = null; + this.validityType = null; + setDataMovementIsSet(false); + this.dataMovement = false; + this.dataNameLocation = null; } public String getName() { @@ -288,6 +327,82 @@ import org.slf4j.LoggerFactory; } } + /** + * + * @see ValidityType + */ + public ValidityType getValidityType() { + return this.validityType; + } + + /** + * + * @see ValidityType + */ + public void setValidityType(ValidityType validityType) { + this.validityType = validityType; + } + + public void unsetValidityType() { + this.validityType = null; + } + + /** Returns true if field validityType is set (has been assigned a value) and false otherwise */ + public boolean isSetValidityType() { + return this.validityType != null; + } + + public void setValidityTypeIsSet(boolean value) { + if (!value) { + this.validityType = null; + } + } + + public boolean isDataMovement() { + return this.dataMovement; + } + + public void setDataMovement(boolean dataMovement) { + this.dataMovement = dataMovement; + setDataMovementIsSet(true); + } + + public void unsetDataMovement() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __DATAMOVEMENT_ISSET_ID); + } + + /** Returns true if field dataMovement is set (has been assigned a value) and false otherwise */ + public boolean isSetDataMovement() { + return EncodingUtils.testBit(__isset_bitfield, __DATAMOVEMENT_ISSET_ID); + } + + public void setDataMovementIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __DATAMOVEMENT_ISSET_ID, value); + } + + public String getDataNameLocation() { + return this.dataNameLocation; + } + + public void setDataNameLocation(String dataNameLocation) { + this.dataNameLocation = dataNameLocation; + } + + public void unsetDataNameLocation() { + this.dataNameLocation = null; + } + + /** Returns true if field dataNameLocation is set (has been assigned a value) and false otherwise */ + public boolean isSetDataNameLocation() { + return this.dataNameLocation != null; + } + + public void setDataNameLocationIsSet(boolean value) { + if (!value) { + this.dataNameLocation = null; + } + } + public void setFieldValue(_Fields field, Object value) { switch (field) { case NAME: @@ -314,6 +429,30 @@ import org.slf4j.LoggerFactory; } break; + case VALIDITY_TYPE: + if (value == null) { + unsetValidityType(); + } else { + setValidityType((ValidityType)value); + } + break; + + case DATA_MOVEMENT: + if (value == null) { + unsetDataMovement(); + } else { + setDataMovement((Boolean)value); + } + break; + + case DATA_NAME_LOCATION: + if (value == null) { + unsetDataNameLocation(); + } else { + setDataNameLocation((String)value); + } + break; + } } @@ -328,6 +467,15 @@ import org.slf4j.LoggerFactory; case TYPE: return getType(); + case VALIDITY_TYPE: + return getValidityType(); + + case DATA_MOVEMENT: + return Boolean.valueOf(isDataMovement()); + + case DATA_NAME_LOCATION: + return getDataNameLocation(); + } throw new IllegalStateException(); } @@ -345,6 +493,12 @@ import org.slf4j.LoggerFactory; return isSetValue(); case TYPE: return isSetType(); + case VALIDITY_TYPE: + return isSetValidityType(); + case DATA_MOVEMENT: + return isSetDataMovement(); + case DATA_NAME_LOCATION: + return isSetDataNameLocation(); } throw new IllegalStateException(); } @@ -389,6 +543,33 @@ import org.slf4j.LoggerFactory; return false; } + boolean this_present_validityType = true && this.isSetValidityType(); + boolean that_present_validityType = true && that.isSetValidityType(); + if (this_present_validityType || that_present_validityType) { + if (!(this_present_validityType && that_present_validityType)) + return false; + if (!this.validityType.equals(that.validityType)) + return false; + } + + boolean this_present_dataMovement = true && this.isSetDataMovement(); + boolean that_present_dataMovement = true && that.isSetDataMovement(); + if (this_present_dataMovement || that_present_dataMovement) { + if (!(this_present_dataMovement && that_present_dataMovement)) + return false; + if (this.dataMovement != that.dataMovement) + return false; + } + + boolean this_present_dataNameLocation = true && this.isSetDataNameLocation(); + boolean that_present_dataNameLocation = true && that.isSetDataNameLocation(); + if (this_present_dataNameLocation || that_present_dataNameLocation) { + if (!(this_present_dataNameLocation && that_present_dataNameLocation)) + return false; + if (!this.dataNameLocation.equals(that.dataNameLocation)) + return false; + } + return true; } @@ -435,6 +616,36 @@ import org.slf4j.LoggerFactory; return lastComparison; } } + lastComparison = Boolean.valueOf(isSetValidityType()).compareTo(other.isSetValidityType()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetValidityType()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.validityType, other.validityType); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetDataMovement()).compareTo(other.isSetDataMovement()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetDataMovement()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataMovement, other.dataMovement); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetDataNameLocation()).compareTo(other.isSetDataNameLocation()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetDataNameLocation()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataNameLocation, other.dataNameLocation); + if (lastComparison != 0) { + return lastComparison; + } + } return 0; } @@ -482,6 +693,32 @@ import org.slf4j.LoggerFactory; } first = false; } + if (isSetValidityType()) { + if (!first) sb.append(", "); + sb.append("validityType:"); + if (this.validityType == null) { + sb.append("null"); + } else { + sb.append(this.validityType); + } + first = false; + } + if (isSetDataMovement()) { + if (!first) sb.append(", "); + sb.append("dataMovement:"); + sb.append(this.dataMovement); + first = false; + } + if (isSetDataNameLocation()) { + if (!first) sb.append(", "); + sb.append("dataNameLocation:"); + if (this.dataNameLocation == null) { + sb.append("null"); + } else { + sb.append(this.dataNameLocation); + } + first = false; + } sb.append(")"); return sb.toString(); } @@ -505,6 +742,8 @@ import org.slf4j.LoggerFactory; private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { try { + // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. + __isset_bitfield = 0; read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); } catch (org.apache.thrift.TException te) { throw new java.io.IOException(te); @@ -553,6 +792,30 @@ import org.slf4j.LoggerFactory; org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); } break; + case 4: // VALIDITY_TYPE + if (schemeField.type == org.apache.thrift.protocol.TType.I32) { + struct.validityType = ValidityType.findByValue(iprot.readI32()); + struct.setValidityTypeIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 5: // DATA_MOVEMENT + if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) { + struct.dataMovement = iprot.readBool(); + struct.setDataMovementIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 6: // DATA_NAME_LOCATION + if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { + struct.dataNameLocation = iprot.readString(); + struct.setDataNameLocationIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; default: org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); } @@ -585,6 +848,25 @@ import org.slf4j.LoggerFactory; oprot.writeFieldEnd(); } } + if (struct.validityType != null) { + if (struct.isSetValidityType()) { + oprot.writeFieldBegin(VALIDITY_TYPE_FIELD_DESC); + oprot.writeI32(struct.validityType.getValue()); + oprot.writeFieldEnd(); + } + } + if (struct.isSetDataMovement()) { + oprot.writeFieldBegin(DATA_MOVEMENT_FIELD_DESC); + oprot.writeBool(struct.dataMovement); + oprot.writeFieldEnd(); + } + if (struct.dataNameLocation != null) { + if (struct.isSetDataNameLocation()) { + oprot.writeFieldBegin(DATA_NAME_LOCATION_FIELD_DESC); + oprot.writeString(struct.dataNameLocation); + oprot.writeFieldEnd(); + } + } oprot.writeFieldStop(); oprot.writeStructEnd(); } @@ -610,13 +892,31 @@ import org.slf4j.LoggerFactory; if (struct.isSetType()) { optionals.set(1); } - oprot.writeBitSet(optionals, 2); + if (struct.isSetValidityType()) { + optionals.set(2); + } + if (struct.isSetDataMovement()) { + optionals.set(3); + } + if (struct.isSetDataNameLocation()) { + optionals.set(4); + } + oprot.writeBitSet(optionals, 5); if (struct.isSetValue()) { oprot.writeString(struct.value); } if (struct.isSetType()) { oprot.writeI32(struct.type.getValue()); } + if (struct.isSetValidityType()) { + oprot.writeI32(struct.validityType.getValue()); + } + if (struct.isSetDataMovement()) { + oprot.writeBool(struct.dataMovement); + } + if (struct.isSetDataNameLocation()) { + oprot.writeString(struct.dataNameLocation); + } } @Override @@ -624,7 +924,7 @@ import org.slf4j.LoggerFactory; TTupleProtocol iprot = (TTupleProtocol) prot; struct.name = iprot.readString(); struct.setNameIsSet(true); - BitSet incoming = iprot.readBitSet(2); + BitSet incoming = iprot.readBitSet(5); if (incoming.get(0)) { struct.value = iprot.readString(); struct.setValueIsSet(true); @@ -633,6 +933,18 @@ import org.slf4j.LoggerFactory; struct.type = DataType.findByValue(iprot.readI32()); struct.setTypeIsSet(true); } + if (incoming.get(2)) { + struct.validityType = ValidityType.findByValue(iprot.readI32()); + struct.setValidityTypeIsSet(true); + } + if (incoming.get(3)) { + struct.dataMovement = iprot.readBool(); + struct.setDataMovementIsSet(true); + } + if (incoming.get(4)) { + struct.dataNameLocation = iprot.readString(); + struct.setDataNameLocationIsSet(true); + } } } http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/airavata-api/airavata-model-utils/src/main/java/org/apache/airavata/model/util/AppInterfaceUtil.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-model-utils/src/main/java/org/apache/airavata/model/util/AppInterfaceUtil.java b/airavata-api/airavata-model-utils/src/main/java/org/apache/airavata/model/util/AppInterfaceUtil.java index 4030857..ad7a0de 100644 --- a/airavata-api/airavata-model-utils/src/main/java/org/apache/airavata/model/util/AppInterfaceUtil.java +++ b/airavata-api/airavata-model-utils/src/main/java/org/apache/airavata/model/util/AppInterfaceUtil.java @@ -45,6 +45,7 @@ public class AppInterfaceUtil { String value, DataType type, String applicationArgument, + int order, boolean standardInput, String userFriendlyDesc, String metadata){ @@ -54,6 +55,7 @@ public class AppInterfaceUtil { appInput.setType(type); appInput.setMetaData(metadata); appInput.setApplicationArgument(applicationArgument); + appInput.setInputOrder(order); appInput.setUserFriendlyDescription(userFriendlyDesc); appInput.setStandardInput(standardInput); return appInput; http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/airavata-api/thrift-interface-descriptions/applicationInterfaceModel.thrift ---------------------------------------------------------------------- diff --git a/airavata-api/thrift-interface-descriptions/applicationInterfaceModel.thrift b/airavata-api/thrift-interface-descriptions/applicationInterfaceModel.thrift index 2bb16dc..8e6c896 100644 --- a/airavata-api/thrift-interface-descriptions/applicationInterfaceModel.thrift +++ b/airavata-api/thrift-interface-descriptions/applicationInterfaceModel.thrift @@ -43,6 +43,22 @@ enum DataType{ STDERR } +enum ValidityType{ + REQUIRED, + OPTIONAL +} + +enum CommandLineType{ + INCLUSIVE, + EXCLUSIVE +} + +enum InputMetadataType { + MEMORY, + CPU +} + + /** * Application Inputs. The paramters describe how inputs are passed to the application. * @@ -70,14 +86,17 @@ enum DataType{ * */ struct InputDataObjectType { -// 1: required bool isEmpty = 0, 1: required string name, 2: optional string value, 3: optional DataType type, 4: optional string applicationArgument, 5: optional bool standardInput = 0, 6: optional string userFriendlyDescription, - 7: optional string metaData + 7: optional string metaData, + 8: optional i32 inputOrder, + 9: optional ValidityType inputValid, + 10: optional CommandLineType addedToCommandLine, + 11: optional bool dataStaged = 0 } /** @@ -107,10 +126,12 @@ struct InputDataObjectType { * */ struct OutputDataObjectType { -// 1: required bool isEmpty = 0, 1: required string name, 2: optional string value, - 3: optional DataType type + 3: optional DataType type, + 4: optional ValidityType validityType, + 5: optional bool dataMovement, + 6: optional string dataNameLocation } /** http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationInterfaceImpl.java ---------------------------------------------------------------------- diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationInterfaceImpl.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationInterfaceImpl.java index d430ebe..67bd1bc 100644 --- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationInterfaceImpl.java +++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationInterfaceImpl.java @@ -101,8 +101,9 @@ public class ApplicationInterfaceImpl implements ApplicationInterface { inputResource.setInputVal(input.getValue()); inputResource.setDataType(input.getType().toString()); inputResource.setMetadata(input.getMetaData()); - inputResource.setStandareInput(input.isStandardInput()); + inputResource.setStandardInput(input.isStandardInput()); inputResource.setAppArgument(input.getApplicationArgument()); + inputResource.setInputOrder(input.getInputOrder()); inputResource.save(); } } @@ -216,8 +217,9 @@ public class ApplicationInterfaceImpl implements ApplicationInterface { inputResource.setInputVal(input.getValue()); inputResource.setDataType(input.getType().toString()); inputResource.setMetadata(input.getMetaData()); - inputResource.setStandareInput(input.isStandardInput()); + inputResource.setStandardInput(input.isStandardInput()); inputResource.setAppArgument(input.getApplicationArgument()); + inputResource.setInputOrder(input.getInputOrder()); inputResource.save(); } } http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/WorkflowCatalogImpl.java ---------------------------------------------------------------------- diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/WorkflowCatalogImpl.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/WorkflowCatalogImpl.java index 3474b40..a57ac49 100644 --- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/WorkflowCatalogImpl.java +++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/WorkflowCatalogImpl.java @@ -98,7 +98,7 @@ public class WorkflowCatalogImpl implements WorkflowCatalog { wfInputResource.setWfTemplateId(resource.getWfTemplateId()); wfInputResource.setDataType(input.getType().toString()); wfInputResource.setAppArgument(input.getApplicationArgument()); - wfInputResource.setStandareInput(input.isStandardInput()); + wfInputResource.setStandardInput(input.isStandardInput()); wfInputResource.setUserFriendlyDesc(input.getUserFriendlyDescription()); wfInputResource.setMetadata(input.getMetaData()); wfInputResource.save(); @@ -148,7 +148,7 @@ public class WorkflowCatalogImpl implements WorkflowCatalog { existingInput.setWfTemplateId(existingWF.getWfTemplateId()); existingInput.setDataType(input.getType().toString()); existingInput.setAppArgument(input.getApplicationArgument()); - existingInput.setStandareInput(input.isStandardInput()); + existingInput.setStandardInput(input.isStandardInput()); existingInput.setUserFriendlyDesc(input.getUserFriendlyDescription()); existingInput.setMetadata(input.getMetaData()); existingInput.save(); http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationInput.java ---------------------------------------------------------------------- diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationInput.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationInput.java index 689f24e..e7b98c2 100644 --- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationInput.java +++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationInput.java @@ -47,6 +47,14 @@ public class ApplicationInput implements Serializable { private String userFriendlyDesc; @Column(name = "STANDARD_INPUT") private boolean standardInput; + @Column(name="INPUT_ORDER") + private int inputOrder; + @Column(name="VALIDITY_TYPE") + private String validityType; + @Column(name="COMMANDLINE_TYPE") + private String commandLineType; + @Column(name = "DATA_STAGED") + private boolean dataStaged; @ManyToOne(cascade= CascadeType.MERGE) @JoinColumn(name = "INTERFACE_ID") @@ -123,4 +131,36 @@ public class ApplicationInput implements Serializable { public void setStandardInput(boolean standardInput) { this.standardInput = standardInput; } + + public int getInputOrder() { + return inputOrder; + } + + public void setInputOrder(int inputOrder) { + this.inputOrder = inputOrder; + } + + public String getValidityType() { + return validityType; + } + + public void setValidityType(String validityType) { + this.validityType = validityType; + } + + public String getCommandLineType() { + return commandLineType; + } + + public void setCommandLineType(String commandLineType) { + this.commandLineType = commandLineType; + } + + public boolean isDataStaged() { + return dataStaged; + } + + public void setDataStaged(boolean dataStaged) { + this.dataStaged = dataStaged; + } } http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationOutput.java ---------------------------------------------------------------------- diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationOutput.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationOutput.java index 6e418af..c13e7d3 100644 --- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationOutput.java +++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationOutput.java @@ -39,6 +39,12 @@ public class ApplicationOutput implements Serializable { private String outputVal; @Column(name = "DATA_TYPE") private String dataType; + @Column(name = "VALIDITY_TYPE") + private String validityType; + @Column(name = "DATA_MOVEMENT") + private boolean dataMovement; + @Column(name = "DATA_NAME_LOCATION") + private String dataNameLocation; @ManyToOne(cascade= CascadeType.MERGE) @JoinColumn(name = "INTERFACE_ID") @@ -83,4 +89,28 @@ public class ApplicationOutput implements Serializable { public void setOutputVal(String outputVal) { this.outputVal = outputVal; } + + public String getValidityType() { + return validityType; + } + + public void setValidityType(String validityType) { + this.validityType = validityType; + } + + public boolean isDataMovement() { + return dataMovement; + } + + public void setDataMovement(boolean dataMovement) { + this.dataMovement = dataMovement; + } + + public String getDataNameLocation() { + return dataNameLocation; + } + + public void setDataNameLocation(String dataNameLocation) { + this.dataNameLocation = dataNameLocation; + } } http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/WorkflowInput.java ---------------------------------------------------------------------- diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/WorkflowInput.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/WorkflowInput.java index 81d2b6d..8318bee 100644 --- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/WorkflowInput.java +++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/WorkflowInput.java @@ -48,8 +48,16 @@ public class WorkflowInput implements Serializable { private String userFriendlyDesc; @Column(name = "STANDARD_INPUT") private boolean standardInput; - - @ManyToOne(cascade= CascadeType.MERGE) + @Column(name = "INPUT_ORDER") + private int inputOrder; + @Column(name="VALIDITY_TYPE") + private String validityType; + @Column(name="COMMANDLINE_TYPE") + private String commandLineType; + @Column(name = "DATA_STAGED") + private boolean dataStaged; + + @ManyToOne(cascade = CascadeType.MERGE) @JoinColumn(name = "WF_TEMPLATE_ID") private Workflow workflow; @@ -124,4 +132,36 @@ public class WorkflowInput implements Serializable { public void setStandardInput(boolean standardInput) { this.standardInput = standardInput; } + + public int getInputOrder() { + return inputOrder; + } + + public void setInputOrder(int inputOrder) { + this.inputOrder = inputOrder; + } + + public String getValidityType() { + return validityType; + } + + public void setValidityType(String validityType) { + this.validityType = validityType; + } + + public String getCommandLineType() { + return commandLineType; + } + + public void setCommandLineType(String commandLineType) { + this.commandLineType = commandLineType; + } + + public boolean isDataStaged() { + return dataStaged; + } + + public void setDataStaged(boolean dataStaged) { + this.dataStaged = dataStaged; + } } http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/WorkflowOutput.java ---------------------------------------------------------------------- diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/WorkflowOutput.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/WorkflowOutput.java index 5532c6c..8343a48 100644 --- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/WorkflowOutput.java +++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/WorkflowOutput.java @@ -40,6 +40,12 @@ public class WorkflowOutput implements Serializable { private char[] outputVal; @Column(name = "DATA_TYPE") private String dataType; + @Column(name = "VALIDITY_TYPE") + private String validityType; + @Column(name = "DATA_MOVEMENT") + private boolean dataMovement; + @Column(name = "DATA_NAME_LOCATION") + private String dataNameLocation; @ManyToOne(cascade= CascadeType.MERGE) @JoinColumn(name = "WF_TEMPLATE_ID") @@ -84,4 +90,28 @@ public class WorkflowOutput implements Serializable { public void setOutputVal(char[] outputVal) { this.outputVal = outputVal; } + + public String getValidityType() { + return validityType; + } + + public void setValidityType(String validityType) { + this.validityType = validityType; + } + + public boolean isDataMovement() { + return dataMovement; + } + + public void setDataMovement(boolean dataMovement) { + this.dataMovement = dataMovement; + } + + public String getDataNameLocation() { + return dataNameLocation; + } + + public void setDataNameLocation(String dataNameLocation) { + this.dataNameLocation = dataNameLocation; + } } http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationInputResource.java ---------------------------------------------------------------------- diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationInputResource.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationInputResource.java index 6894ff1..87e1246 100644 --- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationInputResource.java +++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationInputResource.java @@ -48,7 +48,11 @@ public class ApplicationInputResource extends AbstractResource { private String metadata; private String appArgument; private String userFriendlyDesc; - private boolean standareInput; + private int inputOrder; + private boolean standardInput; + private String validityType; + private String commandLineType; + private boolean dataStaged; private AppInterfaceResource appInterfaceResource; @@ -288,7 +292,11 @@ public class ApplicationInputResource extends AbstractResource { applicationInput.setMetadata(metadata); applicationInput.setAppArgument(appArgument); applicationInput.setUserFriendlyDesc(userFriendlyDesc); - applicationInput.setStandardInput(standareInput); + applicationInput.setStandardInput(standardInput); + applicationInput.setInputOrder(inputOrder); + applicationInput.setCommandLineType(commandLineType); + applicationInput.setValidityType(validityType); + applicationInput.setDataStaged(dataStaged); if (existingApplicationInput == null) { em.persist(applicationInput); } else { @@ -404,11 +412,43 @@ public class ApplicationInputResource extends AbstractResource { this.appInterfaceResource = appInterfaceResource; } - public boolean isStandareInput() { - return standareInput; + public boolean isStandardInput() { + return standardInput; } - public void setStandareInput(boolean standareInput) { - this.standareInput = standareInput; + public void setStandardInput(boolean standardInput) { + this.standardInput = standardInput; + } + + public int getInputOrder() { + return inputOrder; + } + + public void setInputOrder(int inputOrder) { + this.inputOrder = inputOrder; + } + + public String getValidityType() { + return validityType; + } + + public void setValidityType(String validityType) { + this.validityType = validityType; + } + + public String getCommandLineType() { + return commandLineType; + } + + public void setCommandLineType(String commandLineType) { + this.commandLineType = commandLineType; + } + + public boolean isDataStaged() { + return dataStaged; + } + + public void setDataStaged(boolean dataStaged) { + this.dataStaged = dataStaged; } } http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationOutputResource.java ---------------------------------------------------------------------- diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationOutputResource.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationOutputResource.java index ea0f52b..e3d97c2 100644 --- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationOutputResource.java +++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationOutputResource.java @@ -44,6 +44,9 @@ public class ApplicationOutputResource extends AbstractResource { private String outputKey; private String outputVal; private String dataType; + private String validityType; + private boolean dataMovement; + private String dataNameLocation; private AppInterfaceResource appInterfaceResource; @@ -283,6 +286,9 @@ public class ApplicationOutputResource extends AbstractResource { applicationOutput.setDataType(dataType); applicationOutput.setOutputKey(outputKey); applicationOutput.setOutputVal(outputVal); + applicationOutput.setValidityType(validityType); + applicationOutput.setDataMovement(dataMovement); + applicationOutput.setDataNameLocation(dataNameLocation); em.merge(applicationOutput); em.getTransaction().commit(); em.close(); @@ -369,4 +375,28 @@ public class ApplicationOutputResource extends AbstractResource { public void setAppInterfaceResource(AppInterfaceResource appInterfaceResource) { this.appInterfaceResource = appInterfaceResource; } + + public String getValidityType() { + return validityType; + } + + public void setValidityType(String validityType) { + this.validityType = validityType; + } + + public boolean isDataMovement() { + return dataMovement; + } + + public void setDataMovement(boolean dataMovement) { + this.dataMovement = dataMovement; + } + + public String getDataNameLocation() { + return dataNameLocation; + } + + public void setDataNameLocation(String dataNameLocation) { + this.dataNameLocation = dataNameLocation; + } } http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowInputResource.java ---------------------------------------------------------------------- diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowInputResource.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowInputResource.java index 75c1351..c00d48c 100644 --- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowInputResource.java +++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowInputResource.java @@ -48,7 +48,11 @@ public class WorkflowInputResource extends AbstractResource { private String metadata; private String appArgument; private String userFriendlyDesc; - private boolean standareInput; + private boolean standardInput; + private int inputOrder; + private String validityType; + private String commandLineType; + private boolean dataStaged; private WorkflowResource workflowResource; @@ -286,7 +290,10 @@ public class WorkflowInputResource extends AbstractResource { workflowInput.setMetadata(metadata); workflowInput.setAppArgument(appArgument); workflowInput.setUserFriendlyDesc(userFriendlyDesc); - workflowInput.setStandardInput(standareInput); + workflowInput.setStandardInput(standardInput); + workflowInput.setCommandLineType(commandLineType); + workflowInput.setValidityType(validityType); + workflowInput.setDataStaged(dataStaged); if (existingWFInput == null) { em.persist(workflowInput); } else { @@ -402,11 +409,43 @@ public class WorkflowInputResource extends AbstractResource { this.workflowResource = workflowResource; } - public boolean isStandareInput() { - return standareInput; + public boolean isStandardInput() { + return standardInput; } - public void setStandareInput(boolean standareInput) { - this.standareInput = standareInput; + public void setStandardInput(boolean standardInput) { + this.standardInput = standardInput; + } + + public int getInputOrder() { + return inputOrder; + } + + public void setInputOrder(int inputOrder) { + this.inputOrder = inputOrder; + } + + public String getValidityType() { + return validityType; + } + + public void setValidityType(String validityType) { + this.validityType = validityType; + } + + public String getCommandLineType() { + return commandLineType; + } + + public void setCommandLineType(String commandLineType) { + this.commandLineType = commandLineType; + } + + public boolean isDataStaged() { + return dataStaged; + } + + public void setDataStaged(boolean dataStaged) { + this.dataStaged = dataStaged; } } http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowOutputResource.java ---------------------------------------------------------------------- diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowOutputResource.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowOutputResource.java index edefad9..b8f7bbf 100644 --- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowOutputResource.java +++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowOutputResource.java @@ -44,6 +44,9 @@ public class WorkflowOutputResource extends AbstractResource { private String outputKey; private String outputVal; private String dataType; + private String validityType; + private boolean dataMovement; + private String dataNameLocation; private WorkflowResource workflowResource; @@ -276,6 +279,9 @@ public class WorkflowOutputResource extends AbstractResource { if (outputKey != null){ existingWorkflowOutput.setOutputVal(outputVal.toCharArray()); } + existingWorkflowOutput.setValidityType(validityType); + existingWorkflowOutput.setDataMovement(dataMovement); + existingWorkflowOutput.setDataNameLocation(dataNameLocation); em.merge(existingWorkflowOutput); } else { WorkflowOutput workflowOutput = new WorkflowOutput(); @@ -287,6 +293,9 @@ public class WorkflowOutputResource extends AbstractResource { if (outputKey != null){ workflowOutput.setOutputVal(outputVal.toCharArray()); } + workflowOutput.setValidityType(validityType); + workflowOutput.setDataMovement(dataMovement); + workflowOutput.setDataNameLocation(dataNameLocation); em.persist(workflowOutput); } em.getTransaction().commit(); @@ -374,4 +383,28 @@ public class WorkflowOutputResource extends AbstractResource { public void setWorkflowResource(WorkflowResource workflowResource) { this.workflowResource = workflowResource; } + + public String getValidityType() { + return validityType; + } + + public void setValidityType(String validityType) { + this.validityType = validityType; + } + + public boolean isDataMovement() { + return dataMovement; + } + + public void setDataMovement(boolean dataMovement) { + this.dataMovement = dataMovement; + } + + public String getDataNameLocation() { + return dataNameLocation; + } + + public void setDataNameLocation(String dataNameLocation) { + this.dataNameLocation = dataNameLocation; + } } http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java ---------------------------------------------------------------------- diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java index aca396a..4c9d257 100644 --- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java +++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java @@ -760,7 +760,11 @@ public class AppCatalogJPAUtils { resource.setMetadata(o.getMetadata()); resource.setAppArgument(o.getAppArgument()); resource.setUserFriendlyDesc(o.getUserFriendlyDesc()); - resource.setStandareInput(o.isStandardInput()); + resource.setStandardInput(o.isStandardInput()); + resource.setInputOrder(o.getInputOrder()); + resource.setValidityType(o.getValidityType()); + resource.setCommandLineType(o.getCommandLineType()); + resource.setDataStaged(o.isDataStaged()); resource.setAppInterfaceResource((AppInterfaceResource)createAppInterfaceResource(o.getApplicationInterface())); } return resource; @@ -777,8 +781,12 @@ public class AppCatalogJPAUtils { resource.setDataType(o.getDataType()); resource.setMetadata(o.getMetadata()); resource.setAppArgument(o.getAppArgument()); + resource.setInputOrder(o.getInputOrder()); resource.setUserFriendlyDesc(o.getUserFriendlyDesc()); - resource.setStandareInput(o.isStandardInput()); + resource.setStandardInput(o.isStandardInput()); + resource.setValidityType(o.getValidityType()); + resource.setCommandLineType(o.getCommandLineType()); + resource.setDataStaged(o.isDataStaged()); resource.setWorkflowResource((WorkflowResource)createWorkflow(o.getWorkflow())); } return resource; @@ -791,6 +799,9 @@ public class AppCatalogJPAUtils { resource.setOutputKey(o.getOutputKey()); resource.setOutputVal(o.getOutputVal()); resource.setDataType(o.getDataType()); + resource.setValidityType(o.getValidityType()); + resource.setDataMovement(o.isDataMovement()); + resource.setDataNameLocation(o.getDataNameLocation()); resource.setAppInterfaceResource((AppInterfaceResource)createAppInterfaceResource(o.getApplicationInterface())); } return resource; @@ -805,6 +816,9 @@ public class AppCatalogJPAUtils { resource.setOutputVal(new String(o.getOutputVal())); } resource.setDataType(o.getDataType()); + resource.setValidityType(o.getValidityType()); + resource.setDataMovement(o.isDataMovement()); + resource.setDataNameLocation(o.getDataNameLocation()); resource.setWorkflowResource((WorkflowResource)createWorkflow(o.getWorkflow())); } return resource; http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java ---------------------------------------------------------------------- diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java index 9646bda..de9d577 100644 --- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java +++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java @@ -28,10 +28,7 @@ import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentD import org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule; import org.apache.airavata.model.appcatalog.appdeployment.ApplicationParallelismType; import org.apache.airavata.model.appcatalog.appdeployment.SetEnvPaths; -import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription; -import org.apache.airavata.model.appcatalog.appinterface.DataType; -import org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType; -import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType; +import org.apache.airavata.model.appcatalog.appinterface.*; import org.apache.airavata.model.appcatalog.computeresource.*; import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference; import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile; @@ -556,10 +553,18 @@ public class AppCatalogThriftConversion { inputDataObjectType.setName(input.getInputKey()); inputDataObjectType.setValue(input.getInputVal()); inputDataObjectType.setApplicationArgument(input.getAppArgument()); + inputDataObjectType.setInputOrder(input.getInputOrder()); inputDataObjectType.setMetaData(input.getMetadata()); inputDataObjectType.setType(DataType.valueOf(input.getDataType())); - inputDataObjectType.setStandardInput(input.isStandareInput()); + inputDataObjectType.setStandardInput(input.isStandardInput()); inputDataObjectType.setUserFriendlyDescription(input.getUserFriendlyDesc()); + if (input.getValidityType() != null){ + inputDataObjectType.setInputValid(ValidityType.valueOf(input.getValidityType())); + } + if (input.getCommandLineType() != null){ + inputDataObjectType.setAddedToCommandLine(CommandLineType.valueOf(input.getCommandLineType())); + } + inputDataObjectType.setDataStaged(input.isDataStaged()); return inputDataObjectType; } @@ -575,6 +580,11 @@ public class AppCatalogThriftConversion { outputDataObjectType.setName(output.getOutputKey()); outputDataObjectType.setValue(output.getOutputVal()); outputDataObjectType.setType(DataType.valueOf(output.getDataType())); + if (output.getValidityType() != null){ + outputDataObjectType.setValidityType(ValidityType.valueOf(output.getValidityType())); + } + outputDataObjectType.setDataMovement(output.isDataMovement()); + outputDataObjectType.setDataNameLocation(output.getDataNameLocation()); return outputDataObjectType; } @@ -696,9 +706,17 @@ public class AppCatalogThriftConversion { InputDataObjectType input = new InputDataObjectType(); input.setName(resource.getInputKey()); input.setApplicationArgument(resource.getAppArgument()); + input.setInputOrder(resource.getInputOrder()); input.setType(DataType.valueOf(resource.getDataType())); input.setMetaData(resource.getMetadata()); input.setUserFriendlyDescription(resource.getUserFriendlyDesc()); + if (resource.getValidityType() != null){ + input.setInputValid(ValidityType.valueOf(resource.getValidityType())); + } + if (resource.getCommandLineType() != null){ + input.setAddedToCommandLine(CommandLineType.valueOf(resource.getCommandLineType())); + } + input.setDataStaged(resource.isDataStaged()); return input; } http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql ---------------------------------------------------------------------- diff --git a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql index 7037508..a98fef6 100644 --- a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql +++ b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql @@ -270,6 +270,10 @@ CREATE TABLE APPLICATION_INPUT METADATA VARCHAR(255), APP_ARGUMENT VARCHAR(255), STANDARD_INPUT SMALLINT, + INPUT_ORDER INTEGER, + VALIDITY_TYPE VARCHAR(255), + COMMANDLINE_TYPE VARCHAR(255), + DATA_STAGED SMALLINT, USER_FRIENDLY_DESC VARCHAR(255), PRIMARY KEY(INTERFACE_ID,INPUT_KEY), FOREIGN KEY (INTERFACE_ID) REFERENCES APPLICATION_INTERFACE(INTERFACE_ID) ON DELETE CASCADE @@ -281,6 +285,9 @@ CREATE TABLE APPLICATION_OUTPUT OUTPUT_KEY VARCHAR(255), OUTPUT_VALUE VARCHAR(255), DATA_TYPE VARCHAR(255), + VALIDITY_TYPE VARCHAR(255), + DATA_MOVEMENT SMALLINT, + DATA_NAME_LOCATION VARCHAR(255), PRIMARY KEY(INTERFACE_ID,OUTPUT_KEY), FOREIGN KEY (INTERFACE_ID) REFERENCES APPLICATION_INTERFACE(INTERFACE_ID) ON DELETE CASCADE ); http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql ---------------------------------------------------------------------- diff --git a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql index 44d7fd8..5a4d239 100644 --- a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql +++ b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql @@ -256,6 +256,10 @@ CREATE TABLE APPLICATION_INPUT APP_ARGUMENT VARCHAR(255), STANDARD_INPUT SMALLINT, USER_FRIENDLY_DESC VARCHAR(255), + INPUT_ORDER INTEGER, + VALIDITY_TYPE VARCHAR(255), + COMMANDLINE_TYPE VARCHAR(255), + DATA_STAGED SMALLINT, PRIMARY KEY(INTERFACE_ID,INPUT_KEY), FOREIGN KEY (INTERFACE_ID) REFERENCES APPLICATION_INTERFACE(INTERFACE_ID) ON DELETE CASCADE ); @@ -266,6 +270,9 @@ CREATE TABLE APPLICATION_OUTPUT OUTPUT_KEY VARCHAR(255), OUTPUT_VALUE VARCHAR(255), DATA_TYPE VARCHAR(255), + VALIDITY_TYPE VARCHAR(255), + DATA_MOVEMENT SMALLINT, + DATA_NAME_LOCATION VARCHAR(255), PRIMARY KEY(INTERFACE_ID,OUTPUT_KEY), FOREIGN KEY (INTERFACE_ID) REFERENCES APPLICATION_INTERFACE(INTERFACE_ID) ON DELETE CASCADE ); http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/AppInterfaceTest.java ---------------------------------------------------------------------- diff --git a/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/AppInterfaceTest.java b/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/AppInterfaceTest.java index 1a1dbd3..d2e5d0c 100644 --- a/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/AppInterfaceTest.java +++ b/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/AppInterfaceTest.java @@ -47,6 +47,7 @@ import static org.junit.Assert.assertTrue; public class AppInterfaceTest { private static Initialize initialize; private static AppCatalog appcatalog; + private static int order = 1; @Before public void setUp() { @@ -169,6 +170,7 @@ public class AppInterfaceTest { input.setValue(value); input.setType(type); input.setApplicationArgument("test arg"); + input.setInputOrder(order++); return input; } http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/app-catalog/app-catalog-data/src/test/resources/appcatalog-derby.sql ---------------------------------------------------------------------- diff --git a/modules/app-catalog/app-catalog-data/src/test/resources/appcatalog-derby.sql b/modules/app-catalog/app-catalog-data/src/test/resources/appcatalog-derby.sql index 7037508..a98fef6 100644 --- a/modules/app-catalog/app-catalog-data/src/test/resources/appcatalog-derby.sql +++ b/modules/app-catalog/app-catalog-data/src/test/resources/appcatalog-derby.sql @@ -270,6 +270,10 @@ CREATE TABLE APPLICATION_INPUT METADATA VARCHAR(255), APP_ARGUMENT VARCHAR(255), STANDARD_INPUT SMALLINT, + INPUT_ORDER INTEGER, + VALIDITY_TYPE VARCHAR(255), + COMMANDLINE_TYPE VARCHAR(255), + DATA_STAGED SMALLINT, USER_FRIENDLY_DESC VARCHAR(255), PRIMARY KEY(INTERFACE_ID,INPUT_KEY), FOREIGN KEY (INTERFACE_ID) REFERENCES APPLICATION_INTERFACE(INTERFACE_ID) ON DELETE CASCADE @@ -281,6 +285,9 @@ CREATE TABLE APPLICATION_OUTPUT OUTPUT_KEY VARCHAR(255), OUTPUT_VALUE VARCHAR(255), DATA_TYPE VARCHAR(255), + VALIDITY_TYPE VARCHAR(255), + DATA_MOVEMENT SMALLINT, + DATA_NAME_LOCATION VARCHAR(255), PRIMARY KEY(INTERFACE_ID,OUTPUT_KEY), FOREIGN KEY (INTERFACE_ID) REFERENCES APPLICATION_INTERFACE(INTERFACE_ID) ON DELETE CASCADE ); http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java b/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java index f6ecc5f..9f055e9 100644 --- a/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java +++ b/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java @@ -23,8 +23,12 @@ package org.apache.airavata.gfac.local.provider.impl; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.List; import java.util.Map; +import java.util.Set; +import java.util.TreeSet; import org.apache.airavata.gfac.Constants; import org.apache.airavata.gfac.GFacException; @@ -39,6 +43,7 @@ import org.apache.airavata.gfac.local.utils.InputStreamToFileWriter; import org.apache.airavata.gfac.local.utils.InputUtils; import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription; import org.apache.airavata.model.appcatalog.appdeployment.SetEnvPaths; +import org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType; import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType; import org.apache.airavata.model.messaging.event.JobIdentifier; import org.apache.airavata.model.messaging.event.JobStatusChangeEvent; @@ -105,7 +110,8 @@ public class LocalProvider extends AbstractProvider { public void initialize(JobExecutionContext jobExecutionContext) throws GFacProviderException,GFacException { super.initialize(jobExecutionContext); - buildCommand(jobExecutionContext.getExecutablePath(), ProviderUtils.getInputParameterValues(jobExecutionContext)); + // build command with all inputs + buildCommand(); initProcessBuilder(jobExecutionContext.getApplicationContext().getApplicationDeploymentDescription()); // extra environment variables @@ -247,9 +253,36 @@ public class LocalProvider extends AbstractProvider { } - private void buildCommand(String executable, List<String> inputParameterList){ - cmdList.add(executable); - cmdList.addAll(inputParameterList); + private void buildCommand() { + cmdList.add(jobExecutionContext.getExecutablePath()); + Map<String, Object> inputParameters = jobExecutionContext.getInMessageContext().getParameters(); + + // sort the inputs first and then build the command List + Comparator<InputDataObjectType> inputOrderComparator = new Comparator<InputDataObjectType>() { + @Override + public int compare(InputDataObjectType inputDataObjectType, InputDataObjectType t1) { + return inputDataObjectType.getInputOrder() - t1.getInputOrder(); + } + }; + Set<InputDataObjectType> sortedInputSet = new TreeSet<InputDataObjectType>(inputOrderComparator); + for (Object object : inputParameters.values()) { + if (object instanceof InputDataObjectType) { + InputDataObjectType inputDOT = (InputDataObjectType) object; + sortedInputSet.add(inputDOT); + } + } + for (InputDataObjectType inputDataObjectType : sortedInputSet) { + if (inputDataObjectType.getApplicationArgument() != null + && !inputDataObjectType.getApplicationArgument().equals("")) { + cmdList.add(inputDataObjectType.getApplicationArgument()); + } + + if (inputDataObjectType.getValue() != null + && !inputDataObjectType.getValue().equals("")) { + cmdList.add(inputDataObjectType.getValue()); + } + } + } private void initProcessBuilder(ApplicationDeploymentDescription app){
