Beispiel #1
0
            public bool TryGetDeserializer(Type entityType, out Delegate deserializer)
            {
                Delegate cachedDeserializer;
                bool     isCached = DeserializerCache.TryGetValue(entityType, out cachedDeserializer);

                deserializer = cachedDeserializer;

                return(isCached);
            }
Beispiel #2
0
            public bool TryGetDeserializer <T>(out MapEntityImplementation <T> deserializer)
            {
                Delegate cachedDeserializer;
                bool     isCached = DeserializerCache.TryGetValue(typeof(T), out cachedDeserializer);

                deserializer = (MapEntityImplementation <T>)cachedDeserializer;

                return(isCached);
            }
Beispiel #3
0
 public TFact Deserialize <TFact>(FactGraph graph, FactReference reference)
 {
     lock (this)
     {
         var emitter = new Emitter(graph, deserializerCache);
         var fact    = emitter.Deserialize <TFact>(reference);
         deserializerCache = emitter.DeserializerCache;
         return(fact);
     }
 }
Beispiel #4
0
 public TFact Deserialize <TFact>(FactGraph graph, Element element)
 {
     if (element is SimpleElement simple)
     {
         lock (this)
         {
             var emitter = new Emitter(graph, deserializerCache);
             var fact    = emitter.Deserialize <TFact>(simple.FactReference);
             deserializerCache = emitter.DeserializerCache;
             return(fact);
         }
     }
     else
     {
         throw new NotImplementedException();
     }
 }
Beispiel #5
0
 public ImmutableList <ProductAnchorProjection> DeserializeProductsFromGraph(
     FactGraph graph,
     Projection projection,
     ImmutableList <Product> products,
     Type type,
     Product anchor,
     string collectionName,
     IWatchContext?watchContext)
 {
     lock (this)
     {
         var emitter = new Emitter(graph, deserializerCache, watchContext);
         ImmutableList <ProductAnchorProjection> results = Deserializer.Deserialize(emitter, projection, type, products, anchor, collectionName);
         deserializerCache = emitter.DeserializerCache;
         return(results);
     }
 }
Beispiel #6
0
 public void CacheDeserializer(Type entityType, Delegate deserializer)
 {
     DeserializerCache.Add(entityType, deserializer);
 }
Beispiel #7
0
 public void CacheDeserializer <T>(MapEntityImplementation <T> deserializer)
 {
     DeserializerCache.Add(typeof(T), deserializer);
 }