/* * 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.modelgenerator.processor; import java.util.Collections; import java.util.LinkedList; import java.util.List; import org.eclipse.core.runtime.CoreException; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EObject; import org.teiid.designer.core.ModelerCore; import org.teiid.designer.core.types.DatatypeManager; /** * BuiltInDatatypeFinder * * @since 8.0 */ public class BuiltInDatatypeFinder implements DatatypeFinder { public static final BuiltInDatatypeFinder INSTANCE = new BuiltInDatatypeFinder(); /** * Construct an instance of BuiltInDatatypeFinder. * */ public BuiltInDatatypeFinder() { super(); } /** * @see DatatypeFinder#findDatatype(java.lang.String) */ @Override public EObject findDatatype(final String name) throws CoreException { final DatatypeManager dtMgr = ModelerCore.getWorkspaceDatatypeManager(); // only care about built-ins! if ( name == null ) { return dtMgr.getAnySimpleType(); } final EObject datatype = dtMgr.getBuiltInDatatype(name); return datatype; } /** * @see DatatypeFinder#findDatatype(org.eclipse.emf.common.util.URI) */ @Override public EObject findDatatype(final URI uri) throws CoreException { final DatatypeManager dtMgr = ModelerCore.getWorkspaceDatatypeManager(); // only care about built-ins! if ( uri == null ) { return dtMgr.getAnySimpleType(); } final EObject datatype = dtMgr.findDatatype(uri.toString()); return datatype; } /** * @see DatatypeFinder#findAllDatatypes(java.lang.String) */ @Override public List findAllDatatypes(final String name) throws CoreException { final EObject datatype = findDatatype(name); if ( datatype != null ) { final List result = new LinkedList(); result.add(datatype); return result; } return Collections.EMPTY_LIST; } /** * @see DatatypeFinder#findAllDatatypes(org.eclipse.emf.common.util.URI) */ @Override public List findAllDatatypes(final URI uri) throws CoreException { final EObject datatype = findDatatype(uri); if ( datatype != null ) { final List result = new LinkedList(); result.add(datatype); return result; } return Collections.EMPTY_LIST; } }