blob: b6bf45546790e58e35e7efbb0d378f47c4f49efb [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.metadata;
import org.apache.uima.resource.metadata.MetaDataObject;
/**
* An object that holds configuration that is part of the CPE descriptor. Provides the means of
* defining and obtaining CPE specific configuration that includes:
* <ul>
* <li> Number of entities to process
* <li> Checkpoint file and frequency of checkpoints
* <li> Plug-in timer class
*
*
*/
public interface CpeConfiguration extends MetaDataObject {
/**
* Sets CPE deployment mode as "immediate", "vinceService", "interactive". The CPE does not
* directly use this information, instead it is up to the application using the CPE to ingest this
* and handle it as appropriate.
*
* This element is used by an application that uses the CPE. The CPE is an embeddable component,
* part of a larger application.
* <ul>
* <li> "immediate" mode: this is the way the CPE is typically run. In this mode the application
* is initializing the CPE and starts in without user interaction. The CPE runs to completion in
* this case. </li>
* <li>"interactive" mode: The application interacts with the CPE via an API to stop, pause, or
* resume the CPE. </li>
* <li>"vinciService" mode: used to indicate control of CPE in terms of stop, pause, resume, and
* query for performance info, from a remote console. </li>
* </ul>
*
* @param aDeploy -
* deployment mode of the CPE
* @throws CpeDescriptorException
*/
public void setDeployment(String aDeploy) throws CpeDescriptorException;
/**
* Returns CPE deployment mode as "immediate", "vinceService", "interactive".
*
* @see #setDeployment(String) for a description of these modes.
*
* @return - deployment mode
*/
public String getDeployment();
/**
* Sets number of entities to process by the CPE.
*
* @param aNumToProcess -
* number of entities to process (-1 - for ALL)
* @throws CpeDescriptorException
*/
public void setNumToProcess(int aNumToProcess) throws CpeDescriptorException;
/**
* Returns number of entities to process
*
* @return - number of entities to process (-1 - for ALL)
*/
public int getNumToProcess();
/**
* Sets id of the first entity the CPE will beging processing. Usefull when starting the CPE from
* a known point.
*
* @param aEntityId -
* id of first entity
*/
public void setStartingEntityId(String aEntityId);
/**
* Returns id of the first entity the CPE will beging processing. Usefull when starting the CPE
* from a known point.
*
* @return - id of first entity
*/
public String getStartingEntityId();
/**
* Sets Checkpoint object containing checkpoint file and frequency of checkpoints.
*
* @param aCheckpoint -
* checkpoint object
* @throws CpeDescriptorException
*/
public void setCheckpoint(CpeCheckpoint aCheckpoint) throws CpeDescriptorException;
/**
* Returns Checkpoint object containing checkpoint file and frequency of checkpoints.
*
* @return {@link org.apache.uima.collection.metadata.CpeCheckpoint}
*/
public CpeCheckpoint getCheckpoint();
/**
* Removes checkpoint object
*
*/
public void removeCheckpoint();
/**
* Sets the timer class implementing UimeTimer interface. This timer will be used to time CPE
* events. By default, the CPE uses System.currentTimeMillis() to obtain time.
*
* @param aTimer -
* timer class
*/
public void setCpeTimer(CpeTimer aTimer);
/**
* Returns the timer class implementing UimeTimer interface. This timer will be used to time CPE
* events. By default, the CPE uses System.currentTimeMillis() to obtain time.
*
* @return - timer class
*/
public CpeTimer getCpeTimer();
/**
* Removes timer class
*
*/
public String getTimerImpl();
public void removeCpeTimer();
public OutputQueue getOutputQueue();
public int getMaxTimeToWait();
}