EmptyValueSqlTemplateContext.java

package com.github.mygreen.splate;

import java.util.List;

import org.springframework.expression.spel.support.StandardEvaluationContext;

import lombok.Getter;
import lombok.Setter;

/**
 * SQLテンプレートに渡すパラメータがないときのSQLテンプレートのコンテキスト。
 *
 *
 * @version 0.3
 * @author T.TSUCHIE
 *
 */
public class EmptyValueSqlTemplateContext extends SqlTemplateContext<StandardEvaluationContext> {

    /**
     * SQLテンプレート中に存在しないプロパティが定義されているとき、{@literal null} として無視するかどうか。
     *
     * @since 0.3
     * @param ignoreNotFoundProperty SQLテンプレート中に存在しないプロパティが定義されているとき、{@literal null} として無視するかどうか設定します。
     * @return SQLテンプレート中に存在しないプロパティが定義されているとき、{@literal null} として無視するかどうか返します。
     */
    @Setter
    @Getter
    private boolean ignoreNotFoundProperty;

    /**
     * {@inheritDoc}
     * @return {@link StandardEvaluationContext} のインスタンスを返します。
     */
    @Override
    public StandardEvaluationContext createEvaluationContext() {
        StandardEvaluationContext evaluationContext = new StandardEvaluationContext();
        evaluationContext.setPropertyAccessors(List.of(new CustomReflectivePropertyAccessor(ignoreNotFoundProperty)));
        return evaluationContext;
    }
}