in objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmCorpusDefinition.cs [717:860]
public T MakeObject<T>(CdmObjectType ofType, string nameOrRef = null, bool simpleNameRef = false) where T : CdmObject
{
CdmObject newObj = null;
switch (ofType)
{
case CdmObjectType.ArgumentDef:
newObj = new CdmArgumentDefinition(this.Ctx, nameOrRef);
break;
case CdmObjectType.AttributeContextDef:
newObj = new CdmAttributeContext(this.Ctx, nameOrRef);
break;
case CdmObjectType.AttributeContextRef:
newObj = new CdmAttributeContextReference(this.Ctx, nameOrRef);
break;
case CdmObjectType.AttributeGroupDef:
newObj = new CdmAttributeGroupDefinition(this.Ctx, nameOrRef);
break;
case CdmObjectType.AttributeGroupRef:
newObj = new CdmAttributeGroupReference(this.Ctx, nameOrRef, simpleNameRef);
break;
case CdmObjectType.AttributeRef:
newObj = new CdmAttributeReference(this.Ctx, nameOrRef, simpleNameRef);
break;
case CdmObjectType.AttributeResolutionGuidanceDef:
newObj = new CdmAttributeResolutionGuidance(this.Ctx);
break;
case CdmObjectType.ConstantEntityDef:
newObj = new CdmConstantEntityDefinition(this.Ctx, nameOrRef);
break;
case CdmObjectType.DataPartitionDef:
newObj = new CdmDataPartitionDefinition(this.Ctx, nameOrRef);
break;
case CdmObjectType.DataPartitionPatternDef:
newObj = new CdmDataPartitionPatternDefinition(this.Ctx, nameOrRef);
break;
case CdmObjectType.DataTypeDef:
newObj = new CdmDataTypeDefinition(this.Ctx, nameOrRef, null);
break;
case CdmObjectType.DataTypeRef:
newObj = new CdmDataTypeReference(this.Ctx, nameOrRef, simpleNameRef);
break;
case CdmObjectType.DocumentDef:
newObj = new CdmDocumentDefinition(this.Ctx, nameOrRef);
break;
case CdmObjectType.EntityAttributeDef:
newObj = new CdmEntityAttributeDefinition(this.Ctx, nameOrRef);
break;
case CdmObjectType.EntityDef:
newObj = new CdmEntityDefinition(this.Ctx, nameOrRef, null);
break;
case CdmObjectType.EntityRef:
newObj = new CdmEntityReference(this.Ctx, nameOrRef, simpleNameRef);
break;
case CdmObjectType.FolderDef:
newObj = new CdmFolderDefinition(this.Ctx, nameOrRef);
break;
case CdmObjectType.ManifestDef:
newObj = new CdmManifestDefinition(this.Ctx, nameOrRef);
// Log and ingest a message when a new manifest is created
Logger.Debug(this.Ctx, Tag, $"{nameof(MakeObject)}<{typeof(T).Name}>", newObj.AtCorpusPath, "New Manifest created.", true);
break;
case CdmObjectType.ManifestDeclarationDef:
newObj = new CdmManifestDeclarationDefinition(this.Ctx, nameOrRef);
break;
case CdmObjectType.Import:
newObj = new CdmImport(this.Ctx, nameOrRef, null);
break;
case CdmObjectType.LocalEntityDeclarationDef:
newObj = new CdmLocalEntityDeclarationDefinition(this.Ctx, nameOrRef);
break;
case CdmObjectType.ParameterDef:
newObj = new CdmParameterDefinition(this.Ctx, nameOrRef);
break;
case CdmObjectType.PurposeDef:
newObj = new CdmPurposeDefinition(this.Ctx, nameOrRef, null);
break;
case CdmObjectType.PurposeRef:
newObj = new CdmPurposeReference(this.Ctx, nameOrRef, simpleNameRef);
break;
case CdmObjectType.ReferencedEntityDeclarationDef:
newObj = new CdmReferencedEntityDeclarationDefinition(this.Ctx, nameOrRef);
break;
case CdmObjectType.TraitDef:
newObj = new CdmTraitDefinition(this.Ctx, nameOrRef, null);
break;
case CdmObjectType.TraitRef:
newObj = new CdmTraitReference(this.Ctx, nameOrRef, simpleNameRef, false);
break;
case CdmObjectType.TraitGroupDef:
newObj = new CdmTraitGroupDefinition(this.Ctx, nameOrRef);
break;
case CdmObjectType.TraitGroupRef:
newObj = new CdmTraitGroupReference(this.Ctx, nameOrRef, simpleNameRef);
break;
case CdmObjectType.TypeAttributeDef:
newObj = new CdmTypeAttributeDefinition(this.Ctx, nameOrRef);
break;
case CdmObjectType.E2ERelationshipDef:
newObj = new CdmE2ERelationship(this.Ctx, nameOrRef);
break;
case CdmObjectType.ProjectionDef:
newObj = new CdmProjection(this.Ctx);
break;
case CdmObjectType.OperationAddCountAttributeDef:
newObj = new CdmOperationAddCountAttribute(this.Ctx);
break;
case CdmObjectType.OperationAddSupportingAttributeDef:
newObj = new CdmOperationAddSupportingAttribute(this.Ctx);
break;
case CdmObjectType.OperationAddTypeAttributeDef:
newObj = new CdmOperationAddTypeAttribute(this.Ctx);
break;
case CdmObjectType.OperationExcludeAttributesDef:
newObj = new CdmOperationExcludeAttributes(this.Ctx);
break;
case CdmObjectType.OperationArrayExpansionDef:
newObj = new CdmOperationArrayExpansion(this.Ctx);
break;
case CdmObjectType.OperationCombineAttributesDef:
newObj = new CdmOperationCombineAttributes(this.Ctx);
break;
case CdmObjectType.OperationRenameAttributesDef:
newObj = new CdmOperationRenameAttributes(this.Ctx);
break;
case CdmObjectType.OperationReplaceAsForeignKeyDef:
newObj = new CdmOperationReplaceAsForeignKey(this.Ctx);
break;
case CdmObjectType.OperationIncludeAttributesDef:
newObj = new CdmOperationIncludeAttributes(this.Ctx);
break;
case CdmObjectType.OperationAddAttributeGroupDef:
newObj = new CdmOperationAddAttributeGroup(this.Ctx);
break;
case CdmObjectType.OperationAlterTraitsDef:
newObj = new CdmOperationAlterTraits(this.Ctx);
break;
case CdmObjectType.OperationAddArtifactAttributeDef:
newObj = new CdmOperationAddArtifactAttribute(this.Ctx);
break;
}
return (T)newObj;
}