package edu.stanford.nlp.ie.machinereading.domains.ace.reader; import java.util.List; import java.util.ArrayList; /** * Implements the ACE {@literal <entity>} construct. * * @author David McClosky */ public class AceEntity extends AceElement { private String mType; private String mSubtype; private String mClass; private List<AceEntityMention> mMentions; public AceEntity(String id, String type, String subtype, String cls) { super(id); mType = type; mSubtype = subtype; mClass = cls; mMentions = new ArrayList<>(); } public void addMention(AceEntityMention m) { mMentions.add(m); m.setParent(this); } public List<AceEntityMention> getMentions() { return mMentions; } public String getType() { return mType; } public void setType(String s) { mType = s; } public String getSubtype() { return mSubtype; } public void setSubtype(String s) { mSubtype = s; } public void setClass(String s) { mClass = s; } public String getClasss() { return mClass; } public String toXml(int offset) { StringBuffer buffer = new StringBuffer(); appendOffset(buffer, offset); buffer.append("<entity ID=\"" + getId() + "\" TYPE =\"" + AceToken.OTHERS.get(mType) + "\" SUBTYPE=\"" + AceToken.OTHERS.get(mSubtype) + "\" CLASS=\"" + AceToken.OTHERS.get(mClass) + "\">\n"); for(AceEntityMention m: mMentions){ buffer.append(m.toXml(offset + 2)); buffer.append("\n"); } appendOffset(buffer, offset); buffer.append("</entity>"); return buffer.toString(); } }