/** * @version $Id: CoronaObjectUtil.java 968 2013-03-05 12:25:25Z kousuke-morishima $ * * 2012/09/03 19:14:38 * @author yukihiro-kinjo * * Copyright 2011-2014 TIDAコンソーシアム All Rights Reserved. */ package com.tida_okinawa.corona.io.dam.hibernate; import java.util.List; import org.eclipse.core.runtime.IStatus; import org.hibernate.HibernateException; import com.tida_okinawa.corona.io.bean.DicTableBean; import com.tida_okinawa.corona.io.model.TextItem; import com.tida_okinawa.corona.io.model.dic.DicType; import com.tida_okinawa.corona.io.model.dic.ICoronaDic; import com.tida_okinawa.corona.io.model.dic.IDicFactory; import com.tida_okinawa.corona.io.model.dic.IUserDic; import com.tida_okinawa.corona.io.util.CoronaIoUtils; /** * @author yukihiro-kinjo * */ class CoronaObjectUtil { /** * 指定されたDicTableBeanが示す辞書情報をもとに、辞書オブジェクトを生成して返す。 * * @param rs * 辞書情報 * @param categoryList * 分野名一覧 * @return 辞書オブジェクト。DicTableBeanからの読み込み失敗時にはnull */ static ICoronaDic createDicByCurrentData(DicTableBean dt, List<TextItem> categoryList) { IDicFactory factory = DicFactory.getInstance(); ICoronaDic dicData = null; try { switch (DicType.valueOf(dt.getDicType())) { case JUMAN: /* JUMAN辞書 */ case COMMON: /* 一般辞書 */ case CATEGORY: /* 分野辞書 */ case SPECIAL: /* 固有辞書 */ dicData = factory.createUserDic(dt.getDicName(), dt.getDicFileName(), DicType.valueOf(dt.getDicType())); /* カテゴリIDがNULLの場合は処理しない */ if (dt.getCategoryId() != null) { for (TextItem item : categoryList) { if (dt.getCategoryId() == item.getId()) { ((IUserDic) dicData).setDicCategory(item); } } } break; case LABEL: /* ラベル辞書 */ dicData = factory.createLabelDic(dt.getDicName()); ((LabelDic) dicData).setParentIds(CoronaIoUtils.stringToIntSet(dt.getParentId())); break; case FLUC: /* ゆらぎ辞書 */ dicData = factory.createFlucDic(dt.getDicName(), CoronaIoUtils.stringToIntSet(dt.getParentId())); break; case SYNONYM: /* 同義語辞書 */ dicData = factory.createSynonymDic(dt.getDicName(), CoronaIoUtils.stringToIntSet(dt.getParentId())); break; case PATTERN: /* パターン辞書 */ dicData = factory.createPatternDic(dt.getDicName()); break; default: CoronaIoUtils.setErrorLog(IStatus.WARNING, "辞書タイプ誤り:ID=" + dt.getDicId(), null); //$NON-NLS-1$ } dicData.setId(dt.getDicId()); /* 辞書ID設定 */ dicData.setLasted(dt.getDate()); /* 更新日時設定 */ dicData.setCreationTime(dt.getCreationTime()); /* 作成日時 */ return dicData; } catch (HibernateException e) { e.printStackTrace(); return null; } } }