int[] adjustedRange = SpanAnchoringModeBehavior.adjust(aJCas, layer.getAnchoringMode(), new int[] { selection.getBegin(), selection.getEnd() });
@Override public CreateSpanAnnotationRequest onCreate(TypeAdapter aAdapter, CreateSpanAnnotationRequest aRequest) throws AnnotationException { if (aRequest.getBegin() == aRequest.getEnd()) { if (!aAdapter.getLayer().getAnchoringMode().isZeroSpanAllowed()) { throw new AnnotationException( "Cannot create zero-width annotation on layers that lock to token boundaries."); } return aRequest; } int[] originalRange = new int[] { aRequest.getBegin(), aRequest.getEnd() }; int[] adjustedRange = adjust(aRequest.getJcas(), aAdapter.getLayer().getAnchoringMode(), originalRange); if (adjustedRange.equals(originalRange)) { return aRequest; } else { return aRequest.changeSpan(adjustedRange[0], adjustedRange[1]); } }
@Override public CreateSpanAnnotationRequest onCreate(TypeAdapter aAdapter, CreateSpanAnnotationRequest aRequest) throws AnnotationException { if (aRequest.getBegin() == aRequest.getEnd()) { if (!aAdapter.getLayer().getAnchoringMode().isZeroSpanAllowed()) { throw new AnnotationException( "Cannot create zero-width annotation on layers that lock to token boundaries."); } return aRequest; } int[] originalRange = new int[] { aRequest.getBegin(), aRequest.getEnd() }; int[] adjustedRange = adjust(aRequest.getJcas(), aAdapter.getLayer().getAnchoringMode(), originalRange); if (adjustedRange.equals(originalRange)) { return aRequest; } else { return aRequest.changeSpan(adjustedRange[0], adjustedRange[1]); } }