Search in sources :

Example 1 with MdmConceptType

use of org.talend.core.model.metadata.builder.connection.MdmConceptType in project tdi-studio-se by Talend.

the class TalendDndHelper method filterNeededComponents.

public static List<IComponent> filterNeededComponents(Item item, RepositoryNode seletetedNode, ERepositoryObjectType type) {
    EDatabaseComponentName name = EDatabaseComponentName.getCorrespondingComponentName(item, type);
    List<IComponent> neededComponents = new ArrayList<IComponent>();
    if (name == null) {
        return neededComponents;
    }
    String productNameWanted = filterProductNameWanted(name, item);
    boolean hl7Related = false;
    boolean hl7Output = false;
    if (item instanceof HL7ConnectionItem) {
        hl7Related = true;
        EList list = ((HL7Connection) ((HL7ConnectionItem) item).getConnection()).getRoot();
        if (list != null && list.size() > 0) {
            hl7Output = true;
        }
    }
    // for mdm
    MdmConceptType mdmType = null;
    if (item instanceof MDMConnectionItem) {
        MDMConnectionItem mdmItem = (MDMConnectionItem) item;
        if (seletetedNode != null && seletetedNode.getObject() instanceof MetadataTableRepositoryObject) {
            MetadataTableRepositoryObject object = (MetadataTableRepositoryObject) seletetedNode.getObject();
            if (mdmItem.getConnection() instanceof MDMConnection) {
                MDMConnection connection = (MDMConnection) mdmItem.getConnection();
                for (Object obj : connection.getSchemas()) {
                    if (obj instanceof Concept && object.getLabel().equals(((Concept) obj).getLabel())) {
                        mdmType = ((Concept) obj).getConceptType();
                    }
                }
            }
        }
    }
    Set<IComponent> components = ComponentsFactoryProvider.getInstance().getComponents();
    EmfComponent emfComponent = null;
    for (IComponent component : components) {
        if (component instanceof EmfComponent) {
            emfComponent = (EmfComponent) component;
            String componentProductname = emfComponent.getRepositoryType();
            boolean value = true;
            if (type == ERepositoryObjectType.METADATA_CON_TABLE) {
                if (emfComponent.getName().toUpperCase().endsWith(MAP)) {
                    value = false;
                }
            }
            if (hl7Output && !component.getName().equals("tHL7Output")) {
                //$NON-NLS-1$
                value = false;
            } else if (hl7Related && !hl7Output && !component.getName().equals("tHL7Input")) {
                //$NON-NLS-N$ bug15632
                value = false;
            }
            boolean flag = filterComponent(component, name, type);
            if (((componentProductname != null && productNameWanted.endsWith(componentProductname)) && value) || flag) {
                Pattern pattern = Pattern.compile("^.*oracle.*$", Pattern.CASE_INSENSITIVE);
                if (pattern.matcher(name.getDBType()).matches() && (emfComponent.getName().equals("tAmazonOracleInput") || emfComponent.getName().equals("tAmazonOracleOutput"))) {
                    continue;
                }
                if (item instanceof MDMConnectionItem) {
                    if (MdmConceptType.INPUT.equals(mdmType) && emfComponent.getName().endsWith(INPUT)) {
                        neededComponents.add(emfComponent);
                    } else if (MdmConceptType.OUTPUT.equals(mdmType) && emfComponent.getName().endsWith(OUTPUT)) {
                        neededComponents.add(emfComponent);
                    } else if (MdmConceptType.RECEIVE.equals(mdmType) && emfComponent.getName().endsWith(RECEIVE)) {
                        neededComponents.add(emfComponent);
                    }
                } else {
                    neededComponents.add(emfComponent);
                }
            }
        }
    }
    return sortFilteredComponnents(item, seletetedNode, type, neededComponents);
}
Also used : Concept(org.talend.core.model.metadata.builder.connection.Concept) Pattern(java.util.regex.Pattern) IComponent(org.talend.core.model.components.IComponent) ArrayList(java.util.ArrayList) MDMConnectionItem(org.talend.core.model.properties.MDMConnectionItem) HL7ConnectionItem(org.talend.core.model.properties.HL7ConnectionItem) MDMConnection(org.talend.core.model.metadata.builder.connection.MDMConnection) MetadataTableRepositoryObject(org.talend.core.repository.model.repositoryObject.MetadataTableRepositoryObject) EList(org.eclipse.emf.common.util.EList) MdmConceptType(org.talend.core.model.metadata.builder.connection.MdmConceptType) MetadataTableRepositoryObject(org.talend.core.repository.model.repositoryObject.MetadataTableRepositoryObject) EmfComponent(org.talend.designer.core.model.components.EmfComponent) HL7Connection(org.talend.core.model.metadata.builder.connection.HL7Connection)

Aggregations

ArrayList (java.util.ArrayList)1 Pattern (java.util.regex.Pattern)1 EList (org.eclipse.emf.common.util.EList)1 IComponent (org.talend.core.model.components.IComponent)1 Concept (org.talend.core.model.metadata.builder.connection.Concept)1 HL7Connection (org.talend.core.model.metadata.builder.connection.HL7Connection)1 MDMConnection (org.talend.core.model.metadata.builder.connection.MDMConnection)1 MdmConceptType (org.talend.core.model.metadata.builder.connection.MdmConceptType)1 HL7ConnectionItem (org.talend.core.model.properties.HL7ConnectionItem)1 MDMConnectionItem (org.talend.core.model.properties.MDMConnectionItem)1 MetadataTableRepositoryObject (org.talend.core.repository.model.repositoryObject.MetadataTableRepositoryObject)1 EmfComponent (org.talend.designer.core.model.components.EmfComponent)1