public static string MakeCanonicalName(string name, OdcmObject returnType, params OdcmParameter[] parameters) { return(string.Format("{0}<{1}>:{2}", name, string.Join(",", from parameter in parameters select parameter.Type.CanonicalName()), returnType == null ? "void" : returnType.CanonicalName())); }
public static string MakeCanonicalName(string name, OdcmObject returnType, params OdcmParameter[] parameters) { return string.Format("{0}<{1}>:{2}", name, string.Join(",", from parameter in parameters select parameter.Type.CanonicalName()), returnType == null ? "void" : returnType.CanonicalName()); }
public bool TryResolveType <T>(string name, string @namespace, out T type) where T : OdcmType { string canonicalName = OdcmObject.MakeCanonicalName(name, @namespace); var odcmType = _Types.FirstOrDefault(t => t.CanonicalName().Equals(canonicalName, StringComparison.InvariantCulture)); type = odcmType as T; return(type != null); }
internal static IEnumerable <OdcmCapability> GetWellKnownCapabilities(OdcmObject odcmProperty, IEnumerable <OdcmCapability> capabilities) { foreach (var term in _wellKnownCapabilities.Keys) { var c = capabilities.SingleOrDefault(FuncFromTerm(term)); yield return(c ?? DefaultCapability(odcmProperty, term)); } }
private T FindCapability <T>(string term, OdcmObject odcmObject = null) where T : OdcmCapability { var capability = (T)Capabilities .SingleOrDefault(FuncFromTerm(term)); if (capability == null) { capability = DefaultCapability(odcmObject, term) as T; } return(capability); }
private static OdcmCapability GetDefaultNegativeLinkCapability(OdcmObject odcmObject, string term) { bool defaultValue = true; if (odcmObject != null && odcmObject is OdcmSingleton || odcmObject is OdcmEntitySet) { defaultValue = false; } return(new OdcmBooleanCapability(defaultValue, term)); }
private static OdcmCapability DefaultCapability(OdcmObject odcmObject, string term) { OdcmCapability result = UserDefaultCapabilityProvider?.Invoke(odcmObject, term); if (result == null) { DefaultProvider func; if (_wellKnownCapabilities.TryGetValue(term, out func)) { result = func(odcmObject, term); } } return(result); }
private static OdcmCapability GetDefaultBooleanCapability(OdcmObject odcmObject, string term) { bool defaultValue = true; if (odcmObject != null && odcmObject is OdcmSingleton) { switch (term) { case TermNames.Delete: defaultValue = false; break; } } return(new OdcmBooleanCapability(defaultValue, term)); }
public bool TryResolveType <T>(string name, string @namespace, out T type) where T : OdcmType { string canonicalName = OdcmObject.MakeCanonicalName(name, @namespace); foreach (OdcmType candidate in _Types) { if (candidate.CanonicalName().Equals(canonicalName, StringComparison.InvariantCulture)) { type = candidate as T; return(true); } } type = null; return(false); }
public void AddProjection(ICollection <OdcmCapability> capabilities, OdcmObject odcmObject = null) { if (this is OdcmPrimitiveType || this is OdcmMethod) { return; } var knownCapabilities = OdcmProjection.GetWellKnownCapabilities(odcmObject, capabilities).ToList(); var name = OdcmProjection.GetUniqueProjectionName(knownCapabilities, odcmObject); OdcmProjection projection; if (!_projectionHash.TryGetValue(name, out projection)) { _projectionHash[name] = new OdcmProjection() { Type = this, Capabilities = knownCapabilities, BackLink = odcmObject }; } }
public bool?Supports(string term, OdcmObject odcmObject = null) { return(BooleanValueOf(term, odcmObject)); }
private void AddVocabularyAnnotations(OdcmObject odcmObject, IEdmVocabularyAnnotatable annotatableEdmEntity) { odcmObject.Description = _edmModel.GetDescriptionAnnotation(annotatableEdmEntity); odcmObject.LongDescription = _edmModel.GetLongDescriptionAnnotation(annotatableEdmEntity); }
public bool?BooleanValueOf(string term, OdcmObject odcmObject = null) { return(FindCapability <OdcmBooleanCapability>(term, odcmObject)?.Value); }
internal static string GetUniqueProjectionName(IEnumerable <OdcmCapability> capabilities, OdcmObject odcmObject) { string name = string.Empty; var allCapabilities = GetWellKnownCapabilities(odcmObject, capabilities) .OrderBy(x => x.TermName); foreach (OdcmBooleanCapability c in allCapabilities) { name += ToInternal(c.TermName) + c.Value.ToString(); } return(name); }
public string StringValueOf(string term, OdcmObject odcmObject = null) { return(FindCapability <OdcmStringCapability>(term, odcmObject)?.Value); }
public IEnumerable <object> CollectionValueOf(string term, OdcmObject odcmObject = null) { return(FindCapability <OdcmCollectionCapability>(term, odcmObject)?.Value); }
public IEnumerable <string> EnumValueOf(string term, OdcmObject odcmObject = null) { return(FindCapability <OdcmEnumCapability>(term, odcmObject)?.Value); }
public IEnumerable <string> StringCollectionValueOf(string term, OdcmObject odcmObject = null) { var capability = FindCapability <OdcmCollectionCapability>(term, odcmObject); return(capability?.Value.Select(x => x as string)); }