public MakeObject()

in objectModel/TypeScript/Cdm/CdmCorpusDefinition.ts [682:830]


    public MakeObject<T extends CdmObject>(ofType: cdmObjectType, nameOrRef?: string, simmpleNameRef?: boolean): T {
        // let bodyCode = () =>
        {
            let newObj: CdmObject;

            switch (ofType) {
                case cdmObjectType.argumentDef:
                    newObj = new CdmArgumentDefinition(this.ctx, nameOrRef);
                    (newObj as CdmArgumentDefinition).name = nameOrRef;
                    break;
                case cdmObjectType.attributeGroupDef:
                    newObj = new CdmAttributeGroupDefinition(this.ctx, nameOrRef);
                    break;
                case cdmObjectType.attributeGroupRef:
                    newObj = new CdmAttributeGroupReference(this.ctx, nameOrRef, simmpleNameRef);
                    break;
                case cdmObjectType.constantEntityDef:
                    newObj = new CdmConstantEntityDefinition(this.ctx, nameOrRef);
                    break;
                case cdmObjectType.dataTypeDef:
                    newObj = new CdmDataTypeDefinition(this.ctx, nameOrRef, undefined);
                    break;
                case cdmObjectType.dataTypeRef:
                    newObj = new CdmDataTypeReference(this.ctx, nameOrRef, simmpleNameRef);
                    break;
                case cdmObjectType.documentDef:
                    newObj = new CdmDocumentDefinition(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, this.TAG, this.MakeObject.name, newObj.atCorpusPath, "New Manifest created.", true);
                    break;
                case cdmObjectType.entityAttributeDef:
                    newObj = new CdmEntityAttributeDefinition(this.ctx, nameOrRef);
                    break;
                case cdmObjectType.entityDef:
                    newObj = new CdmEntityDefinition(this.ctx, nameOrRef, undefined);
                    break;
                case cdmObjectType.entityRef:
                    newObj = new CdmEntityReference(this.ctx, nameOrRef, simmpleNameRef);
                    break;
                case cdmObjectType.import:
                    newObj = new CdmImport(this.ctx, nameOrRef, undefined);
                    break;
                case cdmObjectType.parameterDef:
                    newObj = new CdmParameterDefinition(this.ctx, nameOrRef);
                    break;
                case cdmObjectType.purposeDef:
                    newObj = new CdmPurposeDefinition(this.ctx, nameOrRef, undefined);
                    break;
                case cdmObjectType.purposeRef:
                    newObj = new CdmPurposeReference(this.ctx, nameOrRef, simmpleNameRef);
                    break;
                case cdmObjectType.traitDef:
                    newObj = new CdmTraitDefinition(this.ctx, nameOrRef, undefined);
                    break;
                case cdmObjectType.traitRef:
                    newObj = new CdmTraitReference(this.ctx, nameOrRef, simmpleNameRef, false);
                    break;
                case cdmObjectType.traitGroupDef:
                    newObj = new CdmTraitGroupDefinition(this.ctx, nameOrRef);
                    break;
                case cdmObjectType.traitGroupRef:
                    newObj = new CdmTraitGroupReference(this.ctx, nameOrRef, simmpleNameRef);
                    break;
                case cdmObjectType.typeAttributeDef:
                    newObj = new CdmTypeAttributeDefinition(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.attributeRef:
                    newObj = new CdmAttributeReference(this.ctx, nameOrRef, simmpleNameRef);
                    break;
                case cdmObjectType.dataPartitionDef:
                    newObj = new CdmDataPartitionDefinition(this.ctx, nameOrRef);
                    break;
                case cdmObjectType.dataPartitionPatternDef:
                    newObj = new CdmDataPartitionPatternDefinition(this.ctx, nameOrRef);
                    break;
                case cdmObjectType.manifestDeclarationDef:
                    newObj = new CdmManifestDeclarationDefinition(this.ctx, nameOrRef);
                    break;
                case cdmObjectType.referencedEntityDeclarationDef:
                    newObj = new CdmReferencedEntityDeclarationDefinition(this.ctx, nameOrRef);
                    break;
                case cdmObjectType.localEntityDeclarationDef:
                    newObj = new CdmLocalEntityDeclarationDefinition(this.ctx, nameOrRef);
                    break;
                case cdmObjectType.folderDef:
                    newObj = new CdmFolderDefinition(this.ctx, nameOrRef);
                    break;
                case cdmObjectType.attributeResolutionGuidanceDef:
                    newObj = new CdmAttributeResolutionGuidance(this.ctx);
                    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;
                default:
            }

            return newObj as T;
        }
        // return p.measure(bodyCode);
    }