Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 public static bool CanRequireDeleting(this IMultiplicityChange multiplicityChange)
 {
     if (multiplicityChange.NewUpper.IsInfinity && multiplicityChange.OldUpper.IsInfinity)
     {
         return(false);
     }
     return(multiplicityChange.NewUpper < multiplicityChange.OldUpper);
 }
Ejemplo n.º 3
0
 public static bool WasOptionalIsMandatory(this IMultiplicityChange multiplicityChange)
 {
     return(multiplicityChange.OldLower == 0 && multiplicityChange.NewLower == 1);
 }
Ejemplo n.º 4
0
 public static bool CanRequireGenerating(this IMultiplicityChange multiplicityChange)
 {
     // ol NL ou NU (some items may need to be genereated)
     return(multiplicityChange.OldLower < multiplicityChange.NewLower);
 }