/** * @version $Id: ExtractRelationElement.java 1839 2014-04-16 02:33:51Z yukihiro-kinjyo $ * * 2013/01/11 15:11:59 * @author s.takuro * * Copyright 2011-2014 TIDAコンソーシアム All Rights Reserved. */ package com.tida_okinawa.corona.ui.editors.extract; import java.util.List; import com.tida_okinawa.corona.correction.morphem.ISyntaxStructureElement; import com.tida_okinawa.corona.io.model.MorphemeElement; /** * @author s.takuro * #177 パターン自動生成(係り受け抽出) */ public class ExtractRelationElement implements IExtractRelationElement { private int elementCnt; private List<MorphemeElement> morphemeElement = null; private String hyouki = ""; private String yomi = ""; private IExtractRelationElement dst = null; private boolean completion = false; /** * 係り受け抽出の要素の管理 */ public ExtractRelationElement() { this.elementCnt = 1; } @Override public boolean convertSyntaxToExtractRelation(ISyntaxStructureElement sse) { if (sse == null) { return false; } setMorphemes(sse.getMorphemes()); setHyouki(sse.getHyouki()); setYomi(sse.getYomi()); setDependDestination(sse.getDependDestination()); return true; } @Override public void incCount() { elementCnt++; } @Override public int getCount() { return elementCnt; } @Override public void setMorphemes(List<MorphemeElement> morphemeElement) { this.morphemeElement = morphemeElement; } @Override public List<MorphemeElement> getMorphemes() { return morphemeElement; } @Override public void setHyouki(String hyouki) { this.hyouki = hyouki; } @Override public String getHyouki() { return hyouki; } @Override public void setYomi(String yomi) { this.yomi = yomi; } @Override public String getYomi() { return yomi; } @Override public boolean setDependDestination(ISyntaxStructureElement sse) { if (sse == null) { return false; } dst = new ExtractRelationElement(); dst.setMorphemes(sse.getMorphemes()); dst.setHyouki(sse.getHyouki()); dst.setYomi(sse.getYomi()); return true; } @Override public IExtractRelationElement getDependDestination() { return dst; } @Override public boolean setExtractRelationElement(List<MorphemeElement> morphemeEre, List<MorphemeElement> morphemeDst) { /* 係り元と係り先の両方がnullであるかどうかを判定するためのフラグ */ boolean isNotNull = false; /* 係り元 */ StringBuilder hyoukiEre = new StringBuilder(100); StringBuilder yomiEre = new StringBuilder(100); if (morphemeEre != null) { for (MorphemeElement morpheme : morphemeEre) { if (morpheme != null) { hyoukiEre.append(morpheme.getHyouki()); yomiEre.append(morpheme.getYomi()); isNotNull = true; } } } /* 係り先 */ StringBuilder hyoukiDst = new StringBuilder(100); StringBuilder yomiDst = new StringBuilder(100); if (morphemeDst != null) { for (MorphemeElement morpheme : morphemeDst) { if (morpheme != null) { hyoukiDst.append(morpheme.getHyouki()); yomiDst.append(morpheme.getYomi()); isNotNull = true; } } } if (isNotNull != true) { return false; } setHyouki(hyoukiEre.toString()); setYomi(yomiEre.toString()); setMorphemes(morphemeEre); dst = new ExtractRelationElement(); dst.setHyouki(hyoukiDst.toString()); dst.setYomi(yomiDst.toString()); dst.setMorphemes(morphemeDst); return true; } @Override public boolean getCompletion() { return completion; } @Override public void setCompletion(boolean completion) { this.completion = completion; } }