public static CdmDataTypeReference FromData(CdmCorpusContext ctx, JToken obj) { if (obj == null) { return(null); } bool simpleReference = true; bool? optional = null; dynamic dataType; List <CdmTraitReferenceBase> appliedTraits = null; if (obj is JValue) { dataType = obj; } else { simpleReference = false; if (obj["optional"] != null) { if (bool.TryParse(obj["optional"].ToString(), out bool optVal)) { optional = optVal; } } if (obj["dataTypeReference"] is JValue) { dataType = (string)obj["dataTypeReference"]; } else { dataType = DataTypePersistence.FromData(ctx, obj["dataTypeReference"]); } } CdmDataTypeReference dataTypeReference = ctx.Corpus.MakeRef <CdmDataTypeReference>(CdmObjectType.DataTypeRef, dataType, simpleReference); if (optional != null) { dataTypeReference.Optional = optional; } if (!(obj is JValue)) { appliedTraits = Utils.CreateTraitReferenceList(ctx, obj["appliedTraits"]); } Utils.AddListToCdmCollection(dataTypeReference.AppliedTraits, appliedTraits); return(dataTypeReference); }
/// <summary> /// Create a Type Attribute /// </summary> /// <returns></returns> public CdmTypeAttributeDefinition CreateTypeAttribute(string attributeName, string dataType, string purpose) { CdmDataTypeReference dataTypeRef = Corpus.MakeRef <CdmDataTypeReference>(CdmObjectType.DataTypeRef, dataType, simpleNameRef: false); CdmPurposeReference purposeRef = Corpus.MakeRef <CdmPurposeReference>(CdmObjectType.PurposeRef, purpose, simpleNameRef: false); CdmTypeAttributeDefinition attribute = Corpus.MakeObject <CdmTypeAttributeDefinition>(CdmObjectType.TypeAttributeDef, nameOrRef: attributeName, simpleNameRef: false); attribute.DataType = dataTypeRef; attribute.Purpose = purposeRef; return(attribute); }
public static dynamic ToData(CdmDataTypeReference instance, ResolveOptions resOpt, CopyOptions options) { return(CdmObjectRefPersistence.ToData(instance, resOpt, options)); }