Ejemplo n.º 1
0
        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;
 }
Ejemplo n.º 4
0
 public virtual void TearDown()
 {
     value           = null;
     encodeableFacet = null;
 }
Ejemplo n.º 5
0
 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;
 }