You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by ea...@apache.org on 2008/03/12 19:34:44 UTC
svn commit: r636443 - in /incubator/uima/uimacpp/trunk/src:
framework/annotator_context.cpp framework/taespecifier.cpp
framework/taespecifierbuilder.cpp framework/uima/taespecifier.hpp
framework/uima/taespecifierbuilder.hpp test/src/test_engine.cpp
Author: eae
Date: Wed Mar 12 11:34:41 2008
New Revision: 636443
URL: http://svn.apache.org/viewvc?rev=636443&view=rev
Log:
UIMA-798 Apply Bhavani's patch
Modified:
incubator/uima/uimacpp/trunk/src/framework/annotator_context.cpp
incubator/uima/uimacpp/trunk/src/framework/taespecifier.cpp
incubator/uima/uimacpp/trunk/src/framework/taespecifierbuilder.cpp
incubator/uima/uimacpp/trunk/src/framework/uima/taespecifier.hpp
incubator/uima/uimacpp/trunk/src/framework/uima/taespecifierbuilder.hpp
incubator/uima/uimacpp/trunk/src/test/src/test_engine.cpp
Modified: incubator/uima/uimacpp/trunk/src/framework/annotator_context.cpp
URL: http://svn.apache.org/viewvc/incubator/uima/uimacpp/trunk/src/framework/annotator_context.cpp?rev=636443&r1=636442&r2=636443&view=diff
==============================================================================
--- incubator/uima/uimacpp/trunk/src/framework/annotator_context.cpp (original)
+++ incubator/uima/uimacpp/trunk/src/framework/annotator_context.cpp Wed Mar 12 11:34:41 2008
@@ -613,7 +613,7 @@
}
void AnnotatorContext::release(vector<std::string*> & returnValues) const {
- for (int i=0; i < returnValues.size();i++) {
+ for (size_t i=0; i < returnValues.size();i++) {
delete returnValues.at(i);
}
returnValues.clear();
Modified: incubator/uima/uimacpp/trunk/src/framework/taespecifier.cpp
URL: http://svn.apache.org/viewvc/incubator/uima/uimacpp/trunk/src/framework/taespecifier.cpp?rev=636443&r1=636442&r2=636443&view=diff
==============================================================================
--- incubator/uima/uimacpp/trunk/src/framework/taespecifier.cpp (original)
+++ incubator/uima/uimacpp/trunk/src/framework/taespecifier.cpp Wed Mar 12 11:34:41 2008
@@ -49,6 +49,9 @@
AnalysisEngineMetaData::~AnalysisEngineMetaData() {
delete iv_pTypeSystemDesc;
delete iv_pFlowConstraints;
+ if (iv_pOperationalProperties != 0) {
+ delete iv_pOperationalProperties;
+ }
size_t i=0;
for (i=0; i < iv_capabilities.size(); i++) {
delete iv_capabilities[i];
@@ -1537,14 +1540,19 @@
s.append("</capabilities>");
- //temporarity added here to support AsynchAE
- //needs to be supported by XMLParser
- s.append("<operationalProperties>");
- s.append ("<modifiesCas>true</modifiesCas>");
- s.append ("<multipleDeploymentAllowed>true</multipleDeploymentAllowed>");
- s.append("<outputsNewCASes>false</outputsNewCASes>");
- s.append("</operationalProperties>");
-
+ if (this->getAnalysisEngineMetaData()->getOperationalProperties() != 0) {
+ s.append("<operationalProperties>");
+ s.append ("<modifiesCas>");
+ appendBool(this->getAnalysisEngineMetaData()->getOperationalProperties()->getModifiesCas(), s);
+ s.append ("</modifiesCas>");
+ s.append ("<multipleDeploymentAllowed>");
+ appendBool(this->getAnalysisEngineMetaData()->getOperationalProperties()->isMultipleDeploymentAllowed(), s);
+ s.append("</multipleDeploymentAllowed>");
+ s.append("<outputsNewCASes>");
+ appendBool(this->getAnalysisEngineMetaData()->getOperationalProperties()->getOutputsNewCASes(), s);
+ s.append("</outputsNewCASes>");
+ s.append("</operationalProperties>");
+ }
if (isCasConsumer) {
s.append("</processingResourceMetaData>");
} else s.append("</analysisEngineMetaData>");
@@ -1553,4 +1561,5 @@
} //namespace
+
Modified: incubator/uima/uimacpp/trunk/src/framework/taespecifierbuilder.cpp
URL: http://svn.apache.org/viewvc/incubator/uima/uimacpp/trunk/src/framework/taespecifierbuilder.cpp?rev=636443&r1=636442&r2=636443&view=diff
==============================================================================
--- incubator/uima/uimacpp/trunk/src/framework/taespecifierbuilder.cpp (original)
+++ incubator/uima/uimacpp/trunk/src/framework/taespecifierbuilder.cpp Wed Mar 12 11:34:41 2008
@@ -549,6 +549,8 @@
buildCapabilities(*aeMetaData, child);
} else if (childTag.compare(TAG_FLOW) == 0) {
aeMetaData->setFlowConstraints(buildFlowConstraints(child));
+ } else if (childTag.compare(TAG_OPERATIONAL_PROPERTIES) == 0) {
+ aeMetaData->setOperationalProperties(buildOperationalProperties(child));
} else {
/**
ErrorMessage errMsg = ErrorMessage(UIMA_MSG_ID_EXC_UNKNOWN_CONFIG_XML_TAG);
@@ -1675,6 +1677,49 @@
return flow;
}
+
+ OperationalProperties * XMLParser::buildOperationalProperties(DOMElement * descElem) {
+ assert(EXISTS(descElem));
+ assert( XMLString::compareString( descElem->getNodeName(), convert(TAG_OPERATIONAL_PROPERTIES) ) == 0);
+ DOMNodeList * children = descElem->getChildNodes();
+ assert(EXISTS(children));
+ assert(children->getLength() > 0);
+
+ OperationalProperties * op = new OperationalProperties();
+
+ size_t i;
+ for (i=0; i < children->getLength(); i++) {
+ if ((children->item(i))->getNodeType() != DOMNode::ELEMENT_NODE) {
+ continue;
+ }
+ DOMElement * child = (DOMElement *) children->item(i);
+ const icu::UnicodeString & childTag = convert(child->getNodeName());
+
+ if (childTag.compare(TAG_MODIFIES_CAS) == 0) {
+ op->setModifiesCas(isTrue(getSpannedText(child)));
+ } else if (childTag.compare(TAG_MULTIPLE_DEPLOY_ALLOWED)==0) {
+ op->setMultipleDeploymentAllowed(isTrue(getSpannedText(child)));
+ } else if (childTag.compare(TAG_OUTPUTS_NEW_CASES)==0) {
+ op->setOutputsNewCASes(isTrue(getSpannedText(child)));
+ } else {
+ /**
+ ErrorMessage errMsg(UIMA_MSG_ID_EXC_UNKNOWN_CONFIG_XML_TAG);
+ errMsg.addParam(childTag);
+ errMsg.addParam(schemaFileName);
+ UIMA_EXC_THROW_NEW(InvalidXMLException,
+ UIMA_ERR_CONFIG_INVALID_XML_TAG,
+ errMsg,
+ UIMA_MSG_ID_EXCON_BUILD_TAE_SPEC,
+ ErrorInfo::unrecoverable);
+ **/
+ }
+ }
+ return op;
+ }
+
+
+
+
FixedFlow * XMLParser::buildFixedFlow(DOMElement * descElem) {
assert(EXISTS(descElem));
assert( XMLString::compareString(descElem->getNodeName(), convert(TAG_FLOW_FIX)) == 0);
@@ -2415,7 +2460,11 @@
char const * XMLParser::FS_INDEX_KEY_KIND_BAG="bag";
char const * XMLParser::FS_INDEX_KEY_KIND_SET="set";
-
+ char const * XMLParser::TAG_OPERATIONAL_PROPERTIES="operationalProperties";
+ char const * XMLParser::TAG_MODIFIES_CAS="modifiesCas";
+ char const * XMLParser::TAG_MULTIPLE_DEPLOY_ALLOWED="multipleDeploymentAllowed";
+ char const * XMLParser::TAG_OUTPUTS_NEW_CASES="outputsNewCASes";
+
Modified: incubator/uima/uimacpp/trunk/src/framework/uima/taespecifier.hpp
URL: http://svn.apache.org/viewvc/incubator/uima/uimacpp/trunk/src/framework/uima/taespecifier.hpp?rev=636443&r1=636442&r2=636443&view=diff
==============================================================================
--- incubator/uima/uimacpp/trunk/src/framework/uima/taespecifier.hpp (original)
+++ incubator/uima/uimacpp/trunk/src/framework/uima/taespecifier.hpp Wed Mar 12 11:34:41 2008
@@ -57,6 +57,40 @@
UIMA_EXC_CLASSDECLARE(ConfigParamLookupException, ConfigException);
+ /**
+ * Specifies operational properties of a UIMA component.
+ **/
+ class UIMA_LINK_IMPORTSPEC OperationalProperties : public MetaDataObject {
+ public:
+
+ OperationalProperties()
+ :iv_modifiesCas(false), iv_multipleDeploymentAllowed(false),
+ iv_outputsNewCASes(false) {}
+ bool getModifiesCas() const {
+ return iv_modifiesCas;
+ }
+ bool isMultipleDeploymentAllowed() const {
+ return iv_multipleDeploymentAllowed;
+ }
+ bool getOutputsNewCASes() const {
+ return iv_outputsNewCASes;
+ }
+
+ void setModifiesCas(bool val) {
+ iv_modifiesCas = val;
+ }
+ void setMultipleDeploymentAllowed(bool val) {
+ iv_multipleDeploymentAllowed = val;
+ }
+ void setOutputsNewCASes(bool val) {
+ iv_outputsNewCASes = val;
+ }
+ private:
+ bool iv_modifiesCas;
+ bool iv_multipleDeploymentAllowed;
+ bool iv_outputsNewCASes;
+ };
+
/**
@@ -332,7 +366,8 @@
:MetaDataObject(), CONFIG_GROUP_NAME_WHEN_NO_GROUPS("CONFIG_GROUP_NAME_WHEN_NO_GROUPS"),
CONFIG_GROUP_NAME_COMMON_PARMS("CONFIG_GROUP_NAME_COMMON_PARAMETERS"),
iv_hasGroups(false), iv_hasDefaultGroup(false), iv_searchStrategy(NONE),
- iv_pTypeSystemDesc(NULL), iv_pFlowConstraints(NULL), iv_vecpTypePriorities() {}
+ iv_pTypeSystemDesc(NULL), iv_pFlowConstraints(NULL), iv_vecpTypePriorities(),
+ iv_pOperationalProperties(NULL) {}
~AnalysisEngineMetaData();
@@ -594,6 +629,13 @@
return iv_capabilities;
}
+ void setOperationalProperties(OperationalProperties * prop) {
+ iv_pOperationalProperties = prop;
+ }
+
+ const OperationalProperties * getOperationalProperties() const {
+ return iv_pOperationalProperties;
+ }
/**
* NOTE: This object will assume memory ownership of <code>indexDesc</code>, i.e.
* it will be deleted when this object's destructor is called !
@@ -804,7 +846,7 @@
TyVecpFSIndexImportDescriptions iv_fsindexImportDescs;
TyVecpTypePriorityImportDescriptions iv_typepriorityImportDescs;
-
+ OperationalProperties * iv_pOperationalProperties;
};
/**
@@ -1140,6 +1182,7 @@
}
#endif
+
Modified: incubator/uima/uimacpp/trunk/src/framework/uima/taespecifierbuilder.hpp
URL: http://svn.apache.org/viewvc/incubator/uima/uimacpp/trunk/src/framework/uima/taespecifierbuilder.hpp?rev=636443&r1=636442&r2=636443&view=diff
==============================================================================
--- incubator/uima/uimacpp/trunk/src/framework/uima/taespecifierbuilder.hpp (original)
+++ incubator/uima/uimacpp/trunk/src/framework/uima/taespecifierbuilder.hpp Wed Mar 12 11:34:41 2008
@@ -186,7 +186,7 @@
void parseSofaMappings(AnalysisEngineDescription::TyVecpSofaMappings & sofaMapDesc,
InputSource const & crInputSource);
-
+ OperationalProperties * buildOperationalProperties(DOMElement * descElem);
private:
AnalysisEngineMetaData * buildAEMetaData(DOMElement * specElem, icu::UnicodeString const &);
@@ -379,6 +379,11 @@
static char const * FS_INDEX_KEY_KIND_BAG;
static char const * FS_INDEX_KEY_KIND_SET;
+ static char const * TAG_OPERATIONAL_PROPERTIES;
+ static char const * TAG_MODIFIES_CAS;
+ static char const * TAG_MULTIPLE_DEPLOY_ALLOWED;
+ static char const * TAG_OUTPUTS_NEW_CASES;
+
};
@@ -459,5 +464,6 @@
}
#endif
+
Modified: incubator/uima/uimacpp/trunk/src/test/src/test_engine.cpp
URL: http://svn.apache.org/viewvc/incubator/uima/uimacpp/trunk/src/test/src/test_engine.cpp?rev=636443&r1=636442&r2=636443&view=diff
==============================================================================
--- incubator/uima/uimacpp/trunk/src/test/src/test_engine.cpp (original)
+++ incubator/uima/uimacpp/trunk/src/test/src/test_engine.cpp Wed Mar 12 11:34:41 2008
@@ -445,7 +445,6 @@
}
failIfNotTrue( pEngine != NULL );
-
for (size_t ui = 0; ui < uiNumOfIterations; ui++) {
const TCHAR * cpszInpTerm = 0;
@@ -495,6 +494,13 @@
failIfNotTrue(errInfo.getErrorId() == UIMA_ERR_NONE);
failIfNotTrue(pEngine != NULL);
+
+ //test operational properties settings
+ failIfNotTrue(pEngine->getAnalysisEngineMetaData().getOperationalProperties()->getOutputsNewCASes() == true);
+ failIfNotTrue(pEngine->getAnalysisEngineMetaData().getOperationalProperties()->getModifiesCas() == false);
+ failIfNotTrue(pEngine->getAnalysisEngineMetaData().getOperationalProperties()->isMultipleDeploymentAllowed() == true);
+
+
CAS * cas = pEngine->newCAS();
cas->setDocumentText(UnicodeString("This is the first sentence. This is the second sentence. This is the third sentence."));
@@ -602,6 +608,7 @@
}
/* <EOF> */
+