EntitiesFactory.java 2.93 KB
package ipipan.clarin.tei.api.entities;

import ipipan.clarin.tei.api.entities.TEIParagraph.ParagraphType;
import ipipan.clarin.tei.impl.entities.EntitiesFactoryImpl;

import java.util.List;
import java.util.Map;

/**
 *
 * @author mlenart
 */
public abstract class EntitiesFactory {

	private final static EntitiesFactory instance = new EntitiesFactoryImpl();

	protected EntitiesFactory() {
	}

	public static EntitiesFactory getInstance() {
		return instance;
	}

	public abstract TEICorpusText createCorpusText(String text);

	public abstract TEICorpusText createCorpusText(List<TEIParagraph> pars);

	public abstract TEIHeader createCorpusHeader();

	public abstract TEIHeader createHeader(AnnotationLayer layer);

	@Deprecated
	public abstract TEIInterpretation createInterpretation(String base,
			String ctag, String morph);

	public final TEIParagraph createParagraph(String xmlId, ParagraphType type,
			String text) {
		return createParagraph(xmlId, type, null, text);
	}

	public abstract TEIParagraph createParagraph(String xmlId,
			ParagraphType type, String nAttrVal, String text);

	public abstract TEIParagraph createParagraph(String xmlId,
			ParagraphType type, List<TEIParagraph> subparagraphs);

	public abstract TEISentence createSentence(String sentId,
			List<TEISegment> segs);

	public abstract TEISegment createSegment(TEIParagraph paragraph, String id,
			int offset, int length, boolean nps);

	public abstract TEISegment createDummySegment(String id, String orth,
			boolean nps);

	public abstract TEIMorph createMorph(String id, TEISegment seg,
			List<TEILex> lexems);

	public abstract TEIMorph createMorph(String id, TEISegment seg);

	// public abstract TEIMorph createMorph(String string, TEISegment seg,
	// List<TEILex> lexems, TEIInterpretation chosenInterp);

	public abstract TEILex createLex(String id, String base, String ctag,
			Map<String, String> msdMap);

	public abstract TEINamedEntity createNamedEntity(String id, String orth,
			String type, String subtype, List<TEINamedEntityChild> children);

	public abstract TEINamedEntityDerivation createNamedEntityDerivation(
			String type, String from);

	public abstract TEIWord createWord(String id, String orth,
			TEIInterpretation interp, List<TEIWordChild> children);

	public abstract TEIGroup createGroup(String id, String orth, String type,
			TEISyntacticEntity synHead, TEISyntacticEntity semHead,
			List<TEISyntacticEntity> children);

	public abstract TEIDeepParseTree createDeepParseTree(String id,
			String type, String tag, List<TEIDeepParseChildren> childrenVariants);

	public abstract TEIDeepParseChildren createDeepParseChildrenVariant(
			TEIDeepParseEntity head, List<TEIDeepParseEntity> children);

	public abstract TEIMention createMention(String id, List<TEIMorph> heads,
			List<TEIMorph> morphs, boolean isZeroSubject);

	public abstract TEICoreference createCoreference(String id, String type,
			String dominant, List<TEIMention> mentions, TEIMention sourceMention);

}