Package com.dottydingo.hyperion.service.query

Source Code of com.dottydingo.hyperion.service.query.DefaultPredicateBuilder

package com.dottydingo.hyperion.service.query;

import cz.jirutka.rsql.parser.model.Comparison;

import javax.persistence.criteria.From;
import javax.persistence.criteria.Predicate;
import javax.persistence.metamodel.EntityType;

/**
*/
public class DefaultPredicateBuilder extends AbstractPredicateBuilder
{
    @Override
    public boolean accept(String property, Class<?> entityClass, ExpressionPredicateBuilder parent)
    {
        return true;
    }

    @Override
    public Predicate createPredicate(String property, Comparison operator, String argument, From root,
                                     ExpressionPredicateBuilder parent)
            throws ArgumentFormatException, UnknownSelectorException
    {

        EntityType metadata = parent.getEntityType(root.getJavaType());
        if (!isPropertyName(property, metadata))
        {
            throw new UnknownSelectorException(property);
        }

        Class<?> type = findPropertyType(property, metadata);
        Object castedArgument = parent.getArgumentParser().parse(argument, type);

        return createPredicate(root, parent.getCriteriaBuilder(), property, operator,
                castedArgument);
    }
}
TOP

Related Classes of com.dottydingo.hyperion.service.query.DefaultPredicateBuilder

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.