| /******************************************************************************* |
| * 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.taglib; |
| |
| 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.IResultSet; |
| import org.eclipse.jst.jsf.common.metadata.query.MetaDataException; |
| import org.eclipse.jst.jsf.common.metadata.query.internal.IMetaDataQuery; |
| import org.eclipse.jst.jsf.common.metadata.query.internal.IPredicateMatcher; |
| |
| /** |
| * Interface for querying in a tag library domain context |
| * <p> |
| * @noimplement - not intended to be implemented by clients |
| * |
| */ |
| public interface ITaglibDomainMetaDataQuery extends IMetaDataQuery { |
| |
| /** |
| * Find the tag library model for the passed uri which may be different from the one from the initial context |
| * @param uri - may not be null |
| * @return {@link Model} for this tag library's uri. May be null. |
| */ |
| public Model findTagLibraryModel(final String uri); |
| |
| |
| /** |
| * @param tagLib - may not be null |
| * @param tagName - may not be null |
| * @return {@link Entity} for the tag name in the library. May be null |
| */ |
| public Entity findTagEntity(final Model tagLib, final String tagName); |
| |
| /** |
| * @param tagEntity - may not be null |
| * @param attributeName - may not be null |
| * @return {@link Entity} for the tag attribute name of this tag. May be null. |
| */ |
| public Entity findTagAttributeEntity(final Entity tagEntity, final String attributeName); |
| |
| /** |
| * @param entityMatcher |
| * @return Set of {@link Entity}s matching the query specification |
| */ |
| public IResultSet<Entity> findEntities(final ITaglibDomainEntityPredicateMatcher entityMatcher); |
| |
| /** |
| * @param entityMatcher |
| * @return First {@link Entity} matching the query specification. May be null. |
| */ |
| public Entity findEntity(final ITaglibDomainEntityPredicateMatcher entityMatcher); |
| |
| /** |
| * @param entity - may not be null |
| * @param traitId - may not be null |
| * @return {@link Trait} - may be null |
| */ |
| public Trait findTrait(final Entity entity, final String traitId); |
| |
| /** |
| * @param entityMatcher |
| * @param traitMatcher |
| * @return Set of {@link Trait}s matching both the entity and trait query specifications. Will not be null. |
| * @throws MetaDataException |
| */ |
| public IResultSet<Trait> findTraits(final ITaglibDomainEntityPredicateMatcher entityMatcher, final IPredicateMatcher<Trait> traitMatcher) throws MetaDataException; |
| |
| |
| /** |
| * @param entityMatcher |
| * @param traitMatcher |
| * @return First {@link Trait} matching both the entity and trait query specifications. May return null. |
| */ |
| public Trait findTrait(final ITaglibDomainEntityPredicateMatcher entityMatcher, final IPredicateMatcher<Trait> traitMatcher); |
| |
| } |