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()); }
public string GetIconName(INakedObjectAdapter forObjectAdapter) => InnerSpec.GetIconName(forObjectAdapter, metamodelManager.Metamodel);
public override int GetHashCode() => InnerSpec != null?InnerSpec.GetHashCode() : 0;
public bool ContainsFacet(Type facetType) { return(InnerSpec.ContainsFacet(facetType)); }
/// <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);
public string GetIconName(INakedObject forObject) { return(InnerSpec.GetIconName(forObject, metamodelManager.Metamodel)); }
public override int GetHashCode() { return(InnerSpec != null ? InnerSpec.GetHashCode() : 0); }
public IEnumerable <IFacet> GetFacets() { return(InnerSpec.GetFacets()); }
public T GetFacet <T>() where T : IFacet { return(InnerSpec.GetFacet <T>()); }
public IFacet GetFacet(Type type) { return(InnerSpec.GetFacet(type)); }
public bool ContainsFacet <T>() where T : IFacet { return(InnerSpec.ContainsFacet <T>()); }
/// <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)); }