intra-mart Accel Kaiden! MasterBuilder 設定ガイド 第13版 2024-04-01

7.6. マスタ検索、バリデーションのみを使用するマスタの作成

7.6.1. 概要

MasterBuilderでは、マスタ検索、バリデーションのみを使用するマスタを作成可能です。
作成する場合、拡張設定に拡張用のLogicクラスを設定します。

7.6.2. マスタ検索、バリデーションのみを使用する場合

拡張設定に「jp.co.slcs.kaiden.v2.base.feature.logic.kaiden.generic.LimitationMasterSearchLogic」を設定します。
Logicをカスタマイズする場合、「jp.co.slcs.kaiden.v2.base.feature.logic.kaiden.generic.LimitationMasterSearchLogicBase」を継承したクラスを作成してください。

7.6.3. Enumクラスを使用した検索部品を作成する場合

「jp.co.slcs.kaiden.v2.base.foundation.taglib.EnumListDataIF」を継承したEnumクラスを作成してください。
Enumクラス
package jp.co.slcs.kaiden.v2.extension_imw.foundation.conf;

import java.util.Locale;
import jp.co.slcs.kaiden.v2.base.foundation.exception.KaidenIllegalParametersException;
import jp.co.slcs.kaiden.v2.base.foundation.extension.spring.context.ApplicationContextHolder;
import jp.co.slcs.kaiden.v2.base.foundation.helper.ContextHelper;
import jp.co.slcs.kaiden.v2.base.foundation.helper.PropertyHelper;
import jp.co.slcs.kaiden.v2.base.foundation.taglib.EnumListDataIF;

/**
 * 代理申請状態を表す列挙.
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
public enum AgentType implements EnumListDataIF {
    
    /** 本人申請. */
    PRINCIPAL("0", "EIMW.AgentType.principal"),
    /** 代理申請. */
    AGENT("1", "EIMW.AgentType.agent");
    
    /** コード. */
    private final String code;
    /** 名称. */
    private final String surface;
    
    /**
     * コンストラクタ.
     * 
     * @param code コード
     * @param name 名称
     */
    private AgentType(String code, String name) {
        this.code = code;
        surface = name;
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public String getCode() {
        return code;
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public String getName() {
        ContextHelper contextHelper = ApplicationContextHolder.getApplicationContext().getBean(ContextHelper.class);
        return getName(contextHelper.getLoginUserLocale());
    }
    
    /**
     * コードから自身を返却.
     * 
     * @param code コード値
     * @return 自身
     */
    public static AgentType codeOf(String code) {
        for (AgentType that : AgentType.values()) {
            if (that.getCode().equals(code)) {
                return that;
            }
        }
        throw KaidenIllegalParametersException.makeInstance();
    }
    
    /**
     * 名称から自身を返却.
     * 
     * @param name 名称
     * @return 自身
     */
    public static AgentType nameOf(String name) {
        for (AgentType that : AgentType.values()) {
            if (name.equals(that.getName())) {
                return that;
            }
        }
        throw KaidenIllegalParametersException.makeInstance();
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public String getName(Locale locale) {
        PropertyHelper propertyHelper = ApplicationContextHolder.getApplicationContext().getBean(PropertyHelper.class);
        return propertyHelper.getSurface(locale, surface);
    }
}
Enumクラスをリスト化するために「jp.co.slcs.kaiden.v2.base.feature.logic.kaiden.generic.LimitationMasterSearchEnumLogicBase」を継承したクラスを作成し、拡張設定に設定してください。
LimitationMasterSearchEnumLogicBaseを継承したクラス
package jp.co.slcs.kaiden.v2.extension_imw.feature.logic.kaiden.generic;

import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import jp.co.slcs.kaiden.v2.base.feature.logic.kaiden.generic.LimitationMasterSearchEnumLogicBase;
import jp.co.slcs.kaiden.v2.base.foundation.taglib.EnumListDataIF;
import jp.co.slcs.kaiden.v2.extension_imw.foundation.conf.AgentType;

/**
 * 代理タイプ検索(Logic).
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
@Component
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public class AgentTypeLogic extends LimitationMasterSearchEnumLogicBase {
    
    /**
     * {@inheritDoc}
     */
    @Override
    protected EnumListDataIF[] values() {
        return AgentType.values();
    }
}

7.6.4. XMLの固定値を使用した検索部品を作成する場合

拡張設定に「jp.co.slcs.kaiden2.base.feature.logic.kaiden.generic.LimitationMasterSelectLogic」を設定します。
XMLに表示したい固定値を定義してください。
設定
<?xml version="1.0" encoding="UTF-8"?>
<genericMasterSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/genericMasterSettings">
  <masterId>use_data_status</masterId>
  <surfaceKey>master_name</surfaceKey>
  <extension>
    <logic>jp.co.slcs.kaiden.v2.base.feature.logic.kaiden.generic.LimitationMasterSelectLogic</logic>
  </extension>
  
  <args>
    <arg key="datas"
         value="[
                  {'code':'00', 'name':'untreated'},
                  {'code':'10', 'name':'processing'},
                  {'code':'20', 'name':'processed'},
                  {'code':'90', 'name':'no_process_required'}
                ]"
    />
  </args>
  
  <!-- 検索設定 -->
  <search type="SELECT">
    <items>
      <item name="code" type="CODE" />
      <item name="name" type="NAME" />
    </items>
  </search>
  
  <!-- ラベル設定 -->
  <surfaces>
    <!-- 略 -->
    <surface surfaceKey="untreated" surface="未処理">
      <name localeId="ja"    surface="未処理" />
      <name localeId="en"    surface="Untreated" />
      <name localeId="zh_CN" surface="未处理" />
    </surface>
    <!-- 略 -->
  </surfaces>
</genericMasterSettings>