/* * 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.index; import java.util.List; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.resource.Resource; import org.teiid.core.designer.util.CoreArgCheck; import org.teiid.designer.core.search.runtime.SearchRuntimeAdapter; import org.teiid.designer.core.util.ModelVisitor; /** * @since 8.0 */ public class ModelSearchIndexerVisitor implements ModelVisitor { final String modelPath; final List wordEntries; /** * @param modelPath * @param wordEntries * @since 4.2 */ public ModelSearchIndexerVisitor( final String modelPath, final List wordEntries ) { super(); this.modelPath = modelPath; this.wordEntries = wordEntries; } /** * @see org.teiid.designer.core.util.ModelVisitor#visit(org.eclipse.emf.ecore.EObject) * @since 4.2 */ @Override public boolean visit( final EObject object ) { if (object == null) { return false; } this.addIndexWord(object, modelPath, wordEntries); return true; } /** * @see org.teiid.designer.core.util.ModelVisitor#visit(org.eclipse.emf.ecore.resource.Resource) * @since 4.2 */ @Override public boolean visit( final Resource resource ) { if (resource == null) { return false; } return true; } /** * Create a {@link WordEntry} instance representing a EObject within a resource. This * resulting WordEntry is of the form: uuid|metamodelURI#EClass|modelPath| * * @see org.teiid.designer.core.index.ModelIndexer#addIndexWord(org.eclipse.emf.ecore.EObject, java.lang.String, * java.util.List) */ protected void addIndexWord( final EObject eObject, final String modelPath, final List wordEntries ) { CoreArgCheck.isNotNull(eObject); CoreArgCheck.isNotNull(wordEntries); // add all search words for the EObject SearchRuntimeAdapter.addObjectSearchWords(eObject, modelPath, wordEntries); } }