Search in sources :

Example 6 with JSONFileConnectionItem

use of org.talend.repository.model.json.JSONFileConnectionItem in project tdi-studio-se by Talend.

the class CreateJSONSchemaAction method doRun.

@Override
protected void doRun() {
    if (repositoryNode == null) {
        repositoryNode = getCurrentRepositoryNode();
    }
    JSONFileConnection connection = null;
    MetadataTable metadataTable = null;
    boolean creation = false;
    if (repositoryNode.getType() == ENodeType.REPOSITORY_ELEMENT) {
        ERepositoryObjectType nodeType = (ERepositoryObjectType) repositoryNode.getProperties(EProperties.CONTENT_TYPE);
        String metadataTableLabel = (String) repositoryNode.getProperties(EProperties.LABEL);
        JSONFileConnectionItem item = null;
        if (nodeType == ERepositoryObjectType.METADATA_CON_TABLE) {
            item = (JSONFileConnectionItem) repositoryNode.getObject().getProperty().getItem();
            connection = (JSONFileConnection) item.getConnection();
            metadataTable = TableHelper.findByLabel(connection, metadataTableLabel);
            creation = false;
        } else if (nodeType == JSONRepositoryNodeType.JSON) {
            item = (JSONFileConnectionItem) repositoryNode.getObject().getProperty().getItem();
            connection = (JSONFileConnection) item.getConnection();
            metadataTable = ConnectionFactory.eINSTANCE.createMetadataTable();
            String nextId = ProxyRepositoryFactory.getInstance().getNextId();
            metadataTable.setId(nextId);
            metadataTable.setLabel(getStringIndexed(metadataTable.getLabel()));
            RecordFile record = (RecordFile) ConnectionHelper.getPackage(connection.getName(), connection, RecordFile.class);
            if (record != null) {
                // hywang
                PackageHelper.addMetadataTable(metadataTable, record);
            } else {
                RecordFile newrecord = RecordFactory.eINSTANCE.createRecordFile();
                ConnectionHelper.addPackage(newrecord, connection);
                PackageHelper.addMetadataTable(metadataTable, newrecord);
            }
            creation = true;
        } else {
            return;
        }
        initContextMode(item);
        openJSONSchemaWizard(item, metadataTable, false, creation);
    }
}
Also used : JSONFileConnection(org.talend.repository.model.json.JSONFileConnection) RecordFile(orgomg.cwm.resource.record.RecordFile) MetadataTable(org.talend.core.model.metadata.builder.connection.MetadataTable) JSONFileConnectionItem(org.talend.repository.model.json.JSONFileConnectionItem) ERepositoryObjectType(org.talend.core.model.repository.ERepositoryObjectType)

Aggregations

JSONFileConnectionItem (org.talend.repository.model.json.JSONFileConnectionItem)6 JSONFileConnection (org.talend.repository.model.json.JSONFileConnection)3 ArrayList (java.util.ArrayList)2 Resource (org.eclipse.emf.ecore.resource.Resource)2 ERepositoryObjectType (org.talend.core.model.repository.ERepositoryObjectType)2 EClass (org.eclipse.emf.ecore.EClass)1 IComponent (org.talend.core.model.components.IComponent)1 IComponentsService (org.talend.core.model.components.IComponentsService)1 Connection (org.talend.core.model.metadata.builder.connection.Connection)1 MetadataTable (org.talend.core.model.metadata.builder.connection.MetadataTable)1 Item (org.talend.core.model.properties.Item)1 RepositoryComponentSetting (org.talend.core.repository.RepositoryComponentSetting)1 ProxyRepositoryFactory (org.talend.core.repository.model.ProxyRepositoryFactory)1 RecordFile (orgomg.cwm.resource.record.RecordFile)1