private List<AnnotationLayer> listLayers() { List<AnnotationLayer> layers = new ArrayList<>(); for (AnnotationLayer layer : annotationSchemaService .listAnnotationLayer(projectModel.getObject())) { if (WebAnnoConst.SPAN_TYPE.equals(layer.getType()) && !Token.class.getName().equals(layer.getName())) { layers.add(layer); } } return layers; }
private List<AnnotationLayer> listMetadataLayers() { return annotationService.listAnnotationLayer(getModelObject()).stream() .filter(layer -> DocumentMetadataLayerSupport.TYPE.equals(layer.getType())). collect(Collectors.toList()); }
private List<AnnotationLayer> listMetadataLayers() { return annotationService.listAnnotationLayer(getModelObject()).stream() .filter(layer -> DocumentMetadataLayerSupport.TYPE.equals(layer.getType())). collect(Collectors.toList()); }
public MtasDocumentIndex(Project aProject, AnnotationSchemaService aAnnotationSchemaService, DocumentService aDocumentService, ProjectService aProjectService, String aDir) throws IOException { annotationSchemaService = aAnnotationSchemaService; documentService = aDocumentService; projectService = aProjectService; project = aProject; // Create list with the annotation types of the layer (only the enabled ones) annotationShortNames = annotationSchemaService.listAnnotationLayer(project).stream() .filter(AnnotationLayer::isEnabled) .map(layer -> getShortName(layer.getName())) .collect(Collectors.toList()); resourceDir = new File(aDir); log.debug("New Mtas/Lucene index instance created..."); }
private void initLayerAndFeatureCache() { // Initialize and populate the hash maps for the layers and features layers = new HashMap<String, AnnotationLayer>(); layerFeatures = new HashMap<String, List<AnnotationFeature>>(); for (AnnotationLayer layer : annotationSchemaService.listAnnotationLayer(project)) { if (layer.isEnabled()) { layers.put(layer.getName(), layer); List<AnnotationFeature> features = new ArrayList<AnnotationFeature>(); for (AnnotationFeature feature : annotationSchemaService .listAnnotationFeature(layer)) { features.add(feature); } layerFeatures.put(layer.getName(), features); } } }
@Override protected List<AnnotationLayer> load() { Project project = ProjectLayersPanel.this.getModelObject(); if (project.getId() != null) { List<AnnotationLayer> _layers = annotationService .listAnnotationLayer(project); AnnotationLayer tokenLayer = annotationService .getLayer(Token.class.getName(), project); _layers.remove(tokenLayer); for (AnnotationLayer layer : _layers) { if (layer.isBuiltIn() && layer.isEnabled()) { colors.put(layer, "green"); } else if (layer.isEnabled()) { colors.put(layer, "blue"); } else { colors.put(layer, "red"); } } return _layers; } return new ArrayList<>(); } })
@Override protected List<AnnotationLayer> load() { Project project = ProjectLayersPanel.this.getModelObject(); if (project.getId() != null) { List<AnnotationLayer> _layers = annotationService .listAnnotationLayer(project); AnnotationLayer tokenLayer = annotationService .getLayer(Token.class.getName(), project); _layers.remove(tokenLayer); for (AnnotationLayer layer : _layers) { if (layer.isBuiltIn() && layer.isEnabled()) { colors.put(layer, "green"); } else if (layer.isEnabled()) { colors.put(layer, "blue"); } else { colors.put(layer, "red"); } } return _layers; } return new ArrayList<>(); } })
@Override public List<FeatureType> getSupportedFeatureTypes(AnnotationLayer aAnnotationLayer) { List<FeatureType> types = new ArrayList<>(); // Slot features are only supported on span layers if (WebAnnoConst.SPAN_TYPE.equals(aAnnotationLayer.getType())) { // Add layers of type SPAN available in the project for (AnnotationLayer spanLayer : annotationService .listAnnotationLayer(aAnnotationLayer.getProject())) { if ( Token.class.getName().equals(spanLayer.getName()) || Sentence.class.getName().equals(spanLayer.getName())) { continue; } if (WebAnnoConst.SPAN_TYPE.equals(spanLayer.getType())) { types.add(new FeatureType(spanLayer.getName(), "Link: " + spanLayer.getUiName(), featureSupportId)); } } // Also allow the user to use any annotation type as slot filler types.add(new FeatureType(CAS.TYPE_NAME_ANNOTATION, "Link: <Any>", featureSupportId)); } return types; }
@Override public List<FeatureType> getSupportedFeatureTypes(AnnotationLayer aAnnotationLayer) { List<FeatureType> types = new ArrayList<>(); // Slot features are only supported on span layers if (WebAnnoConst.SPAN_TYPE.equals(aAnnotationLayer.getType())) { // Add layers of type SPAN available in the project for (AnnotationLayer spanLayer : annotationService .listAnnotationLayer(aAnnotationLayer.getProject())) { if ( Token.class.getName().equals(spanLayer.getName()) || Sentence.class.getName().equals(spanLayer.getName())) { continue; } if (WebAnnoConst.SPAN_TYPE.equals(spanLayer.getType())) { types.add(new FeatureType(spanLayer.getName(), "Link: " + spanLayer.getUiName(), featureSupportId)); } } // Also allow the user to use any annotation type as slot filler types.add(new FeatureType(CAS.TYPE_NAME_ANNOTATION, "Link: <Any>", featureSupportId)); } return types; }
@Override public void repair(Project aProject, CAS aCas, List<LogMessage> aMessages) for (AnnotationLayer layer : annotationService.listAnnotationLayer(aProject)) { if (!WebAnnoConst.CHAIN_TYPE.equals(layer.getType())) { continue;
for (AnnotationLayer layer : annotationService.listAnnotationLayer(aRequest.getProject())) { exLayers.add(exportLayerDetails(layerToExLayers, featureToExFeatures, layer));
@EventListener public void beforeProjectRemove(BeforeProjectRemovedEvent aEvent) throws Exception { Project project = aEvent.getProject(); for (AnnotationFeature feature : service.listAnnotationFeature(project)) { service.removeAnnotationFeature(feature); } // remove the layers too for (AnnotationLayer layer : service.listAnnotationLayer(project)) { service.removeAnnotationLayer(layer); } for (TagSet tagSet : service.listTagSets(project)) { service.removeTagSet(tagSet); } } }
for (AnnotationLayer layer : annotationService.listAnnotationLayer(aRequest.getProject())) { exLayers.add(exportLayerDetails(layerToExLayers, featureToExFeatures, layer));
@EventListener public void beforeProjectRemove(BeforeProjectRemovedEvent aEvent) throws Exception { Project project = aEvent.getProject(); for (AnnotationFeature feature : service.listAnnotationFeature(project)) { service.removeAnnotationFeature(feature); } // remove the layers too for (AnnotationLayer layer : service.listAnnotationLayer(project)) { service.removeAnnotationLayer(layer); } for (TagSet tagSet : service.listTagSets(project)) { service.removeTagSet(tagSet); } } }
model.annotationLayers = annotationService.listAnnotationLayer(state.getProject()).stream()
@Before public void setUp() throws Exception { initMocks(this); project = new Project(); project.setId(1l); project.setName("Test Project"); project.setMode(WebAnnoConst.PROJECT_TYPE_ANNOTATION); workFolder = tempFolder.newFolder(); when(annotationService.listAnnotationLayer(any())).thenReturn(layers()); sut = new LayerExporter(annotationService); }
@Before public void setup() throws Exception { initMocks(this); schemaService = mock(AnnotationSchemaServiceImpl.class); backupProperties = new BackupProperties(); repositoryProperties = new RepositoryProperties(); repositoryProperties.setPath(testFolder.newFolder()); storageService = new CasStorageServiceImpl(null, repositoryProperties, backupProperties); sut = new ImportExportServiceImpl(repositoryProperties, asList(new XmiFormatSupport()), storageService, schemaService); sut.onContextRefreshedEvent(); when(schemaService.listAnnotationLayer(any(Project.class))).thenReturn(emptyList()); // We don't want to re-write the prepareCasForExport method - call the original when(schemaService.prepareCasForExport(any(), any())).thenCallRealMethod(); // The prepareCasForExport method internally calls getFullProjectTypeSystem, so we need to // ensure this is actually callable and doesn't run into a mocked version which simply // returns null. when(schemaService.getFullProjectTypeSystem(any(), anyBoolean())).thenCallRealMethod(); }
@Test public void testOkBecauseCoref() throws Exception { AnnotationLayer relationLayer = new AnnotationLayer(); relationLayer.setName(CoreferenceChain.class.getName()); relationLayer.setType(WebAnnoConst.CHAIN_TYPE); Mockito.when(annotationService.listAnnotationLayer(Mockito.isNull())) .thenReturn(Arrays.asList(relationLayer)); JCas jcas = JCasFactory.createJCas(); jcas.setDocumentText("This is a test."); Token spanThis = new Token(jcas, 0, 4); spanThis.addToIndexes(); Token spanIs = new Token(jcas, 6, 8); spanIs.addToIndexes(); Token spanA = new Token(jcas, 9, 10); spanA.addToIndexes(); Dependency dep1 = new Dependency(jcas, 0, 8); dep1.setGovernor(spanThis); dep1.setDependent(spanIs); dep1.addToIndexes(); Dependency dep2 = new Dependency(jcas, 0, 10); dep2.setGovernor(spanA); dep2.setDependent(spanIs); dep2.addToIndexes(); List<LogMessage> messages = new ArrayList<>(); boolean result = check.check(null, jcas.getCas(), messages); messages.forEach(System.out::println); assertTrue(result); }
@Test public void testOK() throws Exception { AnnotationLayer relationLayer = new AnnotationLayer(); relationLayer.setName(Dependency.class.getName()); relationLayer.setType(WebAnnoConst.RELATION_TYPE); Mockito.when(annotationService.listAnnotationLayer(Mockito.isNull())) .thenReturn(Arrays.asList(relationLayer)); JCas jcas = JCasFactory.createJCas(); jcas.setDocumentText("This is a test."); Token spanThis = new Token(jcas, 0, 4); spanThis.addToIndexes(); Token spanIs = new Token(jcas, 6, 8); spanIs.addToIndexes(); Token spanA = new Token(jcas, 9, 10); spanA.addToIndexes(); Dependency dep1 = new Dependency(jcas, 0, 8); dep1.setGovernor(spanThis); dep1.setDependent(spanIs); dep1.addToIndexes(); Dependency dep2 = new Dependency(jcas, 6, 10); dep2.setGovernor(spanIs); dep2.setDependent(spanA); dep2.addToIndexes(); List<LogMessage> messages = new ArrayList<>(); boolean result = check.check(null, jcas.getCas(), messages); messages.forEach(System.out::println); assertTrue(result); }
jCas, schemaService.listAnnotationLayer(project));