System\Data\Services\Parsing\FunctionDescription.cs (9)
273new FunctionDescription(FunctionNameIsOf, new Type[] { typeof(ResourceType) }, FunctionDescription.UnaryIsOfResourceType),
274new FunctionDescription(FunctionNameIsOf, new Type[] { typeof(object), typeof(ResourceType) }, FunctionDescription.BinaryIsOfResourceType),
281System.Data.Services.Providers.ResourceType[] primitiveTypes = WebUtil.GetPrimitiveTypes();
296castSignatures.Add(new FunctionDescription(FunctionNameCast, new Type[] { typeof(ResourceType) }, FunctionDescription.UnaryCastResourceType));
297castSignatures.Add(new FunctionDescription(FunctionNameCast, new Type[] { typeof(object), typeof(ResourceType) }, FunctionDescription.BinaryCastResourceType));
349Debug.Assert(((ConstantExpression)arguments[0]).Type == typeof(ResourceType), "Constant expression type should be ResourceType");
362Debug.Assert(((ConstantExpression)arguments[1]).Type == typeof(ResourceType), "Constant expression type should be ResourceType");
415Debug.Assert(((ConstantExpression)arguments[0]).Type == typeof(ResourceType), "Constant expression type should be ResourceType");
428Debug.Assert(((ConstantExpression)arguments[1]).Type == typeof(ResourceType), "Constant expression type should be ResourceType");
System\Data\Services\Parsing\RequestQueryParser.cs (9)
75internal static IQueryable Where(IDataService service, ResourceSetWrapper setForIt, ResourceType typeForIt, IQueryable source, string predicate)
99private static LambdaExpression ParseLambdaForWhere(IDataService service, ResourceSetWrapper setForIt, ResourceType typeForIt, Type queryElementType, string expression)
191private readonly ResourceType typeForIt;
221internal ExpressionParser(IDataService service, ResourceSetWrapper setForIt, ResourceType typeForIt, ParameterExpression parameterForIt, string expression)
2105ResourceType resourceType = this.currentSegmentInfo.ResourceType;
2492if (ce.Type == typeof(string) && (target == typeof(Type) || target == typeof(ResourceType)))
2496ResourceType resourceType = WebUtil.TryResolveResourceType(this.provider, text);
2673public SegmentTypeInfo(ResourceType resourceType, ResourceSetWrapper resourceSet, bool isCollection)
2681public ResourceType ResourceType
System\Data\Services\Providers\BaseServiceProvider.cs (45)
114public IEnumerable<ResourceType> Types
186private Dictionary<Type, ResourceType> TypeCache
193private Dictionary<ResourceType, List<ResourceType>> ChildTypesCache
237public abstract ResourceAssociationSet GetResourceAssociationSet(ResourceSet resourceSet, ResourceType resourceType, ResourceProperty resourceProperty);
296/// <summary>Gets the <see cref="ResourceType"/> for the specified <paramref name="resource"/>.</summary>
297/// <param name="resource">Instance to extract a <see cref="ResourceType"/> from.</param>
298/// <returns>The <see cref="ResourceType"/> that describes this <paramref name="resource"/> in this provider.</returns>
299public ResourceType GetResourceType(object resource)
371/// A collection of resource types (<see cref="ResourceType"/>) derived from the specified <paramref name="resourceType"/>
374public IEnumerable<ResourceType> GetDerivedTypes(ResourceType resourceType)
379List<ResourceType> childTypes = this.ChildTypesCache[resourceType];
382foreach (ResourceType childType in childTypes)
386foreach (ResourceType descendantType in this.GetDerivedTypes(childType))
399public bool HasDerivedTypes(ResourceType resourceType)
432public bool TryResolveResourceType(string name, out ResourceType resourceType)
437foreach (ResourceType t in this.TypeCache.Values)
545foreach (ResourceType resourceType in this.Types)
581protected static bool TryGetType(IDictionary<Type, ResourceType> knownTypes, Type type, out ResourceType resourceType)
586resourceType = ResourceType.GetPrimitiveResourceType(type);
620protected ResourceType GetSingleResource(object resource)
622ResourceType resourceType = this.ProviderWrapper.GetResourceType(resource);
640IDictionary<Type, ResourceType> knownTypes,
641IDictionary<ResourceType, List<ResourceType>> childTypes,
651protected abstract void PopulateMetadataForUserSpecifiedTypes(IEnumerable<Type> userSpecifiedTypes, IDictionary<Type, ResourceType> knownTypes, IDictionary<ResourceType, List<ResourceType>> childTypes, IEnumerable<ResourceSet> entitySets);
661protected abstract ResourceType PopulateMetadataForType(Type type, IDictionary<Type, ResourceType> knownTypes, IDictionary<ResourceType, List<ResourceType>> childTypes, IEnumerable<ResourceSet> entitySets);
668protected virtual ResourceType ResolveNonPrimitiveType(Type type)
670ResourceType resourceType;
729ResourceType resourceType = null;
745resourceType = ResourceType.GetPrimitiveResourceType(resultType);
774resourceType = ResourceType.GetPrimitiveResourceType(resultType);
810ResourceType parameterType = ResourceType.GetPrimitiveResourceType(parameterInfo.ParameterType);
848private ResourceType GetNonPrimitiveType(Type type)
853ResourceType resourceType = this.ResolveNonPrimitiveType(type);
860resourceType = ResourceType.GetPrimitiveResourceType(elementType);
878private bool TryFindAnyContainerForType(ResourceType type, out ResourceSet container)
System\Data\Services\Providers\DataServiceProviderWrapper.cs (33)
206public IEnumerable<ResourceType> Types
215foreach (ResourceType resourceType in types)
227ResourceType type = this.ValidateResourceType(resourceType);
333private Dictionary<string, ResourceType> VisibleTypeCache
417/// <summary>Gets the <see cref="ResourceType"/> for the specified <paramref name="instance"/>.</summary>
418/// <param name="instance">Instance to extract a <see cref="ResourceType"/> from.</param>
419/// <returns>The <see cref="ResourceType"/> that describes this <paramref name="instance"/> in this provider.</returns>
420public ResourceType GetResourceType(object instance)
433public object GetPropertyValue(object target, ResourceProperty resourceProperty, ResourceType resourceType)
542public ResourceAssociationSet GetResourceAssociationSet(ResourceSetWrapper resourceSet, ResourceType resourceType, ResourceProperty resourceProperty)
571ResourceType relatedType = this.ValidateResourceType(relatedEnd.ResourceType);
607public ResourceType TryResolveResourceType(string name)
613ResourceType resourceType;
634/// A collection of resource types (<see cref="ResourceType"/>) derived from the specified <paramref name="resourceType"/>
637public IEnumerable<ResourceType> GetDerivedTypes(ResourceType resourceType)
644foreach (ResourceType derivedType in derivedTypes)
646ResourceType type = this.ValidateResourceType(derivedType);
660public bool HasDerivedTypes(ResourceType resourceType)
700internal static ResourceType GetDeclaringTypeForProperty(ResourceType resourceType, ResourceProperty resourceProperty)
753foreach (ResourceType derivedType in this.GetDerivedTypes(resourceSet.ResourceType))
760ResourceType resourceType = resourceSet.ResourceType;
777internal ResourceSetWrapper GetContainer(ResourceSetWrapper sourceContainer, ResourceType sourceResourceType, ResourceProperty navigationProperty)
806internal IList<ResourceProperty> GetETagProperties(string containerName, ResourceType resourceType)
824internal IEnumerable<ResourceProperty> GetResourceProperties(ResourceSetWrapper resourceSet, ResourceType resourceType)
985internal bool IsEntityTypeDisallowedForSet(ResourceSetWrapper resourceSet, ResourceType resourceType)
998ResourceType baseType = resourceSet.ResourceType;
1052private static void ValidateResourceTypeReadOnly(ResourceType resourceType)
1083private ResourceType ValidateResourceType(ResourceType resourceType)
1091ResourceType cachedType;
1144private bool HasNavigationProperties(ResourceSetWrapper resourceSet, ResourceType resourceType)
System\Data\Services\Providers\ObjectContextServiceProvider.cs (60)
105public override ResourceAssociationSet GetResourceAssociationSet(ResourceSet resourceSet, ResourceType resourceType, ResourceProperty resourceProperty)
150ResourceType targetResourceType;
348ResourceType resourceType;
401ResourceType resourceType = this.GetSingleResource(result);
421ResourceType resourceType = this.GetSingleResource(resource);
469ResourceType resourceType = this.GetSingleResource(targetResource);
495ResourceType resourceType = this.GetSingleResource(targetResource);
637ResourceType resourceType = this.GetResourceType(resource);
724internal IList<ResourceProperty> GetETagProperties(string containerName, ResourceType resourceType)
785HashSet<ResourceType> connectedTypes = new HashSet<ResourceType>(EqualityComparer<ResourceType>.Default);
786foreach (ResourceType type in ((IDataServiceMetadataProvider)this).Types)
798Dictionary<ResourceType, ResourceSet> typeRights = new Dictionary<ResourceType, ResourceSet>(ReferenceEqualityComparer<ResourceType>.Instance);
804ResourceType resourceType = containerEntry.Value.ResourceType;
842IDictionary<Type, ResourceType> knownTypes,
843IDictionary<ResourceType, List<ResourceType>> childTypes,
882ResourceType resourceType = knownTypes[elementType];
890foreach (ResourceType resourceType in knownTypes.Values)
925IDictionary<Type, ResourceType> knownTypes,
926IDictionary<ResourceType, List<ResourceType>> childTypes,
954protected override ResourceType PopulateMetadataForType(
956IDictionary<Type, ResourceType> knownTypes,
957IDictionary<ResourceType, List<ResourceType>> childTypes,
962ResourceType resourceType;
972ResourceType baseType = null;
992protected override ResourceType ResolveNonPrimitiveType(System.Type type)
1303private static ResourceType PopulateTypeMetadata(
1306IDictionary<Type, ResourceType> knownTypes,
1307IDictionary<ResourceType, List<ResourceType>> childTypes)
1314ResourceType resourceType = null;
1318ResourceType baseType = null;
1339private static ResourceType CreateResourceType(
1342ResourceType baseResourceType,
1343IDictionary<Type, ResourceType> knownTypes,
1344IDictionary<ResourceType, List<ResourceType>> childTypes)
1349ResourceType resourceType = new ResourceType(clrType, resourceTypeKind, baseResourceType, cspaceType.NamespaceName, cspaceType.Name, clrType.IsAbstract);
1362childTypes[baseResourceType] = new List<ResourceType>();
1378ResourceType resourceType,
1380IDictionary<Type, ResourceType> knownTypes)
1397ResourceType propertyType = null;
1401propertyType = ResourceType.GetPrimitiveResourceType(propertyInfo.PropertyType);
2087private void GetEpmInfoForResourceType(MetadataWorkspace workspace, ResourceType baseResourceType, ResourceType descendentResourceType)
2152ResourceType descendentResourceType,
2154ResourceType definingType)
2208private ResourceProperty GetResourcePropertyFromEpmPath(ResourceType baseResourceType, String sourcePath)
2396ResourceType resourceType = this.GetSingleResource(targetResource);
2725private void AddVisibleResourceType(ResourceType resourceType)
2738private void AddComplexPropertTypes(ResourceType resourceType)
2757foreach (ResourceType derivedType in this.provider.GetDerivedTypes(resourceSet.ResourceType))
2764ResourceType resourceType = resourceSet.ResourceType;
2777ResourceType resultType = serviceOperation.ResultType;
System\Data\Services\Providers\ReflectionServiceProvider.cs (62)
71public override ResourceAssociationSet GetResourceAssociationSet(ResourceSet resourceSet, ResourceType resourceType, ResourceProperty resourceProperty)
78ResourceType targetType = resourceProperty.ResourceType;
242IDictionary<Type, ResourceType> knownTypes,
243IDictionary<ResourceType, List<ResourceType>> childTypes,
246Queue<ResourceType> unvisitedTypes = new Queue<ResourceType>();
260ResourceType resourceType = BuildHierarchyForEntityType(elementType, knownTypes, childTypes, unvisitedTypes, true /* entity type candidate */);
297foreach (ResourceType resourceType in knownTypes.Values)
341IDictionary<Type, ResourceType> knownTypes,
342IDictionary<ResourceType, List<ResourceType>> childTypes,
345Queue<ResourceType> unvisitedTypes = new Queue<ResourceType>();
348ResourceType resourceType;
371protected override ResourceType PopulateMetadataForType(
373IDictionary<Type, ResourceType> knownTypes,
374IDictionary<ResourceType, List<ResourceType>> childTypes,
377Queue<ResourceType> unvisitedTypes = new Queue<ResourceType>();
378ResourceType resourceType;
465IDictionary<Type, ResourceType> knownTypes,
466IDictionary<ResourceType, List<ResourceType>> childTypes,
467Queue<ResourceType> unvisitedTypes,
478ResourceType type = unvisitedTypes.Dequeue();
494private static ResourceType BuildHierarchyForEntityType(
496IDictionary<Type, ResourceType> knownTypes,
497IDictionary<ResourceType, List<ResourceType>> childTypes,
498Queue<ResourceType> unvisitedTypes,
515ResourceType baseResourceType = null;
575ResourceType entityType = ReflectionServiceProvider.CreateResourceType(ancestors[i], ResourceTypeKind.EntityType, baseResourceType, knownTypes, childTypes);
592ResourceType parentResourceType,
593IDictionary<Type, ResourceType> knownTypes,
594IDictionary<ResourceType, List<ResourceType>> childTypes,
595Queue<ResourceType> unvisitedTypes,
630ResourceType resourceType;
782private static ResourceType IsEntityOrComplexType(
784IDictionary<Type, ResourceType> knownTypes,
785IDictionary<ResourceType, List<ResourceType>> childTypes,
786Queue<ResourceType> unvisitedTypes)
794ResourceType resourceType = BuildHierarchyForEntityType(type, knownTypes, childTypes, unvisitedTypes, false /* entityTypeCandidate */);
833IDictionary<Type, ResourceType> knownTypes,
834IDictionary<ResourceType, List<ResourceType>> childTypes,
835Queue<ResourceType> unvisitedTypes,
843List<ResourceType> rootTypes = new List<ResourceType>();
844foreach (ResourceType resourceType in knownTypes.Values)
858foreach (ResourceType resourceType in knownTypes.Values)
913private static IEnumerable<string> LoadETagProperties(ResourceType resourceType)
943private static ResourceType CreateResourceType(
946ResourceType baseType,
947IDictionary<Type, ResourceType> knownTypes,
948IDictionary<ResourceType, List<ResourceType>> childTypes)
950ResourceType resourceType = new ResourceType(type, kind, baseType, type.Namespace, GetModelTypeName(type), type.IsAbstract);
966childTypes[baseType] = new List<ResourceType>();
System\Data\Services\Providers\ResourceType.cs (26)
39internal static readonly ResourceType PrimitiveStringResourceType = ResourceType.GetPrimitiveResourceType(typeof(string));
58private readonly ResourceType baseType;
99/// <summary>EpmInfo for this <see cref="ResourceType"/></summary>
130ResourceType baseType,
176ResourceType baseType,
241public ResourceType BaseType
274readOnlyProperties = new ReadOnlyCollection<ResourceProperty>(this.propertiesDeclaredOnThisType ?? ResourceType.EmptyProperties);
308ResourceType rootType = this;
317readOnlyKeyProperties = ResourceType.EmptyProperties;
322key.Sort(ResourceType.ResourcePropertyComparison);
468/// Do we have entity property mappings for this <see cref="ResourceType"/>
577public static ResourceType GetPrimitiveResourceType(Type type)
581foreach (ResourceType resourceType in WebUtil.GetPrimitiveTypes())
700internal void BuildReflectionEpmInfo(ResourceType currentResourceType)
732internal void BuildEpmInfo(EntityPropertyMappingAttribute epmAttr, ResourceType definingType, bool isEFProvider)
770ResourceType resourceType,
779ResourceType propertyType;
807propertyType = ResourceType.PrimitiveStringResourceType;
830ResourceType.SetEpmProperty(element, currentSegment, currentValue, sourcePath, deserializer);
854ResourceType.SetEpmProperty(element, currentSegment, currentValue, sourcePath, deserializer);
901internal bool IsAssignableFrom(ResourceType superType)
928ResourceType resourceType = this;
1126private void BuildDynamicEpmInfo(ResourceType currentResourceType)
1275/// <summary>EpmSourceTree per <see cref="ResourceType"/></summary>
1278/// <summary>EpmTargetTree per <see cref="ResourceType"/></summary>
System\Data\Services\Serializers\JsonSerializer.cs (9)
270private static string GetTagNameForType(ResourceType resourceType)
274ResourceType elementType = WebUtil.GetRootType(resourceType);
387private string WriteMetadataObject(object resource, ResourceType resourceType, Uri uriPath)
543ResourceType resourceType = WebUtil.GetResourceType(this.Provider, element);
619private void WriteResourceProperties(IExpandedResult expanded, object resource, ResourceType resourceType, Uri uri)
633private void WriteComplexTypeProperties(object complexObject, ResourceType resourceType, Uri parentUri)
725ResourceType propertyResourceType;
730propertyResourceType = ResourceType.PrimitiveStringResourceType;
758private void WriteObjectProperties(IExpandedResult expanded, object customObject, ResourceType resourceType, Uri parentUri, bool objectIsResource)
System\Data\Services\Serializers\MetadataSerializer.cs (37)
59internal static string GetVersionsForMetadata(IEnumerable<ResourceType> types, ref MetadataEdmSchemaVersion metadataEdmSchemaVersion)
64foreach (ResourceType type in types)
161ResourceType resourceType = operation.ResultType;
234HashSet<ResourceType> typesInEntityContainerNamespace = null;
237foreach (KeyValuePair<string, HashSet<ResourceType>> namespaceAlongWithTypes in metadataManager.NamespaceAlongWithTypes)
287IEnumerable<ResourceType> types,
291foreach (ResourceType type in types)
314ResourceType entityType,
443private static void WriteComplexType(XmlWriter xmlWriter, ResourceType complexType, MetadataManager metadataManager)
473ResourceType type,
709private Dictionary<string, HashSet<ResourceType>> resourceTypes = new Dictionary<string, HashSet<ResourceType>>(StringComparer.Ordinal);
740foreach (ResourceType resourceType in this.provider.Types)
762ResourceType resourceType = this.provider.TryResolveResourceType(resourceTypeName);
800internal IEnumerable<KeyValuePair<string, HashSet<ResourceType>>> NamespaceAlongWithTypes
806internal IEnumerable<ResourceType> ResourceTypes
812foreach (ResourceType resourceType in namespaceTypePair.Value)
861internal static string GetAssociationTypeLookupName(ResourceType resourceType, ResourceProperty resourceProperty)
906internal string GetTypeNamepace(ResourceType resourceType)
920internal IEnumerable<ResourceProperty> GetPropertiesDeclaredInThisType(ResourceType resourceType)
926ResourceType propertyType = property.ResourceType;
928HashSet<ResourceType> typesInNamespace = this.GetResourceTypesForNamespace(typeNamespace);
944private HashSet<ResourceType> GetResourceTypesForNamespace(string typeNamespace)
946HashSet<ResourceType> typesInSameNamespace;
949typesInSameNamespace = new HashSet<ResourceType>(EqualityComparer<ResourceType>.Default);
959private bool AddVisibleResourceType(ResourceType resourceType)
962HashSet<ResourceType> typesInSameNamespace = this.GetResourceTypesForNamespace(typeNamespace);
973private void AddComplexPropertTypes(ResourceType resourceType)
994foreach (ResourceType derivedType in this.provider.GetDerivedTypes(resourceSet.ResourceType))
1001ResourceType resourceType = resourceSet.ResourceType;
1018private ResourceAssociationType GetResourceAssociationType(ResourceAssociationSet associationSet, ResourceSetWrapper resourceSet, ResourceType resourceType, ResourceProperty navigationProperty)
1080private ResourceAssociationSet GetAndValidateResourceAssociationSet(ResourceSetWrapper resourceSet, ResourceType resourceType, ResourceProperty navigationProperty)
1141private void PopulateAssociationsForSetAndType(ResourceSetWrapper resourceSet, ResourceType resourceType)
1165foreach (ResourceType derivedType in this.provider.GetDerivedTypes(resourceSet.ResourceType))
1171ResourceType resourceType = resourceSet.ResourceType;
1186ResourceType resultType = serviceOperation.ResultType;
System\Data\Services\Serializers\PlainXmlDeserializer.cs (7)
88internal static void ApplyContent(Deserializer deserializer, XmlReader reader, ResourceType resourceType, object resource, EpmContentDeSerializer.EpmAppliedPropertyInfo propertiesApplied, int currentObjectCount)
379private void ApplyContent(XmlReader reader, ResourceType resourceType, object resource)
425private void ApplyProperty(XmlReader reader, string propertyName, ResourceType resourceType, object resource)
466private ResourceType ReadOpenPropertyTypeAttribute(XmlReader reader)
470ResourceType resourceType = null;
475resourceType = ResourceType.PrimitiveStringResourceType;
505ResourceType propertyType = null;
System\Data\Services\Serializers\SyndicationDeserializer.cs (7)
290private void ApplyProperties(SyndicationItem item, ResourceType resourceType, EpmContentDeSerializer.EpmAppliedPropertyInfo propertiesApplied, object resource)
356ResourceType currentResourceType = this.GetResourceType(item, segmentInfo.TargetResourceType);
455private void ApplyLink(SyndicationLink link, ResourceSetWrapper resourceSet, ResourceType resourceType, object resource, string propertyName)
534private ResourceType GetResourceType(SyndicationItem item, ResourceType expectedType)
538ResourceType resourceType;
578ResourceType parentResourceType,
System\Data\Services\Serializers\SyndicationSerializer.cs (14)
185ResourceType resourcePropertyType;
188resourcePropertyType = (element == null) ? ResourceType.PrimitiveStringResourceType : WebUtil.GetResourceType(this.Provider, element);
402private void WriteComplexObjectValue(object element, string propertyName, ResourceType expectedType, string relativeUri, DictionaryContent content, EpmSourcePathSegment currentSourceRoot)
426ResourceType resourceType = WebUtil.GetNonPrimitiveResourceType(this.Provider, element);
449private void WriteEntryElement(IExpandedResult expanded, object element, ResourceType expectedType, Uri absoluteUri, string relativeUri, SyndicationItem target)
494ResourceType actualResourceType = WebUtil.GetNonPrimitiveResourceType(this.Provider, element);
569ResourceType expectedType,
633ResourceType expectedType,
698private void WriteOtherElements(object element, ResourceType type, string title, Uri absoluteUri, string relativeUri, string mediaETag, SyndicationItem item)
745private void WriteObjectProperties(IExpandedResult expanded, object customObject, ResourceType resourceType, Uri absoluteUri, string relativeUri, SyndicationItem item, DictionaryContent content, EpmSourcePathSegment currentSourceRoot)
880ResourceType propertyResourceType;
887propertyResourceType = ResourceType.PrimitiveStringResourceType;
967ResourceType propertyResourceType;
976propertyResourceType = ResourceType.PrimitiveStringResourceType;
System\Data\Services\WebUtil.cs (23)
135private static ResourceType[] primitiveResourceTypes;
334internal static ContentFormat GetResponseFormatForPrimitiveValue(ResourceType valueType, out string contentType)
509internal static bool HasMediaLinkEntryInHierarchy(ResourceType baseType, DataServiceProviderWrapper provider)
517foreach (ResourceType derivedType in provider.GetDerivedTypes(baseType))
628internal static ResourceType TryResolveResourceType(DataServiceProviderWrapper provider, string typeName)
633ResourceType resourceType = null;
634ResourceType[] types = WebUtil.GetPrimitiveTypes();
659internal static ResourceType GetResourceType(DataServiceProviderWrapper provider, object obj)
664ResourceType r = ResourceType.GetPrimitiveResourceType(obj.GetType());
680internal static ResourceType GetNonPrimitiveResourceType(DataServiceProviderWrapper provider, object obj)
684ResourceType resourceType;
706internal static ResourceType GetRootType(ResourceType resourceType)
796foreach (ResourceType type in GetPrimitiveTypes())
898internal static string GetETagValue(object resource, ResourceType resourceType, ICollection<ResourceProperty> etagProperties, IDataService service, bool getMethod)
959ResourceType resourceType = WebUtil.GetNonPrimitiveResourceType(service.Provider, resource);
987internal static ResourceType[] GetPrimitiveTypes()
991ResourceType[] types = new ResourceType[PrimitiveTypesEdmNameMapping.Length];
1000System.Threading.Interlocked.CompareExchange<ResourceType[]>(ref primitiveResourceTypes, types, null);
1070ResourceType resourceType = WebUtil.GetNonPrimitiveResourceType(service.Provider, parentEntityResource);
1488internal static object GetPropertyValue(DataServiceProviderWrapper provider, object resource, ResourceType resourceType, ResourceProperty resourceProperty, String propertyName)