Package org.skyscreamer.yoga.selector

Source Code of org.skyscreamer.yoga.selector.SelectorResolver

package org.skyscreamer.yoga.selector;

import javax.servlet.http.HttpServletRequest;

import org.skyscreamer.yoga.configuration.EntityConfigurationRegistry;
import org.skyscreamer.yoga.exceptions.ParseSelectorException;
import org.skyscreamer.yoga.selector.parser.GDataSelectorParser;
import org.skyscreamer.yoga.selector.parser.SelectorParser;

public class SelectorResolver
{

    protected SelectorParser _selectorParser;
    protected CoreSelector _baseSelector;
    protected String _selectorParameterName = "selector";
    protected boolean _starResolvesToAll = false;

    public SelectorResolver()
    {
        this( new GDataSelectorParser() );
    }

    public SelectorResolver( SelectorParser selectorParser )
    {
        this( selectorParser, new CoreSelector() );
    }

    public SelectorResolver( SelectorParser selectorParser, CoreSelector baseSelector )
    {
        this._selectorParser = selectorParser;
        this._baseSelector = baseSelector;
    }

    public SelectorParser getSelectorParser()
    {
        return _selectorParser;
    }

    public void setStarResolvesToAll(boolean _starResolvesToAll)
    {
        this._starResolvesToAll = _starResolvesToAll;
    }
    public void setSelectorParser( SelectorParser selectorParser )
    {
        this._selectorParser = selectorParser;
    }

    public CoreSelector getBaseSelector()
    {
        return _baseSelector;
    }

    public void setBaseSelector( CoreSelector baseSelector )
    {
        this._baseSelector = baseSelector;
    }

    public String getSelectorParameterName()
    {
        return _selectorParameterName;
    }

    public void setSelectorParameterName( String selectorParameterName )
    {
        this._selectorParameterName = selectorParameterName;
    }

    public Selector getSelector( HttpServletRequest request )
            throws ParseSelectorException
    {
        String selectorString = request.getParameter( _selectorParameterName );
        return resolveSelector( selectorString );
    }
   
    public void setEntityConfigurationRegistry( EntityConfigurationRegistry entityConfigurationRegistry)
    {
        this._baseSelector.setEntityConfigurationRegistry( entityConfigurationRegistry );
    }

    public Selector resolveSelector( String selectorExpression ) throws ParseSelectorException
    {
        FieldSelector fieldSelector = _selectorParser.parseSelector( selectorExpression );

        if (fieldSelector != null)
        {
            if ( _starResolvesToAll )
            {
                return new CompositeStarSelector( _baseSelector, fieldSelector );
            }
            else
            {
                return new CompositeSelector( _baseSelector, fieldSelector );
            }
        }
        else
        {
            return _baseSelector;
        }
    }
}
TOP

Related Classes of org.skyscreamer.yoga.selector.SelectorResolver

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.