use of org.talend.core.repository.model.repositoryObject.MetadataTableRepositoryObject in project tdi-studio-se by Talend.
the class SchemaUtils method getCurrentComponentProperties.
public static ComponentProperties getCurrentComponentProperties(IMetadataTable table) {
if (table != null) {
String serializedProperties = null;
SerializerDeserializer.Deserialized<ComponentProperties> fromSerializedProperties = null;
if (table instanceof MetadataTableRepositoryObject) {
MetadataTableRepositoryObject metaTableRepObj = (MetadataTableRepositoryObject) table;
MetadataTable metadataTable = metaTableRepObj.getTable();
if (metadataTable != null && metadataTable.getTaggedValue() != null) {
for (TaggedValue serializedProps : metadataTable.getTaggedValue()) {
if (IComponentConstants.COMPONENT_PROPERTIES_TAG.equals(serializedProps.getTag())) {
serializedProperties = serializedProps.getValue();
break;
}
}
}
if (serializedProperties != null) {
Connection connection = ((ConnectionItem) metaTableRepObj.getViewObject().getProperty().getItem()).getConnection();
return ComponentsUtils.getComponentPropertiesFromSerialized(serializedProperties, connection);
}
} else if (table instanceof org.talend.core.model.metadata.MetadataTable) {
org.talend.core.model.metadata.MetadataTable metaTable = (org.talend.core.model.metadata.MetadataTable) table;
Map<String, String> additionalProperties = metaTable.getAdditionalProperties();
serializedProperties = additionalProperties.get(IComponentConstants.COMPONENT_PROPERTIES_TAG);
if (serializedProperties != null) {
fromSerializedProperties = Properties.Helper.fromSerializedPersistent(serializedProperties, ComponentProperties.class, null);
}
}
if (fromSerializedProperties != null) {
return fromSerializedProperties.object;
}
}
return null;
}
use of org.talend.core.repository.model.repositoryObject.MetadataTableRepositoryObject in project tdi-studio-se by Talend.
the class ComponentChooseDialog method createRefreshingPropertiesCommand.
/**
* DOC bqian Comment method "createRefreshingPropertiesCommand".
*
* @param selectedNode
* @param node
*/
private List<Command> createRefreshingPropertiesCommand(CompoundCommand cc, RepositoryNode selectedNode, Node node) {
// List<Command> list = new ArrayList<Command>();
if (selectedNode.getObject().getProperty().getItem() instanceof ConnectionItem) {
String propertyId = selectedNode.getObject().getProperty().getId();
ConnectionItem originalConnectionItem = (ConnectionItem) selectedNode.getObject().getProperty().getItem();
ConnectionItem connectionItem = originalConnectionItem;
Connection originalConnection = connectionItem.getConnection();
Connection connection = connectionItem.getConnection();
// if component is CDC, replace by the CDC connection.
if (node.getComponent().getName().contains("CDC")) {
// to replace by a flag CDC in component? //$NON-NLS-1$
if (selectedNode.getObject().getProperty().getItem() instanceof DatabaseConnectionItem) {
final DatabaseConnection databaseConnection = (DatabaseConnection) connection;
CDCConnection cdcConn = databaseConnection.getCdcConns();
if (cdcConn != null) {
EList cdcTypes = cdcConn.getCdcTypes();
if (cdcTypes != null && !cdcTypes.isEmpty()) {
CDCType cdcType = (CDCType) cdcTypes.get(0);
// replace property by CDC property.
propertyId = cdcType.getLinkDB();
try {
IRepositoryViewObject object = ProxyRepositoryFactory.getInstance().getLastVersion(propertyId);
if (object != null) {
if (object.getProperty().getItem() instanceof DatabaseConnectionItem) {
DatabaseConnectionItem dbConnItem = (DatabaseConnectionItem) object.getProperty().getItem();
// replace connection by CDC connection
connectionItem = dbConnItem;
connection = dbConnItem.getConnection();
}
}
} catch (PersistenceException e) {
ExceptionHandler.process(e);
}
// set cdc type mode.
IElementParameter logModeParam = node.getElementParameter(EParameterName.CDC_TYPE_MODE.getName());
if (logModeParam != null) {
String cdcTypeMode = ((DatabaseConnection) originalConnection).getCdcTypeMode();
Command logModeCmd = new PropertyChangeCommand(node, EParameterName.CDC_TYPE_MODE.getName(), CDCTypeMode.LOG_MODE.getName().equals(cdcTypeMode));
cc.add(logModeCmd);
}
// set lib for as400 so far.
//$NON-NLS-1$
final String name = "SOURCE_LIB";
IElementParameter libParam = node.getElementParameter(name);
if (libParam != null) {
Object propValue;
if (connection.isContextMode() && ContextParameterUtils.isContainContextParam(databaseConnection.getSID())) {
propValue = databaseConnection.getSID();
} else {
propValue = TalendTextUtils.addQuotes(databaseConnection.getSID());
}
Command libSettingCmd = new PropertyChangeCommand(node, name, propValue);
cc.add(libSettingCmd);
}
}
}
}
}
// fore EBCDIC, by cli
if ((connectionItem instanceof EbcdicConnectionItem) && PluginChecker.isEBCDICPluginLoaded()) {
// TDI-20505:integration the drag/drop for EBCDIC connection and EBCDIC metadataTable
IRepositoryViewObject object = selectedNode.getObject();
if (selectedNode.getObjectType() == ERepositoryObjectType.METADATA_FILE_EBCDIC) {
for (MetadataTable table : ConnectionHelper.getTables(originalConnection)) {
Command ebcdicCmd = new RepositoryChangeMetadataForEBCDICCommand(node, IEbcdicConstant.TABLE_SCHEMAS, table.getLabel(), ConvertionHelper.convert(table));
cc.add(ebcdicCmd);
}
}
if (selectedNode.getProperties(EProperties.CONTENT_TYPE) == ERepositoryObjectType.METADATA_CON_TABLE) {
MetadataTable table = null;
if (object instanceof MetadataTableRepositoryObject) {
table = ((MetadataTableRepositoryObject) object).getTable();
}
Command ebcdicCmd = new RepositoryChangeMetadataForEBCDICCommand(node, IEbcdicConstant.TABLE_SCHEMAS, table.getLabel(), ConvertionHelper.convert(table));
cc.add(ebcdicCmd);
}
}
// fore HL7, by gcui
if ((selectedNode.getObjectType() == ERepositoryObjectType.METADATA_FILE_HL7 && PluginChecker.isHL7PluginLoaded()) || (selectedNode.getParent() != null && selectedNode.getParent().getObjectType() == ERepositoryObjectType.METADATA_FILE_HL7 && PluginChecker.isHL7PluginLoaded())) {
if (originalConnection instanceof HL7ConnectionImpl) {
if (((HL7ConnectionImpl) originalConnection).getRoot() != null) {
List<Map<String, String>> mapList = new ArrayList<Map<String, String>>();
for (Object obj : ((HL7ConnectionImpl) originalConnection).getRoot()) {
if (obj instanceof HL7FileNode) {
Map<String, String> newMap = new HashMap<String, String>();
newMap.put(IHL7Constant.ATTRIBUTE, ((HL7FileNode) obj).getAttribute());
newMap.put(IHL7Constant.PATH, ((HL7FileNode) obj).getFilePath());
newMap.put(IHL7Constant.COLUMN, ((HL7FileNode) obj).getRelatedColumn());
newMap.put(IHL7Constant.ORDER, String.valueOf(((HL7FileNode) obj).getOrder()));
newMap.put(IHL7Constant.VALUE, ((HL7FileNode) obj).getDefaultValue());
newMap.put(IHL7Constant.REPEATABLE, String.valueOf(((HL7FileNode) obj).isRepeatable()));
mapList.add(newMap);
}
}
IExternalNode externalNode = ExternalUtilities.getExternalNodeReadyToOpen(node);
if (externalNode != null && externalNode.getElementParameter("ROOT") != null) {
//$NON-NLS-1$
//$NON-NLS-1$
externalNode.getElementParameter("ROOT").setValue(mapList);
}
String fileName = ((HL7ConnectionImpl) originalConnection).getOutputFilePath();
if (externalNode != null && externalNode.getElementParameter("FILENAME") != null && fileName != null) {
//$NON-NLS-1$
//$NON-NLS-1$
externalNode.getElementParameter("FILENAME").setValue(TalendTextUtils.addQuotes(fileName));
}
}
}
// fore HL7, by gcui
if (selectedNode.getObjectType() == ERepositoryObjectType.METADATA_FILE_HL7 && PluginChecker.isHL7PluginLoaded()) {
for (MetadataTable table : ConnectionHelper.getTablesWithOrders(originalConnection)) {
Command hl7Cmd = new RepositoryChangeMetadataForHL7Command(node, IHL7Constant.TABLE_SCHEMAS, table.getLabel(), ConvertionHelper.convert(table));
cc.add(hl7Cmd);
}
}
}
// for brms
if ((selectedNode.getObjectType() == ERepositoryObjectType.METADATA_FILE_BRMS && PluginChecker.isBRMSPluginLoaded()) || (selectedNode.getParent() != null && selectedNode.getParent().getObjectType() == ERepositoryObjectType.METADATA_FILE_BRMS && PluginChecker.isBRMSPluginLoaded())) {
if (originalConnection instanceof BRMSConnectionImpl) {
if (((BRMSConnectionImpl) originalConnection).getRoot() != null) {
List<Map<String, String>> rootList = new ArrayList<Map<String, String>>();
List<Map<String, String>> loopList = new ArrayList<Map<String, String>>();
List<Map<String, String>> groupList = new ArrayList<Map<String, String>>();
for (Object obj : ((BRMSConnectionImpl) originalConnection).getRoot()) {
if (obj instanceof XMLFileNode) {
Map<String, String> rootMap = new HashMap<String, String>();
//$NON-NLS-1$
rootMap.put("ATTRIBUTE", ((XMLFileNode) obj).getAttribute());
//$NON-NLS-1$
rootMap.put("PATH", ((XMLFileNode) obj).getXMLPath());
//$NON-NLS-1$
rootMap.put("COLUMN", ((XMLFileNode) obj).getRelatedColumn());
//$NON-NLS-1$
rootMap.put("ORDER", String.valueOf(((XMLFileNode) obj).getOrder()));
//$NON-NLS-1$
rootMap.put("VALUE", ((XMLFileNode) obj).getDefaultValue());
rootList.add(rootMap);
}
}
for (Object obj : ((BRMSConnectionImpl) originalConnection).getLoop()) {
if (obj instanceof XMLFileNode) {
Map<String, String> loopMap = new HashMap<String, String>();
//$NON-NLS-1$
loopMap.put("ATTRIBUTE", ((XMLFileNode) obj).getAttribute());
//$NON-NLS-1$
loopMap.put("PATH", ((XMLFileNode) obj).getXMLPath());
//$NON-NLS-1$
loopMap.put("COLUMN", ((XMLFileNode) obj).getRelatedColumn());
//$NON-NLS-1$
loopMap.put("ORDER", String.valueOf(((XMLFileNode) obj).getOrder()));
//$NON-NLS-1$
loopMap.put("VALUE", ((XMLFileNode) obj).getDefaultValue());
loopList.add(loopMap);
}
}
for (Object obj : ((BRMSConnectionImpl) originalConnection).getGroup()) {
if (obj instanceof XMLFileNode) {
Map<String, String> groupMap = new HashMap<String, String>();
//$NON-NLS-1$
groupMap.put("ATTRIBUTE", ((XMLFileNode) obj).getAttribute());
//$NON-NLS-1$
groupMap.put("PATH", ((XMLFileNode) obj).getXMLPath());
//$NON-NLS-1$
groupMap.put("COLUMN", ((XMLFileNode) obj).getRelatedColumn());
//$NON-NLS-1$
groupMap.put("ORDER", String.valueOf(((XMLFileNode) obj).getOrder()));
//$NON-NLS-1$
groupMap.put("VALUE", ((XMLFileNode) obj).getDefaultValue());
groupList.add(groupMap);
}
}
IExternalNode externalNode = ExternalUtilities.getExternalNodeReadyToOpen(node);
if (externalNode != null && externalNode.getElementParameter("ROOT") != null) {
//$NON-NLS-1$
//$NON-NLS-1$
externalNode.getElementParameter("ROOT").setValue(rootList);
}
if (externalNode != null && externalNode.getElementParameter("LOOP") != null) {
//$NON-NLS-1$
//$NON-NLS-1$
externalNode.getElementParameter("LOOP").setValue(loopList);
}
if (externalNode != null && externalNode.getElementParameter("GROUP") != null) {
//$NON-NLS-1$
//$NON-NLS-1$
externalNode.getElementParameter("GROUP").setValue(groupList);
}
}
}
}
IElementParameter propertyParam = node.getElementParameterFromField(EParameterFieldType.PROPERTY_TYPE);
if (propertyParam != null) {
propertyParam.getChildParameters().get(EParameterName.PROPERTY_TYPE.getName()).setValue(EmfComponent.REPOSITORY);
propertyParam.getChildParameters().get(EParameterName.REPOSITORY_PROPERTY_TYPE.getName()).setValue(propertyId);
}
IProxyRepositoryFactory factory = DesignerPlugin.getDefault().getProxyRepositoryFactory();
Map<String, IMetadataTable> repositoryTableMap = new HashMap<String, IMetadataTable>();
if (!originalConnection.isReadOnly()) {
for (Object tableObj : ConnectionHelper.getTables(originalConnection)) {
org.talend.core.model.metadata.builder.connection.MetadataTable table;
table = (org.talend.core.model.metadata.builder.connection.MetadataTable) tableObj;
if (factory.getStatus(originalConnectionItem) != ERepositoryStatus.DELETED) {
if (!factory.isDeleted(table)) {
String value = table.getId();
IMetadataTable newTable = ConvertionHelper.convert(table);
repositoryTableMap.put(value, newTable);
}
}
}
}
// DesignerPlugin.getDefault().getProxyRepositoryFactory().getLastVersion("")
if (propertyParam != null) {
// command used to set property type
IMetadataTable metadataTable = null;
// && selectedNode.getObjectType() == ERepositoryObjectType.METADATA_CON_TABLE) {
if (selectedNode.getObject() instanceof IMetadataTable) {
metadataTable = (IMetadataTable) selectedNode.getObject();
if (metadataTable != null && repositoryTableMap.get(metadataTable.getId()) != null) {
metadataTable = repositoryTableMap.get(metadataTable.getId());
}
}
// }
ChangeValuesFromRepository command1 = new ChangeValuesFromRepository(node, connection, metadataTable, propertyParam.getName() + ":" + EParameterName.REPOSITORY_PROPERTY_TYPE.getName(), propertyId, //$NON-NLS-1$
true);
command1.setMaps(repositoryTableMap);
if (selectedNode.getProperties(EProperties.CONTENT_TYPE) != ERepositoryObjectType.METADATA_CON_QUERY) {
command1.setGuessQuery(true);
}
setSAPSpecailValueForCommand(selectedNode, command1);
// for salesForce module
SalesforceModuleRepositoryObject sfObject = null;
if (selectedNode.getProperties(EProperties.CONTENT_TYPE) == ERepositoryObjectType.METADATA_SALESFORCE_MODULE) {
sfObject = (SalesforceModuleRepositoryObject) selectedNode.getObject();
} else if (selectedNode.getProperties(EProperties.CONTENT_TYPE) == ERepositoryObjectType.METADATA_CON_TABLE) {
IRepositoryViewObject object = selectedNode.getParent().getObject();
if (object instanceof SalesforceModuleRepositoryObject) {
sfObject = (SalesforceModuleRepositoryObject) object;
}
}
if (sfObject != null) {
ModelElement modelElement = sfObject.getModelElement();
if (modelElement instanceof SalesforceModuleUnit) {
command1.setSalesForceModuleUnit((SalesforceModuleUnit) modelElement);
}
}
cc.add(command1);
}
// command used to set metadata
getChangeMetadataCommand(cc, selectedNode, node, originalConnectionItem);
// command used to set query
if (selectedNode.getProperties(EProperties.CONTENT_TYPE) == ERepositoryObjectType.METADATA_CON_QUERY) {
IElementParameter queryParam = node.getElementParameterFromField(EParameterFieldType.QUERYSTORE_TYPE);
QueryRepositoryObject object = (QueryRepositoryObject) selectedNode.getObject();
Query query = object.getQuery();
//$NON-NLS-1$
String value = originalConnectionItem.getProperty().getId() + " - " + query.getLabel();
if (queryParam != null) {
RepositoryChangeQueryCommand command3 = new RepositoryChangeQueryCommand(node, query, queryParam.getName() + ":" + EParameterName.REPOSITORY_QUERYSTORE_TYPE.getName(), //$NON-NLS-1$
value);
cc.add(command3);
}
} else {
if (connection instanceof DatabaseConnection && hasQuery(node)) {
DatabaseConnection connection2 = (DatabaseConnection) connection;
String schema = connection2.getUiSchema();
String dbType = connection2.getDatabaseType();
QueryGuessCommand queryGuessCommand = null;
if (node.getMetadataList().size() == 0) {
queryGuessCommand = new QueryGuessCommand(node, null, schema, dbType);
} else {
// modified by hyWang for bug 7190
queryGuessCommand = new QueryGuessCommand(node, node.getMetadataList().get(0), schema, dbType, connection);
}
if (queryGuessCommand != null) {
cc.add(queryGuessCommand);
}
}
}
// context, moved to ChangeValuesFromRepository(bug 5198)
// ConnectionContextHelper.addContextForNodeParameter(node, connectionItem);
} else if (selectedNode.getObject().getProperty().getItem() instanceof ProcessItem) {
ProcessItem processItem = (ProcessItem) selectedNode.getObject().getProperty().getItem();
// command used to set job
String value = processItem.getProperty().getId();
PropertyChangeCommand command4 = new PropertyChangeCommand(node, EParameterName.PROCESS_TYPE_PROCESS.getName(), value);
cc.add(command4);
PropertyChangeCommand command5 = new PropertyChangeCommand(node, EParameterName.PROCESS_TYPE_CONTEXT.getName(), processItem.getProcess().getDefaultContext());
cc.add(command5);
} else if (selectedNode.getObject().getProperty().getItem() instanceof FileItem) {
// hywang add for 6484
if (selectedNode.getObject().getProperty().getItem() instanceof RulesItem) {
RulesItem rulesItem = (RulesItem) selectedNode.getObject().getProperty().getItem();
// String displayName = "Rules:" + rulesItem.getProperty().getLabel(); //$NON-NLS-N$
IElementParameter propertyParam = node.getElementParameterFromField(EParameterFieldType.PROPERTY_TYPE);
if (propertyParam != null) {
propertyParam.getChildParameters().get(EParameterName.PROPERTY_TYPE.getName()).setValue(EmfComponent.REPOSITORY);
// propertyParam.getChildParameters().get(EParameterName.REPOSITORY_PROPERTY_TYPE.getName())
// .setListItemsDisplayName(new String[] { displayName });
final String showId = rulesItem.getProperty().getId();
PropertyChangeCommand command6 = new PropertyChangeCommand(node, EParameterName.REPOSITORY_PROPERTY_TYPE.getName(), showId);
cc.add(command6);
}
}
} else if (selectedNode.getObject().getProperty().getItem() instanceof LinkRulesItem) {
LinkRulesItem linkItem = (LinkRulesItem) selectedNode.getObject().getProperty().getItem();
IElementParameter propertyParam = node.getElementParameterFromField(EParameterFieldType.PROPERTY_TYPE);
if (propertyParam != null) {
propertyParam.getChildParameters().get(EParameterName.PROPERTY_TYPE.getName()).setValue(EmfComponent.REPOSITORY);
// propertyParam.getChildParameters().get(EParameterName.REPOSITORY_PROPERTY_TYPE.getName())
// .setListItemsDisplayName(new String[] { displayName });
final String showId = linkItem.getProperty().getId();
PropertyChangeCommand command7 = new PropertyChangeCommand(node, EParameterName.REPOSITORY_PROPERTY_TYPE.getName(), showId);
cc.add(command7);
}
}
return null;
}
use of org.talend.core.repository.model.repositoryObject.MetadataTableRepositoryObject in project tdi-studio-se by Talend.
the class ComponentChooseDialog method getChangeMetadataCommand.
/**
* DOC bqian Comment method "getChangeMetadataCommand".
*
* @param selectedNode
* @param node
* @param list
* @param connectionItem
*/
private void getChangeMetadataCommand(CompoundCommand cc, RepositoryNode selectedNode, Node node, ConnectionItem connectionItem) {
if (selectedNode.getProperties(EProperties.CONTENT_TYPE) == ERepositoryObjectType.METADATA_CON_COLUMN) {
RepositoryNode columnParentNode = selectedNode.getParent().getParent();
if (columnParentNode != null) {
selectedNode = columnParentNode;
}
}
if (selectedNode.getProperties(EProperties.CONTENT_TYPE) == ERepositoryObjectType.METADATA_CON_TABLE || selectedNode.getProperties(EProperties.CONTENT_TYPE) == ERepositoryObjectType.METADATA_SAP_FUNCTION || selectedNode.getProperties(EProperties.CONTENT_TYPE) == ERepositoryObjectType.METADATA_SALESFORCE_MODULE) {
String etlSchema = null;
if (connectionItem.getConnection() instanceof DatabaseConnection) {
DatabaseConnection connection = (DatabaseConnection) connectionItem.getConnection();
if (connection instanceof DatabaseConnection) {
etlSchema = connection.getUiSchema();
}
if (!"".equals(etlSchema)) {
//$NON-NLS-1$
//$NON-NLS-1$
IElementParameter e = node.getElementParameter("ELT_SCHEMA_NAME");
if (e != null) {
if (connection.isContextMode() && ContextParameterUtils.isContainContextParam(etlSchema)) {
e.setValue(etlSchema);
} else {
e.setValue(TalendTextUtils.addQuotes(etlSchema));
}
}
// node.getElementParameter("ELT_SCHEMA_NAME").setValue("\"" + etlSchema + "\"");
}
}
IRepositoryViewObject object = selectedNode.getObject();
MetadataTable table = null;
if (object instanceof MetadataTableRepositoryObject) {
table = ((MetadataTableRepositoryObject) object).getTable();
} else if (object instanceof SalesforceModuleRepositoryObject) {
table = ((SalesforceModuleRepositoryObject) object).getDefaultTable();
IRepositoryViewObject obj = null;
if (selectedNode.getChildren() != null) {
for (IRepositoryNode repositoryNode : selectedNode.getChildren()) {
obj = repositoryNode.getObject();
if (obj instanceof MetadataTableRepositoryObject) {
table = ((MetadataTableRepositoryObject) obj).getTable();
break;
}
}
}
}
// for SAP
if (PluginChecker.isSAPWizardPluginLoaded() && connectionItem instanceof SAPConnectionItem) {
getSAPCommand(cc, object, connectionItem, table, node);
return;
}
if (table != null) {
//$NON-NLS-1$
String value = connectionItem.getProperty().getId() + " - " + table.getLabel();
IElementParameter schemaParam = node.getElementParameterFromField(EParameterFieldType.SCHEMA_TYPE);
if (schemaParam == null) {
schemaParam = node.getElementParameterFromField(EParameterFieldType.SCHEMA_REFERENCE);
}
IElementParameter queryParam = node.getElementParameterFromField(EParameterFieldType.QUERYSTORE_TYPE);
if (queryParam != null) {
queryParam = queryParam.getChildParameters().get(EParameterName.QUERYSTORE_TYPE.getName());
if (queryParam != null) {
queryParam.setValue(EmfComponent.BUILTIN);
}
}
// }
if (PluginChecker.isHL7PluginLoaded() && connectionItem instanceof HL7ConnectionItem) {
Command hl7Cmd = new RepositoryChangeMetadataForHL7Command(node, IEbcdicConstant.TABLE_SCHEMAS, table.getLabel(), ConvertionHelper.convert(table));
cc.add(hl7Cmd);
return;
}
if (schemaParam == null) {
return;
}
if (node.isELTComponent()) {
//$NON-NLS-1$
node.setPropertyValue(EParameterName.LABEL.getName(), "__ELT_TABLE_NAME__");
}
schemaParam.getChildParameters().get(EParameterName.SCHEMA_TYPE.getName()).setValue(EmfComponent.REPOSITORY);
RepositoryChangeMetadataCommand command2 = new RepositoryChangeMetadataCommand(node, //$NON-NLS-1$
schemaParam.getName() + ":" + EParameterName.REPOSITORY_SCHEMA_TYPE.getName(), value, ConvertionHelper.convert(table), null, connectionItem.getConnection());
cc.add(command2);
return;
}
}
}
use of org.talend.core.repository.model.repositoryObject.MetadataTableRepositoryObject in project tdi-studio-se by Talend.
the class GenericDragAndDropHandler method isValid.
private boolean isValid(RepositoryNode seletetedNode, IComponent component) {
// TUP-4151
IRepositoryViewObject object = seletetedNode.getObject();
if (component == null || object == null) {
return false;
}
ComponentProperties currentComponentProperties = null;
if (object instanceof RepositoryViewObject) {
RepositoryViewObject repositoryViewObj = (RepositoryViewObject) object;
Connection connection = ((ConnectionItem) repositoryViewObj.getProperty().getItem()).getConnection();
if (canHandle(connection)) {
GenericConnection genericConnection = (GenericConnection) connection;
currentComponentProperties = ComponentsUtils.getComponentPropertiesFromSerialized(genericConnection.getCompProperties(), connection);
}
} else if (object instanceof MetadataTableRepositoryObject) {
MetadataTableRepositoryObject metaTableRepObj = (MetadataTableRepositoryObject) object;
currentComponentProperties = SchemaUtils.getCurrentComponentProperties(metaTableRepObj);
} else if (object instanceof MetadataColumnRepositoryObject) {
MetadataColumnRepositoryObject metaColumnRepObj = (MetadataColumnRepositoryObject) object;
ModelElement element = metaColumnRepObj.getTdColumn();
if (element != null && element.eContainer() instanceof MetadataTable) {
MetadataTable metadataTable = (MetadataTable) element.eContainer();
IMetadataTable newTable = MetadataToolHelper.convert(metadataTable);
currentComponentProperties = SchemaUtils.getCurrentComponentProperties(newTable);
}
}
if (currentComponentProperties != null) {
try {
List<ComponentDefinition> possibleComponents = ComponentsUtils.getComponentService().getPossibleComponents(currentComponentProperties);
if (component instanceof Component) {
ComponentDefinition componentDefinition = ((Component) component).getComponentDefinition();
return possibleComponents.contains(componentDefinition);
}
} catch (Throwable e) {
e.printStackTrace();
}
}
return false;
}
use of org.talend.core.repository.model.repositoryObject.MetadataTableRepositoryObject in project tdi-studio-se by Talend.
the class SchemaNodeTester method findParentItemType.
@Override
public ERepositoryObjectType findParentItemType(RepositoryNode repositoryNode) {
final ERepositoryObjectType objectType = repositoryNode.getObjectType();
if (objectType == ERepositoryObjectType.METADATA_CON_TABLE) {
final IRepositoryViewObject object = repositoryNode.getObject();
if (object != null && object instanceof MetadataTableRepositoryObject) {
final MetadataTableRepositoryObject tableObj = (MetadataTableRepositoryObject) object;
final IRepositoryViewObject itemObj = tableObj.getViewObject();
if (itemObj != null) {
return itemObj.getRepositoryObjectType();
}
}
}
return null;
}
Aggregations