/// <summary> /// Duplicates a source Variable into its target /// </summary> /// <param name="source"></param> /// <param name="target"></param> public static void DuplicateVariable(Generated.Variable source, Generated.Variable target) { if ( source != null && target != null ) { DuplicateReqRelated (source, target); target.setTypeName(source.getTypeName()); target.setDefaultValue(source.getDefaultValue()); target.setVariableMode(source.getVariableMode()); target.setWidth(source.getWidth()); target.setHeight(source.getHeight()); target.setX(source.getX()); target.setY(source.getY()); target.setHidden(source.getHidden()); target.setPinned(source.getPinned()); } }
/// <summary> /// Duplicates a source State into its target /// </summary> /// <param name="source"></param> /// <param name="target"></param> public static void DuplicateState(Generated.State source, Generated.State target) { if ( source != null && target != null ) { DuplicateReqRelated (source, target); target.setWidth(source.getWidth()); target.setHeight(source.getHeight()); target.setX(source.getX()); target.setY(source.getY()); target.setPinned(source.getPinned()); } }
/// <summary> /// Duplicates a source Type into its target /// </summary> /// <param name="source"></param> /// <param name="target"></param> public static void DuplicateType(Generated.Type source, Generated.Type target) { if ( source != null && target != null ) { DuplicateReqRelated (source, target); target.setDefault(source.getDefault()); target.setWidth(source.getWidth()); target.setHeight(source.getHeight()); target.setX(source.getX()); target.setY(source.getY()); target.setHidden(source.getHidden()); target.setPinned(source.getPinned()); } }
/// <summary> /// Duplicates a source RequirementSet into its target /// </summary> /// <param name="source"></param> /// <param name="target"></param> public static void DuplicateRequirementSet(Generated.RequirementSet source, Generated.RequirementSet target) { if ( source != null && target != null ) { DuplicateNamable (source, target); target.setWidth(source.getWidth()); target.setHeight(source.getHeight()); target.setX(source.getX()); target.setY(source.getY()); target.setRecursiveSelection(source.getRecursiveSelection()); target.setObsoleteRequirementsStatus(source.getObsoleteRequirementsStatus()); target.setDefault(source.getDefault()); target.setPinned(source.getPinned()); } }
/// <summary> /// Duplicates a source Rule into its target /// </summary> /// <param name="source"></param> /// <param name="target"></param> public static void DuplicateRule(Generated.Rule source, Generated.Rule target) { if ( source != null && target != null ) { DuplicateReqRelated (source, target); target.setPriority(source.getPriority()); target.setWidth(source.getWidth()); target.setHeight(source.getHeight()); target.setX(source.getX()); target.setY(source.getY()); target.setHidden(source.getHidden()); target.setPinned(source.getPinned()); } }
/// <summary> /// Compares two Variable and annotates the differences on the first one /// </summary> /// <param name="obj"></param> /// <param name="other"></param> public static void compareVariable(Generated.Variable obj, Generated.Variable other, VersionDiff diff) { if ( other == null ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aAdd, "", "", obj.Name ) ); return; } compareReqRelated (obj, other, diff); if ( !CompareUtil.canonicalStringEquality(obj.getTypeName(), other.getTypeName()) ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "TypeName", other.getTypeName(), obj.getTypeName()) ); } if ( !CompareUtil.canonicalStringEquality(obj.getDefaultValue(), other.getDefaultValue()) ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "DefaultValue", other.getDefaultValue(), obj.getDefaultValue()) ); } if ( obj.getVariableMode() != other.getVariableMode() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "VariableMode", other.getVariableMode().ToString(), obj.getVariableMode().ToString()) ); } if ( obj.allSubVariables() != null ) { if ( other.allSubVariables() != null ) { foreach ( Generated.Variable subElement in obj.allSubVariables() ) { bool compared = false; foreach ( Generated.Variable otherElement in other.allSubVariables() ) { if ( subElement.Guid == otherElement.Guid ) { compareVariable ( subElement, otherElement, diff ); compared = true; break; } } if ( !compared ) { diff.appendChanges ( new Diff(subElement, HistoricalData.Generated.acceptor.ChangeOperationEnum.aAdd, "SubVariables", "", subElement.Name ) ); } } foreach ( Generated.Variable otherElement in other.allSubVariables() ) { bool found = false; foreach ( Generated.Variable subElement in obj.allSubVariables() ) { if ( subElement.Guid == otherElement.Guid ) { found = true; break; } } if ( !found ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aRemove , "SubVariables", otherElement.Name) ); } } } else { foreach ( Generated.Variable subElement in obj.allSubVariables() ) { diff.appendChanges ( new Diff(subElement, HistoricalData.Generated.acceptor.ChangeOperationEnum.aAdd, "SubVariables", "", subElement.Name ) ); } } } else { if ( other.allSubVariables() != null ) { foreach ( Generated.Variable otherElement in other.allSubVariables() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aRemove , "SubVariables", otherElement.Name) ); } } } if ( obj.getWidth() != other.getWidth() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "Width", other.getWidth().ToString(), obj.getWidth().ToString()) ); } if ( obj.getHeight() != other.getHeight() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "Height", other.getHeight().ToString(), obj.getHeight().ToString()) ); } if ( obj.getX() != other.getX() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "X", other.getX().ToString(), obj.getX().ToString()) ); } if ( obj.getY() != other.getY() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "Y", other.getY().ToString(), obj.getY().ToString()) ); } if ( obj.getHidden() != other.getHidden() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "Hidden", other.getHidden().ToString(), obj.getHidden().ToString()) ); } if ( obj.getPinned() != other.getPinned() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "Pinned", other.getPinned().ToString(), obj.getPinned().ToString()) ); } }
/// <summary> /// Compares two Type and annotates the differences on the first one /// </summary> /// <param name="obj"></param> /// <param name="other"></param> public static void compareType(Generated.Type obj, Generated.Type other, VersionDiff diff) { if ( other == null ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aAdd, "", "", obj.Name ) ); return; } compareReqRelated (obj, other, diff); if ( !CompareUtil.canonicalStringEquality(obj.getDefault(), other.getDefault()) ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "Default", other.getDefault(), obj.getDefault()) ); } if ( obj.getWidth() != other.getWidth() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "Width", other.getWidth().ToString(), obj.getWidth().ToString()) ); } if ( obj.getHeight() != other.getHeight() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "Height", other.getHeight().ToString(), obj.getHeight().ToString()) ); } if ( obj.getX() != other.getX() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "X", other.getX().ToString(), obj.getX().ToString()) ); } if ( obj.getY() != other.getY() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "Y", other.getY().ToString(), obj.getY().ToString()) ); } if ( obj.getHidden() != other.getHidden() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "Hidden", other.getHidden().ToString(), obj.getHidden().ToString()) ); } if ( obj.getPinned() != other.getPinned() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "Pinned", other.getPinned().ToString(), obj.getPinned().ToString()) ); } }
/// <summary> /// Compares two State and annotates the differences on the first one /// </summary> /// <param name="obj"></param> /// <param name="other"></param> public static void compareState(Generated.State obj, Generated.State other, VersionDiff diff) { if ( other == null ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aAdd, "", "", obj.Name ) ); return; } compareReqRelated (obj, other, diff); if ( obj.getStateMachine() == null ) { if ( other.getStateMachine() != null ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "StateMachine", "" ) ); } } else { compareStateMachine ( obj.getStateMachine(), other.getStateMachine(), diff ); } if ( obj.getWidth() != other.getWidth() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "Width", other.getWidth().ToString(), obj.getWidth().ToString()) ); } if ( obj.getHeight() != other.getHeight() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "Height", other.getHeight().ToString(), obj.getHeight().ToString()) ); } if ( obj.getX() != other.getX() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "X", other.getX().ToString(), obj.getX().ToString()) ); } if ( obj.getY() != other.getY() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "Y", other.getY().ToString(), obj.getY().ToString()) ); } if ( obj.getPinned() != other.getPinned() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "Pinned", other.getPinned().ToString(), obj.getPinned().ToString()) ); } if ( obj.getEnterAction() == null ) { if ( other.getEnterAction() != null ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "EnterAction", "" ) ); } } else { compareRule ( obj.getEnterAction(), other.getEnterAction(), diff ); } if ( obj.getLeaveAction() == null ) { if ( other.getLeaveAction() != null ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "LeaveAction", "" ) ); } } else { compareRule ( obj.getLeaveAction(), other.getLeaveAction(), diff ); } }
/// <summary> /// Compares two Rule and annotates the differences on the first one /// </summary> /// <param name="obj"></param> /// <param name="other"></param> public static void compareRule(Generated.Rule obj, Generated.Rule other, VersionDiff diff) { if ( other == null ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aAdd, "", "", obj.Name ) ); return; } compareReqRelated (obj, other, diff); if ( obj.getPriority() != other.getPriority() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "Priority", other.getPriority().ToString(), obj.getPriority().ToString()) ); } if ( obj.allConditions() != null ) { if ( other.allConditions() != null ) { foreach ( Generated.RuleCondition subElement in obj.allConditions() ) { bool compared = false; foreach ( Generated.RuleCondition otherElement in other.allConditions() ) { if ( subElement.Guid == otherElement.Guid ) { compareRuleCondition ( subElement, otherElement, diff ); compared = true; break; } } if ( !compared ) { diff.appendChanges ( new Diff(subElement, HistoricalData.Generated.acceptor.ChangeOperationEnum.aAdd, "Conditions", "", subElement.Name ) ); } } foreach ( Generated.RuleCondition otherElement in other.allConditions() ) { bool found = false; foreach ( Generated.RuleCondition subElement in obj.allConditions() ) { if ( subElement.Guid == otherElement.Guid ) { found = true; break; } } if ( !found ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aRemove , "Conditions", otherElement.Name) ); } } } else { foreach ( Generated.RuleCondition subElement in obj.allConditions() ) { diff.appendChanges ( new Diff(subElement, HistoricalData.Generated.acceptor.ChangeOperationEnum.aAdd, "Conditions", "", subElement.Name ) ); } } } else { if ( other.allConditions() != null ) { foreach ( Generated.RuleCondition otherElement in other.allConditions() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aRemove , "Conditions", otherElement.Name) ); } } } if ( obj.getWidth() != other.getWidth() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "Width", other.getWidth().ToString(), obj.getWidth().ToString()) ); } if ( obj.getHeight() != other.getHeight() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "Height", other.getHeight().ToString(), obj.getHeight().ToString()) ); } if ( obj.getX() != other.getX() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "X", other.getX().ToString(), obj.getX().ToString()) ); } if ( obj.getY() != other.getY() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "Y", other.getY().ToString(), obj.getY().ToString()) ); } if ( obj.getHidden() != other.getHidden() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "Hidden", other.getHidden().ToString(), obj.getHidden().ToString()) ); } if ( obj.getPinned() != other.getPinned() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "Pinned", other.getPinned().ToString(), obj.getPinned().ToString()) ); } }
/// <summary> /// Compares two RequirementSet and annotates the differences on the first one /// </summary> /// <param name="obj"></param> /// <param name="other"></param> public static void compareRequirementSet(Generated.RequirementSet obj, Generated.RequirementSet other, VersionDiff diff) { if ( other == null ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aAdd, "", "", obj.Name ) ); return; } compareNamable (obj, other, diff); if ( obj.allDependancies() != null ) { if ( other.allDependancies() != null ) { foreach ( Generated.RequirementSetDependancy subElement in obj.allDependancies() ) { bool compared = false; foreach ( Generated.RequirementSetDependancy otherElement in other.allDependancies() ) { if ( subElement.Guid == otherElement.Guid ) { compareRequirementSetDependancy ( subElement, otherElement, diff ); compared = true; break; } } if ( !compared ) { diff.appendChanges ( new Diff(subElement, HistoricalData.Generated.acceptor.ChangeOperationEnum.aAdd, "Dependancies", "", subElement.Name ) ); } } foreach ( Generated.RequirementSetDependancy otherElement in other.allDependancies() ) { bool found = false; foreach ( Generated.RequirementSetDependancy subElement in obj.allDependancies() ) { if ( subElement.Guid == otherElement.Guid ) { found = true; break; } } if ( !found ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aRemove , "Dependancies", otherElement.Name) ); } } } else { foreach ( Generated.RequirementSetDependancy subElement in obj.allDependancies() ) { diff.appendChanges ( new Diff(subElement, HistoricalData.Generated.acceptor.ChangeOperationEnum.aAdd, "Dependancies", "", subElement.Name ) ); } } } else { if ( other.allDependancies() != null ) { foreach ( Generated.RequirementSetDependancy otherElement in other.allDependancies() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aRemove , "Dependancies", otherElement.Name) ); } } } if ( obj.allSubSets() != null ) { if ( other.allSubSets() != null ) { foreach ( Generated.RequirementSet subElement in obj.allSubSets() ) { bool compared = false; foreach ( Generated.RequirementSet otherElement in other.allSubSets() ) { if ( subElement.Guid == otherElement.Guid ) { compareRequirementSet ( subElement, otherElement, diff ); compared = true; break; } } if ( !compared ) { diff.appendChanges ( new Diff(subElement, HistoricalData.Generated.acceptor.ChangeOperationEnum.aAdd, "SubSets", "", subElement.Name ) ); } } foreach ( Generated.RequirementSet otherElement in other.allSubSets() ) { bool found = false; foreach ( Generated.RequirementSet subElement in obj.allSubSets() ) { if ( subElement.Guid == otherElement.Guid ) { found = true; break; } } if ( !found ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aRemove , "SubSets", otherElement.Name) ); } } } else { foreach ( Generated.RequirementSet subElement in obj.allSubSets() ) { diff.appendChanges ( new Diff(subElement, HistoricalData.Generated.acceptor.ChangeOperationEnum.aAdd, "SubSets", "", subElement.Name ) ); } } } else { if ( other.allSubSets() != null ) { foreach ( Generated.RequirementSet otherElement in other.allSubSets() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aRemove , "SubSets", otherElement.Name) ); } } } if ( obj.getWidth() != other.getWidth() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "Width", other.getWidth().ToString(), obj.getWidth().ToString()) ); } if ( obj.getHeight() != other.getHeight() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "Height", other.getHeight().ToString(), obj.getHeight().ToString()) ); } if ( obj.getX() != other.getX() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "X", other.getX().ToString(), obj.getX().ToString()) ); } if ( obj.getY() != other.getY() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "Y", other.getY().ToString(), obj.getY().ToString()) ); } if ( obj.getRecursiveSelection() != other.getRecursiveSelection() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "RecursiveSelection", other.getRecursiveSelection().ToString(), obj.getRecursiveSelection().ToString()) ); } if ( obj.getObsoleteRequirementsStatus() != other.getObsoleteRequirementsStatus() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "ObsoleteRequirementsStatus", other.getObsoleteRequirementsStatus().ToString(), obj.getObsoleteRequirementsStatus().ToString()) ); } if ( obj.getDefault() != other.getDefault() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "Default", other.getDefault().ToString(), obj.getDefault().ToString()) ); } if ( obj.getPinned() != other.getPinned() ) { diff.appendChanges ( new Diff(obj, HistoricalData.Generated.acceptor.ChangeOperationEnum.aChange, "Pinned", other.getPinned().ToString(), obj.getPinned().ToString()) ); } }