/* * JCasFactoryImpl.java * * Copyright (c) 2011, Database Research Group, Institute of Computer Science, University of Heidelberg. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU General Public License. * * authors: Andreas Fay, Jannik Strötgen * email: fay@stud.uni-heidelberg.de, stroetgen@uni-hd.de * * HeidelTime is a multilingual, cross-domain temporal tagger. * For details, see http://dbs.ifi.uni-heidelberg.de/heideltime */ package de.unihd.dbs.heideltime.standalone.components.impl; import org.apache.uima.cas.CASException; import org.apache.uima.jcas.JCas; import org.apache.uima.resource.CasManager; import org.apache.uima.resource.ResourceInitializationException; import org.apache.uima.resource.ResourceManager; import org.apache.uima.resource.impl.ResourceManager_impl; import org.apache.uima.resource.metadata.ProcessingResourceMetaData; import org.apache.uima.resource.metadata.TypeSystemDescription; import org.apache.uima.resource.metadata.impl.ProcessingResourceMetaData_impl; import org.apache.uima.util.CasCreationUtils; import de.unihd.dbs.heideltime.standalone.components.JCasFactory; /** * @see JCasFactory */ public class JCasFactoryImpl implements JCasFactory { /** * Cas Manager */ private CasManager casManager; /** * Constructor * * @param typeSystemDescriptions */ public JCasFactoryImpl(TypeSystemDescription[] typeSystemDescriptions) { // Initialize cas manager ResourceManager resManager = new ResourceManager_impl(); casManager = resManager.getCasManager(); for (TypeSystemDescription desc : typeSystemDescriptions) { ProcessingResourceMetaData metaData = new ProcessingResourceMetaData_impl(); metaData.setTypeSystem(desc); casManager.addMetaData(metaData); } } @Override public JCas createJCas() throws CASException, ResourceInitializationException { return CasCreationUtils.createCas(casManager.getCasDefinition(), null).getJCas(); } }