public static void AddValueFacets <T>(IValueSemanticsProvider <T> semanticsProvider, ISpecification holder) { FacetUtils.AddFacet(semanticsProvider as IFacet); // value implies aggregated FacetUtils.AddFacet(new AggregatedFacetAlways(holder)); // ImmutableFacet, if appropriate bool immutable = semanticsProvider == null || semanticsProvider.IsImmutable; if (immutable) { FacetUtils.AddFacet(new ImmutableFacetViaValueSemantics(holder)); } // EqualByContentFacet, if appropriate bool equalByContent = semanticsProvider == null || semanticsProvider.IsEqualByContent; if (equalByContent) { FacetUtils.AddFacet(new EqualByContentFacet(holder)); } if (semanticsProvider != null) { FacetUtils.AddFacet(new EncodeableFacetUsingEncoderDecoder <T>(semanticsProvider, holder)); FacetUtils.AddFacet(new ParseableFacetUsingParser <T>(semanticsProvider, holder)); FacetUtils.AddFacet(new TitleFacetUsingParser <T>(semanticsProvider, holder)); FacetUtils.AddFacet(new TypicalLengthFacetUsingParser <T>(semanticsProvider, holder)); var fromStream = semanticsProvider as IFromStream; if (fromStream != null) { FacetUtils.AddFacet(new FromStreamFacetUsingFromStream(fromStream, holder)); } // ReSharper disable once CompareNonConstrainedGenericWithNull if (semanticsProvider.DefaultValue != null) { FacetUtils.AddFacet(new DefaultedFacetUsingDefaultsProvider <T>(semanticsProvider, holder)); } } }
public ParseableFacetUsingParser(IValueSemanticsProvider <T> parser, ISpecification holder) : base(typeof(IParseableFacet), holder) { this.parser = parser; }
public DefaultedFacetUsingDefaultsProvider(IValueSemanticsProvider <T> parser, ISpecification holder) : base(typeof(IDefaultedFacet), holder) { defaultsProvider = parser; }
public virtual void TearDown() { value = null; encodeableFacet = null; }
protected void SetValue(IValueSemanticsProvider <T> newValue) { value = newValue; encodeableFacet = new EncodeableFacetUsingEncoderDecoder <T>(newValue, null); }
public EncodeableFacetUsingEncoderDecoder(IValueSemanticsProvider <T> encoderDecoder, ISpecification holder) : base(typeof(IEncodeableFacet), holder) => this.encoderDecoder = encoderDecoder;
public TypicalLengthFacetUsingParser(IValueSemanticsProvider <T> parser, ISpecification holder) : base(typeof(ITypicalLengthFacet), holder) { this.parser = parser; }