All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.talanlabs.mybatis.rsql.engine.where.registry.DefaultComparisonOperatorManagerRegistry Maven / Gradle / Ivy

The newest version!
package com.talanlabs.mybatis.rsql.engine.where.registry;

import com.talanlabs.mybatis.rsql.configuration.IRsqlConfiguration;
import com.talanlabs.mybatis.rsql.engine.where.IComparisonOperatorManager;
import com.talanlabs.mybatis.rsql.engine.where.comparisons.StandardComparisonOperatorManager;
import cz.jirutka.rsql.parser.ast.ComparisonOperator;
import cz.jirutka.rsql.parser.ast.RSQLOperators;

import java.util.HashMap;
import java.util.Map;

public class DefaultComparisonOperatorManagerRegistry implements IComparisonOperatorManagerRegistry {

    private final Map comparisonFactoryMap;

    public DefaultComparisonOperatorManagerRegistry(IRsqlConfiguration configuration) {
        super();

        StandardComparisonOperatorManager standardComparisonOperatorManager = new StandardComparisonOperatorManager(configuration);

        this.comparisonFactoryMap = new HashMap<>();

        registry(RSQLOperators.EQUAL, standardComparisonOperatorManager);
        registry(RSQLOperators.NOT_EQUAL, standardComparisonOperatorManager);
        registry(RSQLOperators.LESS_THAN, standardComparisonOperatorManager);
        registry(RSQLOperators.LESS_THAN_OR_EQUAL, standardComparisonOperatorManager);
        registry(RSQLOperators.GREATER_THAN, standardComparisonOperatorManager);
        registry(RSQLOperators.GREATER_THAN_OR_EQUAL, standardComparisonOperatorManager);
        registry(RSQLOperators.IN, standardComparisonOperatorManager);
        registry(RSQLOperators.NOT_IN, standardComparisonOperatorManager);
    }

    /**
     * Registry a comparison operator
     *
     * @param comparisonOperator        operator
     * @param comparisonOperatorFactory factory
     */
    public void registry(ComparisonOperator comparisonOperator, IComparisonOperatorManager comparisonOperatorFactory) {
        this.comparisonFactoryMap.put(comparisonOperator, comparisonOperatorFactory);
    }

    @Override
    public IComparisonOperatorManager getComparisonOperatorManager(ComparisonOperator comparisonOperator) {
        return comparisonFactoryMap.get(comparisonOperator);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy