@Override public Object getElementID(String elementName) throws TeiidComponentException, QueryMetadataException { try { return super.getElementID(elementName); } catch (QueryMetadataException e) { //could be pseudo-column int index = elementName.lastIndexOf('.'); if(index <= 0 || elementName.length() <= index) { throw e; } String group = elementName.substring(0, index); elementName = elementName.substring(index + 1, elementName.length()); MultiSourceGroup msg = getMultiSourceGroup(getGroupID(group)); if (msg != null && elementName.equalsIgnoreCase(getName(msg.multiSourceElement))) { return msg.multiSourceElement; } throw e; } }
MultiSourceMetadataWrapper wrapper = new MultiSourceMetadataWrapper(RealMetadataFactory.exampleBQTCached(), multiSourceModels); Object groupID = wrapper.getGroupID("BQT1.SmallA"); //$NON-NLS-1$ List<?> elements = wrapper.getElementIDsInGroupID(groupID); assertEquals(18, elements.size());
@Override public Object getElementID(String elementName) throws TeiidComponentException, QueryMetadataException { try { return super.getElementID(elementName); } catch (QueryMetadataException e) { //could be pseudo-column int index = elementName.lastIndexOf('.'); if(index <= 0 || elementName.length() <= index) { throw e; } String group = elementName.substring(0, index); elementName = elementName.substring(index + 1, elementName.length()); MultiSourceGroup msg = getMultiSourceGroup(getGroupID(group)); if (msg != null && elementName.equalsIgnoreCase(getName(msg.multiSourceElement))) { return msg.multiSourceElement; } throw e; } }
@Override public Object getElementID(String elementName) throws TeiidComponentException, QueryMetadataException { try { return super.getElementID(elementName); } catch (QueryMetadataException e) { //could be pseudo-column int index = elementName.lastIndexOf('.'); if(index <= 0 || elementName.length() <= index) { throw e; } String group = elementName.substring(0, index); elementName = elementName.substring(index + 1, elementName.length()); MultiSourceGroup msg = getMultiSourceGroup(getGroupID(group)); if (msg != null && elementName.equalsIgnoreCase(getName(msg.multiSourceElement))) { return msg.multiSourceElement; } throw e; } }