///-------------------------------------------------------------------------------- /// <summary>This property returns a copy of the forward engineering data for the solution.</summary> ///-------------------------------------------------------------------------------- public SpecificationSource GetForwardInstance(Solution forwardSolution) { bool isCustomized = false; SpecificationSource forwardItem = new SpecificationSource(); if (ForwardInstance != null) { forwardItem.TransformDataFromObject(ForwardInstance, null, false); isCustomized = true; } else if (IsAutoUpdated == false) { forwardItem.TransformDataFromObject(this, null, false); isCustomized = true; } else { forwardItem.SpecificationSourceID = SpecificationSourceID; } if (isCustomized == false) { return(null); } forwardItem.SpecSourceName = DefaultSourceName; if (forwardSolution.ReferencedModelIDs.Find("ItemName", forwardItem.SpecSourceName) == null) { forwardSolution.ReferencedModelIDs.Add(CreateIDReference()); } #region protected #endregion protected return(forwardItem); }
///-------------------------------------------------------------------------------- /// <summary>This method assigns a value to a property, and updates corresponding /// forward and reverse engineering data.</summary> /// /// <param name="propertyName">The property name.</param> /// <param name="propertyValue">The property value.</param> ///-------------------------------------------------------------------------------- public virtual bool AssignProperty(string propertyName, object propertyValue) { if (this.SetPropertyValue(propertyName, propertyValue) == true) { if (ReverseInstance == null) { ReverseInstance = new SpecificationSource(); ReverseInstance.TransformDataFromObject(this, null, false); } else { ReverseInstance.SetPropertyValue(propertyName, propertyValue); } if (ForwardInstance != null) { this.TransformDataFromObject(ForwardInstance, null, false, true); } } else { return(false); } #region protected #endregion protected return(true); }
///-------------------------------------------------------------------------------- /// <summary>This method determines whether or not any metadata is /// different between the input instance and the current instance.</summary> /// /// <param name="inputSpecificationSource">The specificationsource to compare metadata.</param> ///-------------------------------------------------------------------------------- public bool IsIdenticalMetadata(SpecificationSource inputSpecificationSource) { if (SolutionID.GetGuid() != inputSpecificationSource.SolutionID.GetGuid()) { return(false); } if (TemplatePath.GetString() != inputSpecificationSource.TemplatePath.GetString()) { return(false); } if (Order.GetInt() != inputSpecificationSource.Order.GetInt()) { return(false); } if (IsAutoUpdated.GetBool() != inputSpecificationSource.IsAutoUpdated.GetBool()) { return(false); } if (Description.GetString() != inputSpecificationSource.Description.GetString()) { return(false); } #region protected #endregion protected return(true); }
///-------------------------------------------------------------------------------- /// <summary>This method copies changed metadata between the input /// instance and the current instance.</summary> /// /// <param name="inputSpecificationSource">The specificationsource to get metadata.</param> ///-------------------------------------------------------------------------------- public void CopyChangedMetadata(SpecificationSource inputSpecificationSource) { SolutionID = inputSpecificationSource.SolutionID; TemplatePath = inputSpecificationSource.TemplatePath; Order = inputSpecificationSource.Order; IsAutoUpdated = inputSpecificationSource.IsAutoUpdated; Description = inputSpecificationSource.Description; #region protected #endregion protected }
///-------------------------------------------------------------------------------- /// <summary>This method adds a tag to TagList.</summary> ///-------------------------------------------------------------------------------- public override void AddTag(string tagName) { if (ReverseInstance == null && IsAutoUpdated == true) { ReverseInstance = new SpecificationSource(); ReverseInstance.TransformDataFromObject(this, null, false); IsAutoUpdated = false; } base.AddTag(tagName); if (ForwardInstance == null) { ForwardInstance = new SpecificationSource(); ForwardInstance.SpecificationSourceID = SpecificationSourceID; } if (ForwardInstance.TagList.Find(t => t.TagName == tagName) == null) { ForwardInstance.TagList.Add(new Tag(Guid.NewGuid(), tagName)); } }
///-------------------------------------------------------------------------------- /// <summary>This method determines whether the input instance metadata is /// effectively empty.</summary> /// /// <param name="inputSpecificationSource">The specificationsource to compare metadata.</param> ///-------------------------------------------------------------------------------- public bool IsEmptyMetadata(SpecificationSource inputSpecificationSource) { if (inputSpecificationSource == null) { return(true); } if (inputSpecificationSource.TagList.Count > 0) { return(false); } if (SolutionID != inputSpecificationSource.SolutionID) { return(false); } if (!String.IsNullOrEmpty(inputSpecificationSource.TemplatePath)) { return(false); } if (Order != DefaultValue.Int) { return(false); } if (IsAutoUpdated != inputSpecificationSource.IsAutoUpdated) { return(false); } if (!String.IsNullOrEmpty(inputSpecificationSource.Description)) { return(false); } #region protected #endregion protected return(true); }