/* * 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.compare.selector; import java.util.ArrayList; import java.util.List; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EObject; import org.teiid.designer.core.util.ModelContents; import org.teiid.designer.metamodels.core.Annotation; import org.teiid.designer.metamodels.core.CoreFactory; import org.teiid.designer.metamodels.core.ModelAnnotation; /** * @since 8.0 */ public class NullModelSelector implements ModelSelector { public static final String DEFAULT_URI = "http://default.model.selector"; //$NON-NLS-1$ private String label; final List rootObjects; private final URI uri; private final ModelAnnotation modelAnnotation; private final ModelHelper modelHelper = new ModelHelper() { @Override public Annotation getAnnotation( EObject eObject ) { return null; } }; private final ModelContents contents = new CustomModelContents(); /** * Construct an instance of NullModelSelector. */ public NullModelSelector() { this(DEFAULT_URI); } /** * Construct an instance of NullModelSelector. */ public NullModelSelector( final String uri ) { super(); this.rootObjects = new ArrayList(); this.uri = URI.createURI(uri); this.modelAnnotation = CoreFactory.eINSTANCE.createModelAnnotation(); } /** * @see org.teiid.designer.compare.selector.ModelSelector#open() */ @Override public void open() { } /** * @see org.teiid.designer.compare.selector.ModelSelector#close() */ @Override public void close() { } /** * @see org.teiid.designer.compare.selector.ModelSelector#getLabel() */ @Override public String getLabel() { return this.label; } /** * @see org.teiid.designer.compare.selector.ModelSelector#setLabel(java.lang.String) */ @Override public void setLabel( final String label ) { this.label = label; } /** * @see org.teiid.designer.compare.selector.ModelSelector#getRootObjects() */ @Override public List getRootObjects() { return this.rootObjects; } /** * @see org.teiid.designer.compare.selector.ModelSelector#getUri() */ @Override public URI getUri() { return this.uri; } /** * @see org.teiid.designer.compare.selector.ModelSelector#getModelAnnotation() */ @Override public ModelAnnotation getModelAnnotation() { return this.modelAnnotation; } /** * @see org.teiid.designer.compare.selector.ModelSelector#getModelHelper() */ @Override public ModelHelper getModelHelper() { return this.modelHelper; } /** * @see org.teiid.designer.compare.selector.ModelSelector#getModelContents() */ @Override public ModelContents getModelContents() { return this.contents; } /** * @see org.teiid.designer.compare.selector.ModelSelector#addRootObjects(java.util.List) */ @Override public void addRootObjects( List newRoots ) { this.rootObjects.addAll(newRoots); } /** * @see org.teiid.designer.compare.selector.ModelSelector#addRootObjects(java.util.List, int) */ @Override public void addRootObjects( List newRoots, int startingIndex ) { this.rootObjects.addAll(startingIndex, newRoots); } /** * @see org.teiid.designer.compare.selector.ModelSelector#rebuildModelImports() */ @Override public void rebuildModelImports() { // do nothing } protected class CustomModelContents extends ModelContents { public CustomModelContents() { super(); } @Override public List getAllRootEObjects() { return NullModelSelector.this.rootObjects; } @Override protected URI getUri() { return NullModelSelector.this.getUri(); } @Override protected void setModified( boolean modified ) { // do nothing } } }