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

com.github.mygreen.cellformatter.callback.DBNumBase Maven / Gradle / Ivy

There is a newer version: 0.12
Show newest version
package com.github.mygreen.cellformatter.callback;

import java.util.HashSet;
import java.util.Locale;
import java.util.Set;

import com.github.mygreen.cellformatter.lang.ArgUtils;
import com.github.mygreen.cellformatter.term.DateTerm;
import com.github.mygreen.cellformatter.term.Term;

/**
 * 数値変換の基底クラス。
 *
 * @since 2.0
 * @author T.TSUCHIE
 *
 */
public abstract class DBNumBase implements Callback {

    /**
     * 許可する言語。
     */
    private Set allowedLanguages = new HashSet<>();

    /**
     * コンストラクタ
     * @param allowedLanguages 許可する言語の指定。
     * @throws IllegalArgumentException {@literal allowedLanguages is null or empty.}
     */
    protected DBNumBase(final String... allowedLanguages) {

        ArgUtils.notEmpty(allowedLanguages, "allowedLanguages");

        for(String lang : allowedLanguages) {
            this.allowedLanguages.add(lang.toLowerCase());
        }

    }

    /**
     * {@inheritDoc}
     * 

コンストラクタで指定したロケール(言語)で許可するかどうか判定する。 */ @Override public boolean isApplicable(final Locale locale) { if(locale == null) { return false; } final String language = locale.getLanguage().toLowerCase(); return allowedLanguages.contains(language); } /** * 項が日付の4桁の年かどうか * @param term * @return */ protected boolean is4YearTerm(Term term) { if(!(term instanceof DateTerm.YearTerm)) { return false; } DateTerm.YearTerm yearTerm = (DateTerm.YearTerm)term; if(yearTerm.getFormat().length() == 4) { return true; } return false; } }