/* * 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.schema.tools.model.schema; import java.util.List; import org.eclipse.xsd.XSDComplexTypeContent; import org.eclipse.xsd.XSDSchema; import org.eclipse.xsd.XSDSimpleTypeDefinition; import org.eclipse.xsd.XSDTypeDefinition; import org.teiid.designer.schema.tools.processing.RelationshipProcessor; /** * @since 8.0 */ public interface SchemaObject { public abstract SchemaObject copy(ISchemaModelCopyTraversalContext ctx); @Override public abstract boolean equals(Object obj); public abstract void addAttribute(Column col); public abstract String getSimpleName(); public abstract XSDTypeDefinition getType(); // for debugging only public abstract String getElementTypeNamespace(); public abstract String getName(); public abstract String getNamespace(); public abstract void addParent(SchemaObject parent, int minOccurs, int maxOccurs); public abstract List getParents(); public abstract List getChildren(); public abstract boolean isCanBeRoot(); public abstract List getAttributes(); @Override public abstract String toString(); public abstract void setMustBeQualified(); public abstract void setFileName(String fileName); public abstract String getFileName(); public abstract boolean isWithinSelectedHierarchy(); public abstract void setWithinSelectedHierarchy(boolean under); public abstract void setAllParentRepresentations(int representation, RelationshipProcessor processor); public abstract boolean isUseAsRoot(); public abstract void setUseAsRoot(boolean useAsRoot); public abstract RootElement getRootRepresentation(); public abstract boolean isSimpleElement(RelationshipProcessor processor); public abstract boolean representAsTable(); public abstract void setRepresentAsTable(boolean table); public abstract String getInputXPath(); public abstract String getOutputXPath(); public abstract String getRelativeXpath(); public abstract String recursiveGetXpath(); public abstract String getCatalog(); public abstract int getMinOccurs(); public abstract int getMaxOccurs(); public abstract List getAllModelColumns(); public abstract SchemaObjectKey getKey(); public abstract void cascadeRootSelection(boolean b); public abstract XSDSchema getSchema(); public abstract boolean hasComplexTypeDefinition(); public abstract boolean hasSimpleTypeDefinition(); public abstract List getAttributeList(); public abstract XSDComplexTypeContent getContent(); public abstract XSDSimpleTypeDefinition getTextType(); }