Example #1
0
 private static IEnumerable <Facet> OverrideFacetValues <T>(IEnumerable <T> facetThings,
                                                            Func <T, FacetDescription> getDescription,
                                                            Func <T, Facet> getFacet,
                                                            FacetValues values)
 {
     // yield all the non custom values
     foreach (var thing in facetThings)
     {
         FacetDescription description = getDescription(thing);
         Facet            facet;
         if (!description.IsConstant && values.TryGetFacet(description, out facet))
         {
             yield return(facet);
         }
         else
         {
             yield return(getFacet(thing));
         }
     }
 }
Example #2
0
 internal TypeUsage ShallowCopy(FacetValues facetValues)
 {
     return(TypeUsage.Create(_edmType, OverrideFacetValues(Facets, facetValues)));
 }
Example #3
0
 /// <summary>
 /// Factory method for creating a TypeUsage with specified EdmType
 /// </summary>
 /// <param name="edmType">EdmType for which to create a type usage</param>
 /// <returns>new TypeUsage instance with default facet values</returns>
 internal static TypeUsage Create(EdmType edmType, FacetValues values)
 {
     return(new TypeUsage(edmType,
                          GetDefaultFacetDescriptionsAndOverrideFacetValues(edmType, values)));
 }
Example #4
0
 private static IEnumerable <Facet> OverrideFacetValues(IEnumerable <Facet> facets, FacetValues values)
 {
     return(OverrideFacetValues(facets,
                                f => f.Description,
                                f => f,
                                values));
 }
Example #5
0
 private static IEnumerable <Facet> GetDefaultFacetDescriptionsAndOverrideFacetValues(EdmType type, FacetValues values)
 {
     return(OverrideFacetValues(type.GetAssociatedFacetDescriptions(),
                                fd => fd,
                                fd => fd.DefaultValueFacet,
                                values));
 }
Example #6
0
 private static TypeUsage CreateType(PrimitiveTypeKind type, FacetValues facets)
 {
     PrimitiveType primitiveType = EdmProviderManifest.Instance.GetPrimitiveType(type);
     TypeUsage typeUsage = TypeUsage.Create(primitiveType, facets);
     return typeUsage;
 }