blob: 8abcfae3a747fd97a00772d149605a19ae9e50b9 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.uima.collection.impl.metadata.cpe;
import java.io.InputStream;
import org.apache.uima.UIMAFramework;
import org.apache.uima.collection.impl.metadata.CpeDefaultValues;
import org.apache.uima.collection.metadata.CasProcessorConfigurationParameterSettings;
import org.apache.uima.collection.metadata.CasProcessorDeploymentParam;
import org.apache.uima.collection.metadata.CasProcessorDeploymentParams;
import org.apache.uima.collection.metadata.CasProcessorErrorHandling;
import org.apache.uima.collection.metadata.CasProcessorErrorRateThreshold;
import org.apache.uima.collection.metadata.CasProcessorExecArg;
import org.apache.uima.collection.metadata.CasProcessorExecutable;
import org.apache.uima.collection.metadata.CasProcessorFilter;
import org.apache.uima.collection.metadata.CasProcessorMaxRestarts;
import org.apache.uima.collection.metadata.CasProcessorRunInSeperateProcess;
import org.apache.uima.collection.metadata.CasProcessorRuntimeEnvParam;
import org.apache.uima.collection.metadata.CasProcessorTimeout;
import org.apache.uima.collection.metadata.CpeCasProcessors;
import org.apache.uima.collection.metadata.CpeCheckpoint;
import org.apache.uima.collection.metadata.CpeCollectionReader;
import org.apache.uima.collection.metadata.CpeCollectionReaderCasInitializer;
import org.apache.uima.collection.metadata.CpeCollectionReaderIterator;
import org.apache.uima.collection.metadata.CpeComponentDescriptor;
import org.apache.uima.collection.metadata.CpeConfiguration;
import org.apache.uima.collection.metadata.CpeDescription;
import org.apache.uima.collection.metadata.CpeDescriptorException;
import org.apache.uima.collection.metadata.CpeInclude;
import org.apache.uima.collection.metadata.CpeIntegratedCasProcessor;
import org.apache.uima.collection.metadata.CpeLocalCasProcessor;
import org.apache.uima.collection.metadata.CpeRemoteCasProcessor;
import org.apache.uima.collection.metadata.CpeResourceManagerConfiguration;
import org.apache.uima.collection.metadata.CpeSofaMapping;
import org.apache.uima.collection.metadata.CpeSofaMappings;
import org.apache.uima.collection.metadata.CpeTimer;
import org.apache.uima.collection.metadata.NameValuePair;
import org.apache.uima.util.InvalidXMLException;
import org.apache.uima.util.XMLInputSource;
/**
* Factory class for creating CpeDescriptors and their constituent objects.
*
*
*/
public class CpeDescriptorFactory {
public CpeDescriptorFactory() {
}
/**
* Produce a new CpeDescription from scratch. This CpeDescription will contain no components and
* will have default settings.
*
* @return An empty CpeDescription object with default settings
*/
public static CpeDescription produceDescriptor() {
CpeDescription descriptor = null;
descriptor = new CpeDescriptionImpl();
try {
descriptor.setCpeConfiguration(produceCpeConfiguration(descriptor));
descriptor.getCpeConfiguration().setNumToProcess((int) CpeDefaultValues.NUM_TO_PROCESS);
descriptor.getCpeConfiguration().setDeployment(CpeDefaultValues.DEPLOY_AS);
descriptor.getCpeConfiguration().setCheckpoint(produceCpeCheckpoint());
descriptor.getCpeConfiguration().getCheckpoint().setFilePath("");
descriptor.getCpeConfiguration().getCheckpoint().setFrequency(300000, true);
descriptor.getCpeConfiguration().setCpeTimer(new CpeTimerImpl(""));
return descriptor;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* Parse a CpeDescription from a descriptor file.
*
* @param aInput
* identifies the input file
*
* @return The CpeDescription object parsed from the input
*
* @throws InvalidXMLException
* if the descriptor is invalid
*/
public static CpeDescription produceDescriptor(XMLInputSource aInput) throws InvalidXMLException {
Object o;
try {
o = UIMAFramework.getXMLParser().parse(aInput);
if (o instanceof CpeDescription) {
return (CpeDescription) o;
}
} catch (Exception e) {
throw new InvalidXMLException(e);
}
throw new InvalidXMLException(new Exception("Unexpected Object Type Produced By the XMLParser"));
}
/**
* Parse a CpeDescription from a given input stream.
*
* @param aInput
* identifies the input stream
*
* @return The CpeDescription object parsed from the input
*
* @throws InvalidXMLException
* if the descriptor is invalid
*/
public static CpeDescription produceDescriptor(InputStream aInput) throws InvalidXMLException {
return produceDescriptor(new XMLInputSource(aInput, null));
}
/**
*
* @param aCollectionReaderDescriptorPath
* @param aDescriptor
* @throws CpeDescriptorException
*/
public static CpeCollectionReader produceCollectionReader(String aCollectionReaderDescriptorPath,
CpeDescription aDescriptor) throws CpeDescriptorException {
CpeCollectionReader[] colR = null;
if (aDescriptor == null) {
aDescriptor = produceDescriptor();
}
if ((colR = aDescriptor.getAllCollectionCollectionReaders()).length == 0) {
colR = new CpeCollectionReader[1];
colR[0] = produceCollectionReader(aCollectionReaderDescriptorPath);
}
aDescriptor.addCollectionReader(colR[0]);
return colR[0];
}
public static CpeCollectionReader produceCollectionReader(String aCollectionReaderDescriptorPath)
throws CpeDescriptorException {
CpeCollectionReader colR = produceCollectionReader();
colR.getCollectionIterator().getDescriptor().getInclude().set(aCollectionReaderDescriptorPath);
return colR;
}
public static CpeCollectionReader produceCollectionReader() throws CpeDescriptorException {
CpeCollectionReader colR = new CpeCollectionReaderImpl();
colR.setCollectionIterator(produceCollectionReaderIterator(""));
return colR;
}
public static CpeCollectionReaderIterator produceCollectionReaderIterator(String aPath)
throws CpeDescriptorException {
CpeCollectionReaderIterator iterator = new CpeCollectionReaderIteratorImpl();
iterator.setDescriptor(produceComponentDescriptor(aPath));
return iterator;
}
/**
*
* @param aInitializerDescriptorPath
* @param aDescriptor
* @throws CpeDescriptorException
*
* @deprecated As of v2.0, CAS Initializers are deprecated.
*/
public static CpeCollectionReaderCasInitializer produceCollectionReaderCasInitializer(
String aPath, CpeDescription aDescriptor) throws CpeDescriptorException {
if (aDescriptor == null) {
aDescriptor = produceDescriptor();
}
CpeCollectionReaderCasInitializer initializer = new CpeCollectionReaderCasInitializerImpl();
initializer.setDescriptor(produceComponentDescriptor(aPath));
return initializer;
}
/**
*
* @param aInitializerDescriptorPath
* @deprecated As of v2.0, CAS Initializers are deprecated.
*/
protected static CpeCollectionReaderCasInitializer produceCollectionReaderCasInitializer(
String aInitializerDescriptorPath) {
try {
return produceCollectionReaderCasInitializer(aInitializerDescriptorPath, null);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
*
* @param aDescriptorPath
*/
public static CpeComponentDescriptor produceComponentDescriptor(String aPath) {
CpeComponentDescriptor componentDescriptor = new CpeComponentDescriptorImpl();
CpeInclude include = new CpeIncludeImpl();
include.set(aPath);
componentDescriptor.setInclude(include);
return componentDescriptor;
}
/**
*
* @param aDescriptor
* @throws CpeDescriptorException
*/
public static CpeConfiguration produceCpeConfiguration(CpeDescription aDescriptor)
throws CpeDescriptorException {
if (aDescriptor == null) {
aDescriptor = produceDescriptor();
}
CpeConfiguration config = new CpeConfigurationImpl();
aDescriptor.setCpeConfiguration(config);
return config;
}
public static CpeConfiguration produceCpeConfiguration() throws CpeDescriptorException {
return new CpeConfigurationImpl();
}
/**
*
*/
public static CasProcessorRuntimeEnvParam produceRuntimeEnvParam() {
return new CasProcessorRuntimeEnvParamImpl();
}
/**
*
*/
public static CasProcessorDeploymentParams produceDeployParams() {
return new CasProcessorDeploymentParamsImpl();
}
/**
*
*/
public static CasProcessorDeploymentParam produceDeployParam() {
return new CasProcessorDeploymentParamImpl();
}
/**
*
*/
public static CpeInclude produceComponentDescriptorInclude() {
return new CpeIncludeImpl();
}
/**
*
* @param aDescriptor
* @throws CpeDescriptorException
*/
public static CpeCasProcessors produceCasProcessors(CpeDescription aDescriptor)
throws CpeDescriptorException {
if (aDescriptor == null) {
aDescriptor = produceDescriptor();
}
CpeCasProcessors processors = new CpeCasProcessorsImpl();
aDescriptor.setCpeCasProcessors(processors);
return processors;
}
public static CpeCasProcessors produceCasProcessors() throws CpeDescriptorException {
return new CpeCasProcessorsImpl();
}
/**
*
* @param aInputQSize
* @param aOutputQSize
* @param aPuCount
* @param aDescriptor
* @throws CpeDescriptorException
*/
public static CpeCasProcessors produceCasProcessors(int aInputQSize, int aOutputQSize,
int aPuCount, CpeDescription aDescriptor) throws CpeDescriptorException {
if (aDescriptor == null) {
aDescriptor = produceDescriptor();
}
CpeCasProcessors processors = new CpeCasProcessorsImpl();
processors.setConcurrentPUCount(aPuCount);
processors.setInputQueueSize(aInputQSize);
processors.setOutputQueueSize(aOutputQSize);
aDescriptor.setCpeCasProcessors(processors);
return processors;
}
// Default deployment=integrated
public static CpeIntegratedCasProcessor produceCasProcessor(String aName) {
CpeIntegratedCasProcessor processor = new CpeIntegratedCasProcessorImpl();
try {
processor.setName(aName);
} catch (Exception e) {
e.printStackTrace();
}
return processor;
}
/**
*
* @param aName
* @param aSoFa
* @throws CpeDescriptorException
*/
public static CpeLocalCasProcessor produceLocalCasProcessor(String aName, String aSoFa)
throws CpeDescriptorException {
CpeLocalCasProcessor processor = new CpeLocalCasProcessorImpl();
processor.setName(aName);
processor.setSOFA(aSoFa);
return processor;
}
/**
*
* @param aName
* @throws CpeDescriptorException
*/
public static CpeRemoteCasProcessor produceRemoteCasProcessor(String aName)
throws CpeDescriptorException {
CpeRemoteCasProcessor processor = new CpeRemoteCasProcessorImpl();
processor.setName(aName);
return processor;
}
public static CpeTimer produceCpeTimer(String aTimerClass) {
return new CpeTimerImpl(aTimerClass);
}
public static CpeResourceManagerConfiguration produceResourceManagerConfiguration(
String aResourceMgrConfigurationPath, CpeDescription aDescriptor)
throws CpeDescriptorException {
if (aDescriptor == null) {
aDescriptor = produceDescriptor();
}
CpeResourceManagerConfiguration resMgr = produceResourceManagerConfiguration(aResourceMgrConfigurationPath);
aDescriptor.setCpeResourceManagerConfiguration(resMgr);
return resMgr;
}
public static CpeResourceManagerConfiguration produceResourceManagerConfiguration(
String aResourceMgrConfigurationPath) throws CpeDescriptorException {
CpeResourceManagerConfiguration resMgr = new CpeResourceManagerConfigurationImpl();
resMgr.set(aResourceMgrConfigurationPath);
return resMgr;
}
/**
*
*/
public static CasProcessorTimeout produceCasProcessorTimeout() {
return new CasProcessorTimeoutImpl();
}
/**
*
*/
public static CasProcessorMaxRestarts produceCasProcessorMaxRestarts() {
return new CasProcessorMaxRestartsImpl();
}
/**
*
*/
public static CasProcessorErrorRateThreshold produceCasProcessorErrorRateThreshold() {
return new CasProcessorErrorRateThresholdImpl();
}
/**
*
* @param aFilter
*/
public static CasProcessorFilter produceCasProcessorFilter(String aFilter) {
CasProcessorFilter filter = new CasProcessorFilterImpl();
filter.setFilterString(aFilter);
return filter;
}
/**
*
*/
public static CasProcessorErrorHandling produceCasProcessorErrorHandling() {
return new CasProcessorErrorHandlingImpl();
}
/**
*
*/
public static CpeCheckpoint produceCpeCheckpoint() {
return new CpeCheckpointImpl();
}
/**
*
*/
public static CasProcessorDeploymentParams produceCasProcessorDeploymentParams() {
return new CasProcessorDeploymentParamsImpl();
}
/**
*
*/
public static CasProcessorExecArg produceCasProcessorExecArg() {
return new CasProcessorExecArgImpl();
}
/**
*
*/
public static CasProcessorExecutable produceCasProcessorExecutable() {
return new CasProcessorExecutableImpl();
}
/**
*
*/
public static CasProcessorRunInSeperateProcess produceRunInSeperateProcess() {
return new CasProcessorRunInSeperateProcessImpl();
}
/**
*
*/
public static CasProcessorConfigurationParameterSettings produceCasProcessorConfigurationParameterSettings() {
return new CasProcessorConfigurationParameterSettingsImpl();
}
/**
*
*/
public static NameValuePair produceNameValuePair() {
return new NameValuePairImpl();
}
public static CpeSofaMapping produceSofaMapping() {
return new CpeSofaMappingImpl();
}
public static CpeSofaMappings produceSofaMappings() {
return new CpeSofaMappingsImpl();
}
}