public NewPrimitive Convert(SnappedPrimitive snapped) { Contract.Requires(snapped != null); Contract.Requires(snapped.GetType() == SnappedType); Contract.Ensures(Contract.Result <NewPrimitive>() != null); return(null); }
Tuple <Term, Term[]> IPrimitiveSnapper.Reconstruct(SnappedPrimitive snappedPrimitive, Dictionary <FeatureCurve, ISet <Annotation> > curvesToAnnotations) { Contract.Requires(snappedPrimitive != null); Contract.Requires(SnappedPrimitiveType.IsAssignableFrom(snappedPrimitive.GetType())); Contract.Requires(curvesToAnnotations != null); Contract.Requires(Contract.ForAll(curvesToAnnotations, pair => pair.Value != null)); Contract.Ensures(Contract.Result <Tuple <Term, Term[]> >() != null); Contract.Ensures(Contract.Result <Tuple <Term, Term[]> >().Item1 != null); Contract.Ensures(Contract.Result <Tuple <Term, Term[]> >().Item2 != null); Contract.Ensures(Contract.ForAll(Contract.Result <Tuple <Term, Term[]> >().Item2, constraint => constraint != null)); return(null); }
public Tuple <Term, Term[]> Reconstruct(SnappedPrimitive snappedPrimitive, Dictionary <FeatureCurve, ISet <Annotation> > curvesToAnnotations) { // find appropriate type snapper var snappedPrimitiveType = snappedPrimitive.GetType(); var snapper = snappers .Where(s => s.SnappedPrimitiveType.IsAssignableFrom(snappedPrimitiveType)) .FirstOrDefault(); if (snapper == null) { throw new InvalidOperationException("Cannot find snapper that can snap primitives of type " + snappedPrimitiveType); } return(snapper.Reconstruct(snappedPrimitive, curvesToAnnotations)); }
private static Type GetKey(SnappedPrimitive source) { return(source.GetType()); }