/*
* 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.core.types;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.xsd.XSDAnnotation;
import org.eclipse.xsd.XSDSimpleTypeDefinition;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.teiid.core.designer.id.IDGenerator;
import org.teiid.core.designer.id.InvalidIDException;
import org.teiid.core.designer.id.ObjectID;
import org.teiid.designer.core.container.Container;
import org.teiid.designer.core.types.EnterpriseDatatypeInfo;
/**
* FakeDatatypeManager
*/
public class FakeDatatypeManager implements DatatypeManager {
/**
* Construct an instance of FakeDatatypeManager.
*/
public FakeDatatypeManager() {
super();
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getBuiltInTypeManager()
* @since 4.3
*/
@Override
public DatatypeManager getBuiltInTypeManager() {
return null;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#setParentDatatypeManagerToBuiltInManager()
*/
public void setParentDatatypeManagerToBuiltInManager() {
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#setParentDatatypeManager(org.teiid.designer.core.types.DatatypeManager)
*/
public void setParentDatatypeManager( DatatypeManager parentMgr ) {
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#isSimpleDatatype(org.eclipse.emf.ecore.EObject)
*/
@Override
public boolean isSimpleDatatype( EObject type ) {
return type instanceof XSDSimpleTypeDefinition;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getUUID(org.eclipse.emf.ecore.EObject)
*/
@Override
public ObjectID getUuid( EObject type ) {
if (type instanceof XSDSimpleTypeDefinition) {
XSDAnnotation annotation = ((XSDSimpleTypeDefinition)type).getAnnotation();
if (annotation == null) {
return null;
}
final Iterator appInfos = annotation.getApplicationInformation().iterator();
while (appInfos.hasNext()) {
final Element appInfo = (Element)appInfos.next();
final String uuid = appInfo.getAttribute("UUID"); //$NON-NLS-1$
if (uuid != null && uuid.trim().length() > 0) {
try {
return IDGenerator.getInstance().stringToObject(uuid);
} catch (InvalidIDException e) {
return null;
}
}
return null;
}
}
return null;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getUUID(org.eclipse.emf.ecore.EObject)
*/
@Override
public String getUuidString( EObject type ) {
if (type instanceof XSDSimpleTypeDefinition) {
XSDAnnotation annotation = ((XSDSimpleTypeDefinition)type).getAnnotation();
if (annotation == null) {
return null;
}
final Iterator appInfos = annotation.getApplicationInformation().iterator();
while (appInfos.hasNext()) {
final Element appInfo = (Element)appInfos.next();
final String uuid = appInfo.getAttribute("UUID"); //$NON-NLS-1$
if (uuid != null && uuid.trim().length() > 0) {
return uuid;
}
}
return null;
}
return null;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getEnterpriseExtensionsMap(org.eclipse.emf.ecore.EObject)
*/
@Override
public Map getEnterpriseExtensionsMap( EObject type ) {
Map result = Collections.EMPTY_MAP;
if (type instanceof XSDSimpleTypeDefinition) {
// Get the annotation for the type
XSDAnnotation annotation = ((XSDSimpleTypeDefinition)type).getAnnotation();
if (annotation == null) {
return null;
}
// Iterator over the appInfos and add any attributes to the result collection
result = new HashMap();
final Iterator appInfos = annotation.getApplicationInformation().iterator();
while (appInfos.hasNext()) {
final Element appInfo = (Element)appInfos.next();
if (appInfo.getAttributes() != null && appInfo.getAttributes().getLength() > 0) {
final int length = appInfo.getAttributes().getLength();
final NamedNodeMap map = appInfo.getAttributes();
for (int i = 0; i < length; i++) {
final Node mapNode = map.item(i);
if (mapNode != null) {
result.put(mapNode.getNodeName(), mapNode.getNodeValue());
}
}
}
}
}
return result;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getName(org.eclipse.emf.ecore.EObject)
*/
@Override
public String getName( EObject type ) {
if (type instanceof XSDSimpleTypeDefinition) {
return ((XSDSimpleTypeDefinition)type).getName();
}
return null;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getAnySimpleType()
*/
@Override
public EObject getAnySimpleType() {
return null;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getAnyType()
*/
@Override
public EObject getAnyType() {
return null;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getAllDatatypes()
*/
@Override
public EObject[] getAllDatatypes() {
return null;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getAllowableBaseTypeValues(org.eclipse.emf.ecore.EObject)
*/
@Override
public EObject[] getAllowableBaseTypeValues( EObject datatype ) {
return null;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getAllowableItemTypeValues(org.eclipse.emf.ecore.EObject)
*/
@Override
public EObject[] getAllowableItemTypeValues( EObject datatype ) {
return null;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getAllowableMemberTypeValues(org.eclipse.emf.ecore.EObject)
*/
@Override
public EObject[] getAllowableMemberTypeValues( EObject datatype ) {
return null;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getAllowableTypeValues(org.eclipse.emf.ecore.EObject,
* org.eclipse.emf.ecore.EStructuralFeature)
*/
@Override
public EObject[] getAllowableTypeValues( EObject datatype,
EStructuralFeature feature ) {
return null;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getDefaultDatatypeForRuntimeTypeName(java.lang.String)
*/
@Override
public EObject getDefaultDatatypeForRuntimeTypeName( String runtimeTypeName ) {
return null;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getBuiltInDatatype(java.lang.String)
*/
@Override
public EObject getBuiltInDatatype( String name ) {
return null;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#isBuiltInDatatype(org.eclipse.emf.ecore.EObject)
*/
@Override
public boolean isBuiltInDatatype( EObject datatype ) {
return false;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#findDatatype(java.lang.String)
*/
@Override
public EObject findDatatype( String id ) {
return null;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getDatatypeForXsdType(org.eclipse.emf.ecore.EObject)
*/
@Override
public EObject getDatatypeForXsdType( EObject xsdType ) {
return null;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getRuntimeTypeJavaClassName(java.lang.String)
*/
@Override
public String getRuntimeTypeJavaClassName( String id ) {
return null;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getRuntimeTypeName(java.lang.String)
*/
@Override
public String getRuntimeTypeName( String id ) {
return null;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getRuntimeTypeName(org.eclipse.emf.ecore.EObject)
*/
@Override
public String getRuntimeTypeName( EObject datatype ) {
return null;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getBaseType(org.eclipse.emf.ecore.EObject)
*/
@Override
public EObject getBaseType( EObject datatype ) {
return null;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getSubtypes(org.eclipse.emf.ecore.EObject)
*/
@Override
public EObject[] getSubtypes( EObject datatype ) {
return null;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getBuiltInPrimitiveTypes()
*/
@Override
public EObject[] getBuiltInPrimitiveTypes() {
return null;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getBuiltInPrimitiveType(org.eclipse.emf.ecore.EObject)
*/
@Override
public EObject getBuiltInPrimitiveType( EObject type ) {
return null;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#isBinary(org.eclipse.emf.ecore.EObject)
*/
@Override
public boolean isBinary( EObject type ) {
return false;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#isCharacter(org.eclipse.emf.ecore.EObject)
*/
@Override
public boolean isCharacter( EObject type ) {
return false;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#isNumeric(org.eclipse.emf.ecore.EObject)
*/
@Override
public boolean isNumeric( EObject type ) {
return false;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#isNumeric(org.eclipse.emf.ecore.EObject)
*/
@Override
public boolean isEnumeration( EObject type ) {
return false;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#isBounded(org.eclipse.emf.ecore.EObject)
*/
@Override
public boolean isBounded( EObject type ) {
return false;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getDescription(org.eclipse.emf.ecore.EObject)
*/
@Override
public String getDescription( EObject type ) {
return ""; //$NON-NLS-1$
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getContainer()
* @since 4.2
*/
@Override
public ResourceSet getContainer() {
return null;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#setContainer(org.teiid.designer.core.container.Container)
* @since 4.2
*/
public void setContainer( Container container ) {
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getBuiltInDatatypes()
* @since 4.3
*/
@Override
public EObject[] getBuiltInDatatypes() {
return null;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#isEnterpriseDatatype(org.eclipse.emf.ecore.EObject)
* @since 4.3
*/
@Override
public boolean isEnterpriseDatatype( EObject simpleType ) {
return false;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getEnterpriseDatatypeInfo(org.eclipse.xsd.XSDSimpleTypeDefinition)
* @since 4.3
*/
@Override
public EnterpriseDatatypeInfo getEnterpriseDatatypeInfo( XSDSimpleTypeDefinition simpleType ) {
return null;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getRuntimeTypeFixed(org.eclipse.emf.ecore.EObject)
* @since 4.3
*/
@Override
public Boolean getRuntimeTypeFixed( EObject datatype ) {
return null;
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#setBasetypeDefinition(org.eclipse.xsd.XSDSimpleTypeDefinition,
* org.eclipse.xsd.XSDSimpleTypeDefinition)
* @since 4.3
*/
@Override
public void setBasetypeDefinition( XSDSimpleTypeDefinition simpleType,
XSDSimpleTypeDefinition baseType ) {
}
/**
* @see org.teiid.designer.core.types.DatatypeManager#getTypeHierarchy(org.eclipse.emf.ecore.EObject)
* @since 4.3
*/
@Override
public EObject[] getTypeHierarchy( EObject type ) {
return new EObject[] {type};
}
}