package org.teiid.designer.modelgenerator.xsd.procedures;
import javax.xml.namespace.QName;
import org.teiid.designer.core.ModelerCore;
import org.teiid.designer.core.types.DatatypeManager;
import org.teiid.designer.metamodels.relational.RelationalFactory;
/**
* @since 8.0
*/
public class BaseTraversalContext {
protected RelationalFactory factory = org.teiid.designer.metamodels.relational.RelationalPackage.eINSTANCE
.getRelationalFactory();
protected DatatypeManager datatypeManager = ModelerCore.getBuiltInTypesManager();
protected StringBuffer elementPath = new StringBuffer();
protected String procedureName;
protected ProcedureBuilder builder;
private boolean reachedResultNode = false;
protected QName namespace;
public BaseTraversalContext(String procedureName, QName namespace,
TraversalContext ctx, ProcedureBuilder builder) {
this.procedureName = procedureName;
this.namespace = namespace;
this.builder = builder;
this.elementPath = new StringBuffer(ctx.getPath());
}
public BaseTraversalContext(String procedureName, QName namespace,
ProcedureBuilder builder) {
this.procedureName = procedureName;
this.namespace = namespace;
this.builder = builder;
}
/* (non-Javadoc)
* @See org.teiid.designer.modelgenerator.wsdl.TraversalContext#isReachedResultNode()
*/
public boolean isReachedResultNode() {
return reachedResultNode;
}
/* (non-Javadoc)
* @See org.teiid.designer.modelgenerator.wsdl.TraversalContext#setReachedResultNode(boolean)
*/
public void setReachedResultNode(boolean reachedResultNode) {
this.reachedResultNode = reachedResultNode;
}
/* (non-Javadoc)
* @See org.teiid.designer.modelgenerator.wsdl.TraversalContext#appendToPath(java.lang.String)
*/
public void appendToPath(String path) {
elementPath.append('/').append(path);
}
public String getPath() {
String result = elementPath.toString();
if(null == result || result.isEmpty()) {
result = "/"; //$NON-NLS-1$
}
return result;
}
public QName getNamespace() {
return namespace;
}
public void setNamespace(QName namespace) {
this.namespace = namespace;
}
}