Exemplo n.º 1
0
 protected override PersistableType GetPersistable()
 {
     if (InnerSpec.ContainsFacet <INotPersistedFacet>())
     {
         return(PersistableType.Transient);
     }
     if (InnerSpec.ContainsFacet <IProgramPersistableOnlyFacet>())
     {
         return(PersistableType.ProgramPersistable);
     }
     return(PersistableType.UserPersistable);
 }
        public IContextualMapper <TTarget, TSource, TContext> Create()
        {
            var targetParam  = Expression.Parameter(typeof(TTarget));
            var sourceParam  = Expression.Parameter(typeof(TSource));
            var contextParam = Expression.Parameter(typeof(TContext));

            var mappingLambda = CreateMappingLambda(targetParam, sourceParam, contextParam);

            var constructor = GetConstructor();
            var innerMapper = InnerSpec.GetMapperFunc();

            return(InnerSpec.Assembler.Assemble(constructor,
                                                (tgt, src, ctx) => mappingLambda(innerMapper(tgt, src), src, ctx)));
        }
        private Func <TSource, TContext, TTarget> GetConstructor()
        {
            if (null == this.Constructor)
            {
                var ctor = InnerSpec.GetConstructor();
                return((src, ctx) => ctor(src));
            }

            var ctxParam = Expression.Parameter(typeof(TContext));
            var srcParam = Expression.Parameter(typeof(TSource));

            var invokeExpr = Expression.Invoke(Constructor, ctxParam);

            return(Expression.Lambda <Func <TSource, TContext, TTarget> >(invokeExpr, srcParam, ctxParam).Compile());
        }
Exemplo n.º 4
0
 public string GetIconName(INakedObjectAdapter forObjectAdapter) => InnerSpec.GetIconName(forObjectAdapter, metamodelManager.Metamodel);
Exemplo n.º 5
0
 public override int GetHashCode() => InnerSpec != null?InnerSpec.GetHashCode() : 0;
Exemplo n.º 6
0
 public bool ContainsFacet(Type facetType)
 {
     return(InnerSpec.ContainsFacet(facetType));
 }
Exemplo n.º 7
0
 /// <summary>
 ///     Determines if this class represents the same class, or a subclass, of the specified class.
 /// </summary>
 public bool IsOfType(ITypeSpec spec) => InnerSpec.IsOfType(spec.InnerSpec);
Exemplo n.º 8
0
 public string GetIconName(INakedObject forObject)
 {
     return(InnerSpec.GetIconName(forObject, metamodelManager.Metamodel));
 }
Exemplo n.º 9
0
 public override int GetHashCode()
 {
     return(InnerSpec != null ? InnerSpec.GetHashCode() : 0);
 }
Exemplo n.º 10
0
 public IEnumerable <IFacet> GetFacets()
 {
     return(InnerSpec.GetFacets());
 }
Exemplo n.º 11
0
 public T GetFacet <T>() where T : IFacet
 {
     return(InnerSpec.GetFacet <T>());
 }
Exemplo n.º 12
0
 public IFacet GetFacet(Type type)
 {
     return(InnerSpec.GetFacet(type));
 }
Exemplo n.º 13
0
 public bool ContainsFacet <T>() where T : IFacet
 {
     return(InnerSpec.ContainsFacet <T>());
 }
Exemplo n.º 14
0
 /// <summary>
 ///     Determines if this class represents the same class, or a subclass, of the specified class.
 /// </summary>
 public bool IsOfType(ITypeSpec spec)
 {
     return(InnerSpec.IsOfType(spec.InnerSpec));
 }