| /******************************************************************************* |
| * Copyright (c) 2010 Oracle Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Oracle Corporation - initial API and implementation and/or initial documentation |
| *******************************************************************************/ |
| |
| package org.eclipse.jst.jsf.common.metadata.query.internal; |
| |
| import org.eclipse.jst.jsf.common.metadata.Entity; |
| import org.eclipse.jst.jsf.common.metadata.Model; |
| import org.eclipse.jst.jsf.common.metadata.Trait; |
| import org.eclipse.jst.jsf.common.metadata.query.IEntityQueryVisitor; |
| import org.eclipse.jst.jsf.common.metadata.query.IResultSet; |
| import org.eclipse.jst.jsf.common.metadata.query.ITraitQueryVisitor; |
| |
| /** |
| * Interface for accessing 'raw' meta data query capabilities. |
| * <p> |
| * May be subclassed, but implementers must extend {@link MetaDataQueryHelper} |
| * |
| */ |
| public interface IMetaDataQueryHelper { |
| |
| /** |
| * @param modelId |
| * @return Model object for given context. May return null if not located. |
| */ |
| public Model getModel(final String modelId); |
| |
| /** |
| * @param modelId |
| * @param entityKey relative to root of the model |
| * @return the first entity match from the root of the model. May return null. |
| */ |
| public Entity getEntity(final String modelId, |
| final String entityKey); |
| |
| /** |
| * @param modelId |
| * @param entityKey relative to root of model |
| * @param visitor |
| * @return an IResultSet of entity objects |
| */ |
| public IResultSet<Entity> getEntities( |
| final String modelId, final String entityKey, |
| final IEntityQueryVisitor visitor); |
| |
| /** |
| * @param entity |
| * @param traitKey |
| * @return a trait or null for the given entity and traitKey using a SimpleEntityQueryVisitorImpl |
| */ |
| public Trait getTrait(final Entity entity, final String traitKey); |
| |
| /** |
| * @param entity |
| * @param traitKey |
| * @param traitQueryVisitor |
| * @return an IResultSet of trait objects using supplied traitQueryVisitor. IResultSet should NOT be null. |
| */ |
| public IResultSet<Trait> getTraits(Entity entity, String traitKey, |
| ITraitQueryVisitor traitQueryVisitor); |
| |
| /** |
| * @param initialEntityContext |
| * @param entityKey relative to initial passed entity |
| * @return the first entity located by key using SimpleEntityQueryVisitorImpl |
| */ |
| public Entity getEntity(Entity initialEntityContext, String entityKey); |
| |
| /** |
| * @param initialEntityContext |
| * @param entityQuery relative to initial passed entity |
| * @param entityKeyQueryVisitor |
| * @return IResultSet of entities located by key using entityQueryVisitor. IResultSet should NOT be null. |
| */ |
| public IResultSet<Entity> getEntities(Entity initialEntityContext, |
| String entityQuery, IEntityQueryVisitor entityKeyQueryVisitor); |
| |
| /** |
| * @param modelId |
| * @param entityKey |
| * @param traitKey |
| * @return first trait found for entity and trait key starting from root of the model using SimpleMetaDataQueryImpl |
| */ |
| public Trait getTrait(final String modelId, |
| final String entityKey, final String traitKey); |
| |
| /** |
| * @param <T> |
| * @param results |
| * @return first <T> from result set. May return null. |
| */ |
| public <T> T getFirstFromResultSet(final IResultSet<T> results); |
| // /** |
| // * @param tagEntity |
| // * @return QName for entity |
| // */ |
| // public QName getQNameForEntity(final Entity tagEntity); |
| |
| } |