/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.mapping.ui.recursion;
import org.eclipse.emf.ecore.EObject;
import org.teiid.designer.mapping.ui.PluginConstants;
import org.teiid.designer.mapping.ui.UiConstants;
import org.teiid.designer.metadata.runtime.MetadataRecord;
import org.teiid.designer.metamodels.transformation.MappingClassColumn;
import org.teiid.designer.query.sql.lang.ILanguageObject;
import org.teiid.designer.query.sql.symbol.IElementSymbol;
import org.teiid.designer.transformation.util.TransformationHelper;
import org.teiid.query.ui.builder.util.CriteriaStrategy;
/**
* ChoiceCriteriaStrategy
*
* @since 8.0
*/
public class RecursionCriteriaStrategy
extends CriteriaStrategy
implements PluginConstants,
UiConstants {
public static final String EMPTY_STRING = ""; //$NON-NLS-1$
// =======================================================
// CONSTRUCTORS
// =======================================================
public RecursionCriteriaStrategy() {
}
// =======================================================
// METHODS
// =======================================================
/* (non-Javadoc)
* @see org.teiid.query.ui.builder.util.ICriteriaStrategy#getNode(org.teiid.query.sql.LanguageObject)
*/
@Override
public Object getNode( ILanguageObject theLangObj ) {
Object result = null;
if (isValid(theLangObj)) {
if (theLangObj instanceof IElementSymbol) {
Object obj = ((IElementSymbol)theLangObj).getMetadataID();
if (obj != null) {
if (obj instanceof MetadataRecord) {
result = ((MetadataRecord)obj).getEObject();
} else if (obj instanceof EObject) {
result = obj;
}
}
}
}
return result;
}
@Override
public boolean isValid( Object o ) {
return super.isValid( o );
}
@Override
public String getRuntimeFullName( Object o ) {
// System.out.println("[ChoiceCriteriaStrategy.getRuntimeFullName] TOP"); //$NON-NLS-1$
if( !(o instanceof MappingClassColumn) ) {
// System.out.println("[ChoiceCriteriaStrategy.getRuntimeFullName] NOT a MappingClassColumn: " + o.getClass().getName() ); //$NON-NLS-1$
return EMPTY_STRING;
}
String sResult = EMPTY_STRING;
MappingClassColumn mccColumn = (MappingClassColumn)o;
sResult = TransformationHelper.getSqlEObjectFullName( mccColumn );
return sResult;
}
}