Package org.eclipse.jst.jsf.designtime.internal.view.mapping

Source Code of org.eclipse.jst.jsf.designtime.internal.view.mapping.ViewMetadataLoader

package org.eclipse.jst.jsf.designtime.internal.view.mapping;

import org.eclipse.core.resources.IProject;
import org.eclipse.jst.jsf.common.dom.TagIdentifier;
import org.eclipse.jst.jsf.common.metadata.Entity;
import org.eclipse.jst.jsf.common.metadata.Trait;
import org.eclipse.jst.jsf.common.metadata.internal.IMetaDataDomainContext;
import org.eclipse.jst.jsf.common.metadata.query.internal.IMetaDataQuery;
import org.eclipse.jst.jsf.common.metadata.query.internal.MetaDataQueryContextFactory;
import org.eclipse.jst.jsf.common.metadata.query.internal.MetaDataQueryFactory;
import org.eclipse.jst.jsf.designtime.internal.view.mapping.viewmapping.AttributeToPropertyMapping;
import org.eclipse.jst.jsf.designtime.internal.view.mapping.viewmapping.TagMapping;

/**
* Loader class for view metadata.
*
* @author cbateman
*
*/
public class ViewMetadataLoader
{
    private final IProject                                      _project;
    private final IMetaDataQuery                 _query;

    /**
     * @param project
     */
    public ViewMetadataLoader(final IProject project)
    {
        _project = project;
      final  IMetaDataDomainContext modelContext = MetaDataQueryContextFactory.getInstance().createTaglibDomainModelContext(_project);
    _query = MetaDataQueryFactory.getInstance().createQuery(modelContext);
   
    }

    /**
     * @param tagId
     * @return the tag to view object mapping metadata for a tag in a particular
     *         metadata context or null if not found.
     */
    public TagMapping getTagToViewMapping(final TagIdentifier tagId)
    {

    final Entity entity = _query.getQueryHelper().getEntity(tagId.getUri(), tagId.getTagName());
//        final ITaglibDomainMetaDataModelContext modelContext = createMetadataContext(tagId
//                .getUri());
//        final Entity entity = TaglibDomainMetaDataQueryHelper.getEntity(
//                modelContext, tagId.getTagName());
        if (entity != null)
        {
            final Trait trait = _query.getQueryHelper().getTrait(
                    entity, ViewMetadataMapper.DEFAULT_MAPPING_TRAIT_ID);
            if (trait != null)
            {
                return (TagMapping) trait.getValue();
            }
        }
        return null;
    }


    /**
     * @param tagId
     * @param name
     * @return the attribute mapping for name on tagId or null if known
     */
    public AttributeToPropertyMapping getAttributeMapping(
            final TagIdentifier tagId, final String name)
    {

        final Entity entity = _query.getQueryHelper().getEntity(
                tagId.getUri(), tagId.getTagName()+"/"+name); //$NON-NLS-1$
        if (entity != null)
        {
            final Trait trait = _query.getQueryHelper().getTrait(
                    entity, ViewMetadataMapper.DEFAULT_ATTRIBUTE_TRAIT_ID);
            if (trait != null)
            {
                return (AttributeToPropertyMapping) trait.getValue();
            }
        }
        return null;
    }
}
TOP

Related Classes of org.eclipse.jst.jsf.designtime.internal.view.mapping.ViewMetadataLoader

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.