int[] adjustedRange = SpanAnchoringModeBehavior.adjust(aJCas, layer.getAnchoringMode(), new int[] { selection.getBegin(), selection.getEnd() });
@Before public void setup() throws Exception { if (jcas == null) { jcas = JCasFactory.createJCas(); } else { jcas.reset(); } username = "user"; project = new Project(); project.setId(1l); project.setMode(PROJECT_TYPE_ANNOTATION); document = new SourceDocument(); document.setId(1l); document.setProject(project); neLayer = new AnnotationLayer(NamedEntity.class.getName(), "NE", SPAN_TYPE, project, true, TOKENS); neLayer.setId(1l); featureSupportRegistry = new FeatureSupportRegistryImpl(asList()); behaviors = asList(new SpanStackingBehavior(), new SpanCrossSentenceBehavior(), new SpanAnchoringModeBehavior()); }
@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]); } }