public static EDocumentInvalidation CanInvalidateDocument(this IMultiplicityChange multiplicityChange) { // NL ol ou NU if (multiplicityChange.NewLower <= multiplicityChange.OldLower && multiplicityChange.OldUpper <= multiplicityChange.NewUpper) { return(EDocumentInvalidation.None); } // ol NL ou NU (some items may need to be genereated) if (multiplicityChange.OldLower <= multiplicityChange.NewLower && multiplicityChange.OldUpper <= multiplicityChange.NewUpper) { return(EDocumentInvalidation.Possible); } // ol NL NU ou (items may need to be add and/or deleted) if (multiplicityChange.OldLower <= multiplicityChange.NewLower && multiplicityChange.NewUpper <= multiplicityChange.OldUpper) { return(EDocumentInvalidation.Possible); } // NL ol NU ou (items may need to be deleted) if (multiplicityChange.NewLower <= multiplicityChange.OldLower && multiplicityChange.NewUpper <= multiplicityChange.OldUpper) { return(EDocumentInvalidation.Possible); } // ol ou NL NU (items must be generated) // NL NU ol ou (items must be removed) return(EDocumentInvalidation.Certain); }
public static bool CanRequireDeleting(this IMultiplicityChange multiplicityChange) { if (multiplicityChange.NewUpper.IsInfinity && multiplicityChange.OldUpper.IsInfinity) { return(false); } return(multiplicityChange.NewUpper < multiplicityChange.OldUpper); }
public static bool WasOptionalIsMandatory(this IMultiplicityChange multiplicityChange) { return(multiplicityChange.OldLower == 0 && multiplicityChange.NewLower == 1); }
public static bool CanRequireGenerating(this IMultiplicityChange multiplicityChange) { // ol NL ou NU (some items may need to be genereated) return(multiplicityChange.OldLower < multiplicityChange.NewLower); }