/** * @version $Id: DicFactory.java 33 2013-10-28 11:30:35Z yukihiro-kinjo $ * * 2013/10/28 11:30:00 * @author yukihiro-kinjo * * Copyright 2011-2014 TIDAコンソーシアム All Rights Reserved. */ package com.tida_okinawa.corona.io.dam.hibernate; import java.util.HashSet; import java.util.Set; 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.ITermCount; import com.tida_okinawa.corona.io.model.dic.abstraction.AbstractDicFactory; import com.tida_okinawa.corona.io.model.dic.impl.TermCount; /** * 辞書オブジェクト・辞書アイテムオブジェクト生成クラス * * @author yukihiro-kinjo */ public final class DicFactory extends AbstractDicFactory { private static DicFactory _instance = new DicFactory(); /** * DicFactryのインスタンスを取得する */ private DicFactory() { /* このクラスはシングルトン */ } /** * 辞書オブジェクト・辞書アイテムオブジェクト生成クラスのインスタンスを取得する * * @return iDicFactoryを実装したDicFactoryのインスタンス */ public static IDicFactory getInstance() { return _instance; } @Override public ICoronaDic createDic(String name, DicType type) { switch (type) { case JUMAN: break; case COMMON: case CATEGORY: case SPECIAL: return createUserDic(name, "", type); //$NON-NLS-1$ case LABEL: return createLabelDic(name); case SYNONYM: return createSynonymDic(name, new HashSet<Integer>()); case FLUC: return createFlucDic(name, new HashSet<Integer>()); case PATTERN: return createPatternDic(name); } return null; } @Override public ICoronaDic createUserDic(String name, String file, DicType type) { ICoronaDic dic = new UserDic(ICoronaDic.UNSAVED_ID, name, file, type, null); dics.add(dic); return dic; } @Override public ICoronaDic createFlucDic(String name, int parentId) { if (parentId < 1) return null; ICoronaDic dic = new FlucDic(ICoronaDic.UNSAVED_ID, name, parentId); dics.add(dic); return dic; } @Override public ICoronaDic createSynonymDic(String name, int parentId) { if (parentId < 1) return null; ICoronaDic dic = new SynonymDic(ICoronaDic.UNSAVED_ID, name, parentId); dics.add(dic); return dic; } @Override public ICoronaDic createLabelDic(String name) { ICoronaDic dic = new LabelDic(ICoronaDic.UNSAVED_ID, name, null); dics.add(dic); return dic; } @Override public ICoronaDic createPatternDic(String name) { ICoronaDic dic = new PatternDic(ICoronaDic.UNSAVED_ID, name, null); dics.add(dic); return dic; } @Override public ICoronaDic createFlucDic(String name, Set<Integer> parentId) { ICoronaDic dic = new FlucDic(ICoronaDic.UNSAVED_ID, name, null, parentId); dics.add(dic); return dic; } @Override public ICoronaDic createSynonymDic(String name, Set<Integer> parentId) { ICoronaDic dic = new SynonymDic(ICoronaDic.UNSAVED_ID, name, null, parentId); dics.add(dic); return dic; } @Override public ICoronaDic createLabelDic(String name, Set<Integer> parentId) { ICoronaDic dic = new LabelDic(ICoronaDic.UNSAVED_ID, name, null, parentId); dics.add(dic); return dic; } @Override public ITermCount createTermCount(String value, String reading, String termPart, String termClass, String cform, String jumanBase) { return new TermCount(value, reading, termPart, termClass, cform, jumanBase); } }