复制当前的UIMA CAS对象

时间:2012-12-17 15:46:37

标签: java uima

我正在开发一个使用Apache UIMA框架来注释文档的项目。由于我必须传递所有文档并在一个for-lopp中处理它们,因此我必须临时存储(复制)当前文档的当前CAS对象,以避免被后续FS和堆值搞砸。 / p>

接下来,我使用CasCopier首先复制当前的CAS并在处理下一个文档之前显示它。

 1.  public class DocumentAnalysis {
 2.    public DocumentAnalysis(CAS cas) {
 3.        this.cas = cas;
 4.    }
 5.     
 6.    public processDocuments(Document documents) {
 7.        for(Document document: documents) {
 8.            // process each document, after this method, the cas has all values
 9.            processSingleDoc(document);
10.
11.            // create a new CAS as the destination of copy
12.            CAS localCas = CASFactory.createCas().getCas();
13. 
14.            // copy the current CAS to the new CAS
15.            CASCopier.copyCas(this.cas, localCas, true);  
16.        }
17.    }
18.
19.    public processSingleDoc(Document document) {
20.        // the logic for processing
21.        // implement UIMA process() method
22.        ......
23.    }
24.
25.    CAS cas;
26.  }

然而,问题是它在第12行抛出了NullPointerException并且我认为getCAS()方法需要indexRepository变量并且我创建的localCas没有该值,这意味着创建新CAS可能不对。

我在网上搜索过,还没有找到任何解决方案。那么有谁知道如何将当前的CAS复制到新创建的CAS?

提前致谢!!!

0 个答案:

没有答案