FSIteratorWrapper(IntPointerIterator it, CASImpl casImpl) { this.it = it; this.casImpl = casImpl; TypeSystemImpl tsi = casImpl.getTypeSystemImpl(); beginOffset = casImpl.getFeatureOffset(TypeSystemImpl.startFeatCode); endOffset = casImpl.getFeatureOffset(TypeSystemImpl.endFeatCode); }
final int beginOffset = ci.getFeatureOffset(TypeSystemImpl.startFeatCode); final int endOffset = ci.getFeatureOffset(TypeSystemImpl.endFeatCode); final LinearTypeOrder typeOrder = getDefaultTypeOrder();
final int beginOffset = ci.getFeatureOffset(TypeSystemImpl.startFeatCode); final int endOffset = ci.getFeatureOffset(TypeSystemImpl.endFeatCode); final LinearTypeOrder typeOrder = getDefaultTypeOrder();
private final int getFeatureOffset(Feature feat) { return this.comparator.getLowLevelCAS().getFeatureOffset(((FeatureImpl) feat).getCode()); }
void setNewValueInExistingNode(int curNode, List<String> stringValues, int i) { String curValue = cas.getStringForCode(cas.getHeapValue(curNode + cas.getFeatureOffset(stringHeadFeat))); String newValue = stringValues.get(i++); if (!curValue.equals(newValue)) { cas.setFeatureValueNoIndexCorruptionCheck(curNode, stringHeadFeat, cas.addString(newValue)); } }
public int[] fsListToAddressArray(int curNode) throws SAXException { final int type = cas.getHeapValue(curNode); int length = getLength(type, curNode, neFsListType, fsTailFeat); int[] array = new int[length]; // now populate list for (int i = 0; i < length; i++) { array[i] = cas.getHeapValue(curNode + cas.getFeatureOffset(fsHeadFeat)); curNode = cas.getHeapValue(curNode + cas.getFeatureOffset(fsTailFeat)); } if (foundCycle) { reportWarning("Found a cycle in an FSList. List truncated where cycle occurs."); } return array; }
public int getLength(int type, int addr, int neListType, int tailFeat) { final PositiveIntSet_impl visited = new PositiveIntSet_impl(); foundCycle = false; // first count length of list so we can allocate array int length = 0; int curNode = addr; while (cas.getHeapValue(curNode) == neListType) { if (!visited.add(curNode)) { foundCycle = true; break; } length++; curNode = cas.getHeapValue(curNode + cas.getFeatureOffset(tailFeat)); } return length; }
private void enqueueFeatures(int addr, int heapValue) { int[] feats = ts.ll_getAppropriateFeatures(heapValue); int featAddr, featVal; for (int i = 0; i < feats.length; i++) { featAddr = addr + cas.getFeatureOffset(feats[i]); featVal = cas.getHeapValue(featAddr); if (cas.ll_isRefType(ts.range(feats[i]))) { if (featVal == CASImpl.NULL) { // break; } else { enqueue(featVal); } } } }
public void commitTypeSystem() { final TypeSystemImpl ts = this.svd.casMetadata.ts; // For CAS pools, the type system could have already been committed // Skip the initFSClassReg if so, because it may have been updated to a JCas // version by another CAS processing in the pool // @see org.apache.uima.cas.impl.FSClassRegistry // avoid race: two instances of a CAS from a pool attempting to commit the // ts // at the same time synchronized (ts) { if (!ts.isCommitted()) { ts.commit(); initFSClassRegistry(); // add generators FSClassRegistry fscr = getFSClassRegistry(); // save for the case of non=jcas pipeline with a jcas pear in the middle // - this // allows subsequent downstream annotators to run without jcas fscr.saveGeneratorsForClassLoader(this.svd.previousJCasClassLoader, fscr .getBaseGenerators()); } } setLocalFsGenerators(this.svd.casMetadata.fsClassRegistry.getBaseGenerators()); // After the type system has been committed, we can create the // index repository. createIndexRepository(); svd.annotFeatOffset_begin = getFeatureOffset(TypeSystemImpl.startFeatCode); svd.annotFeatOffset_end = getFeatureOffset(TypeSystemImpl.endFeatCode); }
featAddr = addr + cas.getFeatureOffset(feats[i]); featVal = cas.getHeapValue(featAddr); featName = featureNames[feats[i]];
final int val = cas.getHeapValue(curNode + cas.getFeatureOffset(headFeat)); curNode = cas.getHeapValue(curNode + cas.getFeatureOffset(tailFeat));
break; curNode = cas.getHeapValue(curNode + cas.getFeatureOffset(tailFeat)); typeCode = cas.getHeapValue(curNode);
curNode = cas.getHeapValue(curNode + cas.getFeatureOffset(actions.tailFeat)); curNode = cas.getHeapValue(curNode + cas.getFeatureOffset(tailFeat));
final int featAddr = addr + cds.cas.getFeatureOffset(featCode); final int featValRaw = cds.cas.getHeapValue(featAddr); final int featureValueClass = cds.classifyType(cds.tsi.range(featCode));
setRangeClass((TypeImpl) srcFeat.getRange(), i); final int i2 = i << 1; codesAndOffsets[i2 + K_SRC_FEAT_OFFSET] = originalSrcCasImpl.getFeatureOffset(srcFeatCode); codesAndOffsets[i2 + K_TGT_FEAT_CODE] = srcFeatCodes[i]; final int i2 = i << 1; int tgtFeatCode = ((FeatureImpl)tgtFeat).getCode(); codesAndOffsets[i2 + K_SRC_FEAT_OFFSET] = originalSrcCasImpl.getFeatureOffset(srcFeatCode); codesAndOffsets[i2 + K_TGT_FEAT_CODE] = tgtFeatCode;
final int featAddr = addr + cas.getFeatureOffset(feat); final int featVal = cas.getHeapValue(featAddr); if (featVal == CASImpl.NULL) { // null feature values do not refer to any other FS