├── .github └── workflows │ ├── ci.yaml │ ├── notify-deploy-project.yaml │ └── release.yaml ├── .gitignore ├── .travis.yml ├── CODE_OF_CONDUCT.md ├── Dockerfile ├── contributing.md ├── hooks └── build ├── license.txt ├── mvnw ├── mvnw.cmd ├── pom.xml ├── readme.md └── src ├── main ├── java │ └── edu │ │ └── stanford │ │ └── protege │ │ └── webprotege │ │ ├── ApplicationActionHandlerBeansConfiguration.java │ │ ├── ApplicationBeansConfiguration.java │ │ ├── BatchCollector.java │ │ ├── DataFactory.java │ │ ├── DeserializationUtil.java │ │ ├── EntityMatcherBeansConfiguration.java │ │ ├── ExecutorsConfiguration.java │ │ ├── Filter.java │ │ ├── FormBeansConfiguration.java │ │ ├── FormDataBuilderConfiguration.java │ │ ├── HasDispose.java │ │ ├── HasSubject.java │ │ ├── LuceneBeansConfiguration.java │ │ ├── PrimitiveType.java │ │ ├── ProjectActionHandlerBeansConfiguration.java │ │ ├── ProjectBeansConfiguration.java │ │ ├── ProjectIndexBeansConfiguration.java │ │ ├── ReadWriteLockConfig.java │ │ ├── StreamUtils.java │ │ ├── TimeUtil.java │ │ ├── WebprotegeBackendMonolithApplication.java │ │ ├── access │ │ ├── AccessManager.java │ │ ├── AccessManagerConfiguration.java │ │ ├── AccessManagerImpl.java │ │ ├── BuiltInCapability.java │ │ ├── BuiltInRole.java │ │ └── ObjectMapperExtraCapabilitiesCustomizer.java │ │ ├── api │ │ ├── ActionExecutor.java │ │ ├── TimestampDeserializer.java │ │ └── TimestampSerializer.java │ │ ├── app │ │ ├── AccountCreationSetting.java │ │ ├── ApplicationDisposablesManager.java │ │ ├── ApplicationHostSupplier.java │ │ ├── ApplicationLocation.java │ │ ├── ApplicationNameSupplier.java │ │ ├── ApplicationPathSupplier.java │ │ ├── ApplicationPortSupplier.java │ │ ├── ApplicationPreferences.java │ │ ├── ApplicationPreferencesStore.java │ │ ├── ApplicationScheme.java │ │ ├── ApplicationSchemeSupplier.java │ │ ├── ApplicationSettings.java │ │ ├── ApplicationSettingsChecker.java │ │ ├── ApplicationSettingsManager.java │ │ ├── DefaultApplicationPreferences.java │ │ ├── GetApplicationSettingsActionHandler.java │ │ ├── GetApplicationSettingsCommandHandler.java │ │ ├── NotificationEmailsSetting.java │ │ ├── PlaceUrl.java │ │ ├── ProjectComponentFactoryImpl.java │ │ ├── ProjectCreationSetting.java │ │ ├── ProjectUploadSetting.java │ │ ├── SetApplicationSettingsAction.java │ │ ├── SetApplicationSettingsActionHandler.java │ │ ├── SetApplicationSettingsCommandHandler.java │ │ └── SetApplicationSettingsResult.java │ │ ├── axiom │ │ ├── AxiomByRenderingComparator.java │ │ ├── AxiomBySubjectComparator.java │ │ ├── AxiomByTypeComparator.java │ │ ├── AxiomComparatorImpl.java │ │ ├── AxiomIRISubjectProvider.java │ │ ├── AxiomSubjectProvider.java │ │ ├── AxiomTypeGroup.java │ │ ├── AxiomTypeOrdering.java │ │ └── DefaultAxiomTypeOrdering.java │ │ ├── axioms │ │ ├── AddAxiomsCommandHandler.java │ │ ├── AddAxiomsDelegateHandler.java │ │ ├── AxiomsDocumentLoader.java │ │ ├── RemoveAxiomsCommandHandler.java │ │ └── RemoveAxiomsDelegateHandler.java │ │ ├── bulkop │ │ ├── AnnotationSimpleMatchingCriteria.java │ │ ├── EditAnnotationValuesActionHandler.java │ │ ├── EditAnnotationsChangeListGenerator.java │ │ ├── EditAnnotationsChangeListGeneratorFactory.java │ │ ├── EditAnnotationsCommandHandler.java │ │ ├── MoveClassesChangeListGenerator.java │ │ ├── MoveClassesChangeListGeneratorFactory.java │ │ ├── MoveEntitiesToParentCommandHandler.java │ │ ├── MoveToParentActionHandler.java │ │ ├── NewAnnotationData.java │ │ ├── Operation.java │ │ ├── SetAnnotationValueActionChangeListGenerator.java │ │ ├── SetAnnotationValueActionChangeListGeneratorFactory.java │ │ ├── SetAnnotationValueActionHandler.java │ │ └── SetAnnotationValueCommandHandler.java │ │ ├── card │ │ ├── CardContentDescriptor.java │ │ ├── CardDescriptor.java │ │ ├── CardDescriptorRepository.java │ │ ├── CardDescriptorRepositoryImpl.java │ │ ├── CardId.java │ │ ├── CustomContentEntityCardContentDescriptor.java │ │ ├── CustomContentId.java │ │ ├── FormCardContentDescriptor.java │ │ ├── GetEntityCardDescriptorsHandler.java │ │ ├── GetEntityCardDescriptorsProjectActionHandler.java │ │ ├── GetEntityCardDescriptorsRequest.java │ │ ├── GetEntityCardDescriptorsResponse.java │ │ └── ProjectCardDescriptorsRecord.java │ │ ├── change │ │ ├── AbstractCreateEntitiesChangeListGenerator.java │ │ ├── ChangeApplicationResult.java │ │ ├── ChangeDescriptionGenerator.java │ │ ├── ChangeGenerationContext.java │ │ ├── ChangeListGenerator.java │ │ ├── ChangeListMinimiser.java │ │ ├── CreateAnnotationPropertiesChangeGenerator.java │ │ ├── CreateAnnotationPropertiesChangeGeneratorFactory.java │ │ ├── CreateClassesChangeGenerator.java │ │ ├── CreateClassesChangeGeneratorFactory.java │ │ ├── CreateDataPropertiesChangeGenerator.java │ │ ├── CreateDataPropertiesChangeGeneratorFactory.java │ │ ├── CreateObjectPropertiesChangeGenerator.java │ │ ├── CreateObjectPropertiesChangeGeneratorFactory.java │ │ ├── FindAndReplaceIRIPrefixChangeGenerator.java │ │ ├── FindAndReplaceIRIPrefixChangeGeneratorFactory.java │ │ ├── FixedChangeListGenerator.java │ │ ├── GetProjectChangesActionHandler.java │ │ ├── GetProjectChangesCommandHandler.java │ │ ├── HasApplyChanges.java │ │ ├── HasGetChangeSubjects.java │ │ ├── HasHighLevelEvents.java │ │ ├── HasProjectChanges.java │ │ ├── OntologyAxiomPair.java │ │ ├── OntologyChangeComparator.java │ │ ├── OntologyChangeIriReplacer.java │ │ ├── OntologyChangeList.java │ │ ├── OntologyChangeSubjectProvider.java │ │ ├── OwlOntologyChangeTranslator.java │ │ ├── OwlOntologyChangeTranslatorVisitor.java │ │ ├── ProjectChange.java │ │ ├── ProjectChangeTimestampComparator.java │ │ ├── ReverseEngineeredChangeDescriptionGenerator.java │ │ ├── ReverseEngineeredChangeDescriptionGeneratorFactory.java │ │ ├── RevertRevisionActionHandler.java │ │ ├── RevertRevisionCommandHandler.java │ │ ├── RevisionReverterChangeListGenerator.java │ │ ├── RevisionReverterChangeListGeneratorFactory.java │ │ ├── SilentChangeListGenerator.java │ │ ├── description │ │ │ ├── AbstractAnnotationChange.java │ │ │ ├── AbstractCreatedProperties.java │ │ │ ├── AbstractMovedProperties.java │ │ │ ├── AddedAnnotation.java │ │ │ ├── AddedIndividualType.java │ │ │ ├── AddedLanguageTag.java │ │ │ ├── AddedParent.java │ │ │ ├── AddedPropertyDomain.java │ │ │ ├── AddedPropertyRange.java │ │ │ ├── AddedRelationship.java │ │ │ ├── AddedSameAs.java │ │ │ ├── ChangedAnnotationProperty.java │ │ │ ├── CreatedAnnotationProperties.java │ │ │ ├── CreatedClasses.java │ │ │ ├── CreatedDataProperties.java │ │ │ ├── CreatedIndividuals.java │ │ │ ├── CreatedObjectProperties.java │ │ │ ├── DeletedEntities.java │ │ │ ├── DeprecatedEntities.java │ │ │ ├── EditedAnnotationValue.java │ │ │ ├── EditedLanguageTag.java │ │ │ ├── EditedRelationshipValue.java │ │ │ ├── MergedEntities.java │ │ │ ├── MovedAnnotationProperties.java │ │ │ ├── MovedClasses.java │ │ │ ├── MovedDataProperties.java │ │ │ ├── MovedObjectProperties.java │ │ │ ├── RemovedAnnotation.java │ │ │ ├── RemovedIndividualType.java │ │ │ ├── RemovedLanguageTag.java │ │ │ ├── RemovedParent.java │ │ │ ├── RemovedPropertyDomain.java │ │ │ ├── RemovedPropertyRange.java │ │ │ ├── RemovedRelationship.java │ │ │ ├── RemovedSameAs.java │ │ │ ├── SetDataPropertyFunctional.java │ │ │ ├── SetObjectPropertyCharacteristic.java │ │ │ ├── StructuredChangeDescription.java │ │ │ ├── SwitchedAnnotationProperty.java │ │ │ ├── SwitchedRelationshipProperty.java │ │ │ ├── UndeprecatedEntities.java │ │ │ ├── UnsetDataPropertyFunctional.java │ │ │ └── UnsetObjectPropertyCharacteristic.java │ │ └── matcher │ │ │ ├── AbstractAxiomMatcher.java │ │ │ ├── AnnotationAssertionChangeMatcher.java │ │ │ ├── CandidateAxiomEdit.java │ │ │ ├── ChangeMatcher.java │ │ │ ├── ChangeSummary.java │ │ │ ├── ClassAssertionAxiomMatcher.java │ │ │ ├── ClassMoveChangeMatcher.java │ │ │ ├── EditedAnnotationAssertionChangeMatcher.java │ │ │ ├── EntityCreationAxiomSubjectProvider.java │ │ │ ├── EntityCreationMatcher.java │ │ │ ├── EntityDeletionMatcher.java │ │ │ ├── FunctionalDataPropertyAxiomChangeMatcher.java │ │ │ ├── MergeEntitiesMatcher.java │ │ │ ├── PropertyAssertionAxiomMatcher.java │ │ │ ├── PropertyDomainAxiomChangeMatcher.java │ │ │ ├── PropertyFiller.java │ │ │ ├── PropertyRangeAxiomChangeMatcher.java │ │ │ ├── SameIndividualAxiomChangeMatcher.java │ │ │ ├── SubClassOfAxiomMatcher.java │ │ │ ├── SubClassOfEditChangeMatcher.java │ │ │ └── SubClassOfWithFreshEntitiesMatcher.java │ │ ├── color │ │ └── Color.java │ │ ├── crud │ │ ├── CannotGenerateFreshEntityIdException.java │ │ ├── ChangeSetEntityCrudSession.java │ │ ├── ConditionalIriPrefix.java │ │ ├── DeleteEntitiesChangeListGenerator.java │ │ ├── DeleteEntitiesChangeListGeneratorFactory.java │ │ ├── DeleteEntityChangeListGenerator.java │ │ ├── EmptyChangeSetEntityCrudSession.java │ │ ├── EntityCrudContext.java │ │ ├── EntityCrudContextFactory.java │ │ ├── EntityCrudKitHandler.java │ │ ├── EntityCrudKitId.java │ │ ├── EntityCrudKitPlugin.java │ │ ├── EntityCrudKitPluginManager.java │ │ ├── EntityCrudKitPrefixSettings.java │ │ ├── EntityCrudKitRegistry.java │ │ ├── EntityIriPrefixCriteriaRewriter.java │ │ ├── EntityIriPrefixResolver.java │ │ ├── EntityShortForm.java │ │ ├── GetEntityCrudKitSettingsActionHandler.java │ │ ├── GetEntityCrudKitsActionHandler.java │ │ ├── GetEntityCrudKitsCommandHandler.java │ │ ├── HasKitId.java │ │ ├── IRIParser.java │ │ ├── IRIPrefixUpdateStrategy.java │ │ ├── PrefixedNameExpander.java │ │ ├── ProjectEntityCrudKitHandlerCache.java │ │ ├── SetEntityCrudKitSettingsActionHandler.java │ │ ├── SetEntityCrudKitSettingsCommandHandler.java │ │ ├── gen │ │ │ ├── GeneratedAnnotationDescriptor.java │ │ │ ├── GeneratedAnnotationsGenerator.java │ │ │ ├── GeneratedAnnotationsSettings.java │ │ │ ├── GeneratedValueDescriptor.java │ │ │ ├── GeneratedValueDescriptorVisitor.java │ │ │ ├── IncrementingPatternDescriptor.java │ │ │ └── IncrementingPatternDescriptorValueGenerator.java │ │ ├── obo │ │ │ ├── CannotGenerateFreshEntityIdForUserException.java │ │ │ ├── OBOIdSession.java │ │ │ ├── OBOIdSuffixEntityCrudKitHandler.java │ │ │ ├── OBOIdSuffixEntityCrudKitHandlerFactory.java │ │ │ └── OBOIdSuffixEntityCrudKitPlugin.java │ │ ├── persistence │ │ │ ├── ProjectEntityCrudKitSettings.java │ │ │ └── ProjectEntityCrudKitSettingsRepository.java │ │ ├── supplied │ │ │ ├── SuppliedNameSuffixEntityCrudKitHandler.java │ │ │ ├── SuppliedNameSuffixEntityCrudKitHandlerFactory.java │ │ │ └── SuppliedNameSuffixEntityCrudKitPlugin.java │ │ └── uuid │ │ │ ├── UuidEntityCrudKitHandler.java │ │ │ ├── UuidEntityCrudKitHandlerFactory.java │ │ │ └── UuidEntityCrudKitPlugin.java │ │ ├── csv │ │ ├── CSVColumnDescriptor.java │ │ ├── CSVGrid.java │ │ ├── CSVGridParser.java │ │ ├── CSVImportDescriptor.java │ │ ├── CSVReaderHandler.java │ │ ├── CSVRow.java │ │ ├── CSVRowImportType.java │ │ ├── ColumnType.java │ │ ├── DocumentId.java │ │ ├── GetCSVGridAction.java │ │ ├── GetCSVGridActionHandler.java │ │ ├── GetCSVGridResult.java │ │ ├── ImportCSVFileAction.java │ │ ├── ImportCSVFileActionHandler.java │ │ ├── ImportCSVFileChangeListGenerator.java │ │ ├── ImportCSVFileChangeListGeneratorFactory.java │ │ └── ImportCSVFileResult.java │ │ ├── diff │ │ ├── DiffElement.java │ │ ├── DiffElementOperationComparator.java │ │ ├── DiffElementRenderer.java │ │ ├── DiffOperation.java │ │ ├── OntologyDiff2OntologyChanges.java │ │ ├── Revision2DiffElementsTranslator.java │ │ └── SameSubjectFilter.java │ │ ├── dispatch │ │ ├── AbstractProjectActionHandler.java │ │ ├── AbstractProjectChangeHandler.java │ │ ├── ActionExecutionException.java │ │ ├── ActionExecutionResult.java │ │ ├── ActionHandler.java │ │ ├── ActionHandlerNotFoundException.java │ │ ├── ActionHandlerRegistry.java │ │ ├── ApplicationActionHandler.java │ │ ├── DispatchServiceExecutor.java │ │ ├── DispatchServiceResultContainer.java │ │ ├── InvalidRequestException.java │ │ ├── ProjectActionHandler.java │ │ ├── ProjectActionHandlerComponent.java │ │ ├── RequestContext.java │ │ ├── RequestValidationResult.java │ │ ├── RequestValidator.java │ │ ├── Result.java │ │ ├── ValidationResult.java │ │ ├── actions │ │ │ ├── AddAxiomsAction.java │ │ │ ├── AddAxiomsResult.java │ │ │ ├── AxiomsSource.java │ │ │ ├── DeleteAxiomsAction.java │ │ │ ├── DeleteAxiomsResult.java │ │ │ ├── GetRevisionAction.java │ │ │ ├── GetRevisionResult.java │ │ │ ├── GetRevisionsAction.java │ │ │ ├── GetRevisionsResult.java │ │ │ ├── SaveEntityChildrenOrderingAction.java │ │ │ └── SaveEntityChildrenOrderingResult.java │ │ ├── handlers │ │ │ ├── AddAxiomsActionHandler.java │ │ │ ├── AddAxiomsChangeListGenerator.java │ │ │ ├── AddAxiomsChangeListGeneratorFactory.java │ │ │ ├── CreateAnnotationPropertiesActionHandler.java │ │ │ ├── CreateClassesActionHandler.java │ │ │ ├── CreateDataPropertiesActionHandler.java │ │ │ ├── CreateObjectPropertiesActionHandler.java │ │ │ ├── DeleteAxiomsActionHandler.java │ │ │ ├── DeleteAxiomsCommandHandler.java │ │ │ ├── DeleteEntitiesActionHandler.java │ │ │ ├── GetOntologyAnnotationsActionHandler.java │ │ │ ├── GetRevisionActionHandler.java │ │ │ ├── GetRevisionsActionHandler.java │ │ │ ├── GetRootOntologyIdActionHandler.java │ │ │ ├── LoadProjectActionHandler.java │ │ │ ├── LoadProjectCommandHandler.java │ │ │ ├── SaveEntityChildrenOrderingActionHandler.java │ │ │ ├── SaveEntityChildrenOrderingCommandHandler.java │ │ │ └── SetOntologyAnnotationsActionHandler.java │ │ ├── impl │ │ │ ├── ActionHandlerRegistryImpl.java │ │ │ ├── ApplicationActionHandlerRegistry.java │ │ │ ├── DispatchServiceExecutorImpl.java │ │ │ └── ProjectActionHandlerRegistry.java │ │ └── validators │ │ │ ├── ApplicationPermissionValidator.java │ │ │ ├── CompositeRequestValidator.java │ │ │ ├── NullValidator.java │ │ │ ├── ProjectPermissionValidator.java │ │ │ ├── UserIsDicussionThreadCreatorValidator.java │ │ │ ├── UserIsProjectOwnerValidator.java │ │ │ └── UserIsSignedInValidator.java │ │ ├── entity │ │ ├── ChangeEntityIRIActionHandler.java │ │ ├── CommentedEntityData.java │ │ ├── CreateAnnotationPropertiesCommandHandler.java │ │ ├── CreateClassesCommandHandler.java │ │ ├── CreateDataPropertiesCommandHandler.java │ │ ├── CreateEntityFromFormDataActionHandler.java │ │ ├── CreateEntityFromFormDataChangeListGenerator.java │ │ ├── CreateEntityFromFormDataChangeListGeneratorFactory.java │ │ ├── CreateEntityFromFormDataCommandHandler.java │ │ ├── CreateNamedIndividualsCommandHandler.java │ │ ├── CreateObjectPropertiesCommandHandler.java │ │ ├── DeclarationParser.java │ │ ├── Entity.java │ │ ├── EntityDisplay.java │ │ ├── EntityLookupRequest.java │ │ ├── EntityLookupResult.java │ │ ├── EntityNameCharType.java │ │ ├── EntityNameUtils.java │ │ ├── EntityNodeIndex.java │ │ ├── EntityNodeRenderer.java │ │ ├── EntityRenamer.java │ │ ├── EntityShortFormsParser.java │ │ ├── EntityTypeGroup.java │ │ ├── FreshEntityIri.java │ │ ├── GetDeprecatedEntitiesActionHandler.java │ │ ├── GetDeprecatedEntitiesCommandHandler.java │ │ ├── GetEntityDirectParentsAction.java │ │ ├── GetEntityDirectParentsActionHandler.java │ │ ├── GetEntityDirectParentsCommandHandler.java │ │ ├── GetEntityDirectParentsResult.java │ │ ├── LookupEntitiesActionHandler.java │ │ ├── LookupEntitiesCommandHandler.java │ │ ├── MergeEntitiesActionHandler.java │ │ ├── MergeEntitiesChangeListGenerator.java │ │ ├── MergeEntitiesChangeListGeneratorFactory.java │ │ ├── MergeEntitiesCommandHandler.java │ │ ├── MergedEntityTreatment.java │ │ ├── RecordEntityChoiceLookupResult.java │ │ ├── SetEntityDeprecatedCommandHandler.java │ │ ├── SetEntityDeprecatedDelegateHandler.java │ │ └── SubjectClosureResolver.java │ │ ├── events │ │ ├── BrowserTextChangedEventComputer.java │ │ ├── EntityDeprecatedChangedEventTranslator.java │ │ ├── EntityHierarchyChangedEventProxy.java │ │ ├── EntityHierarchyChangedEventProxyFactory.java │ │ ├── EntityTagsChangedEventComputer.java │ │ ├── EventTranslator.java │ │ ├── EventTranslatorManager.java │ │ ├── HierarchyChangesComputerFactory.java │ │ ├── HighLevelEventGenerator.java │ │ ├── HighLevelProjectEventProxy.java │ │ ├── ManagedHierarchiesChangedComputer.java │ │ └── SimpleHighLevelProjectEventProxy.java │ │ ├── filemanager │ │ ├── ConfigDirectorySupplier.java │ │ ├── ConfigInputStreamSupplier.java │ │ └── FileContents.java │ │ ├── filter │ │ ├── Filter.java │ │ ├── FilterId.java │ │ ├── FilterSet.java │ │ └── FilterSetting.java │ │ ├── forms │ │ ├── AxiomTemplatesParser.java │ │ ├── BindingValuesExtractor.java │ │ ├── ChoiceDescriptorCache.java │ │ ├── ChoiceDescriptorDtoSupplier.java │ │ ├── CopyFormDescriptorsAction.java │ │ ├── CopyFormDescriptorsActionHandler.java │ │ ├── CopyFormDescriptorsCommandHandler.java │ │ ├── CopyFormDescriptorsResult.java │ │ ├── CreateEntityFromFormDataAction.java │ │ ├── CreateEntityFromFormDataResult.java │ │ ├── DeleteFormAction.java │ │ ├── DeleteFormActionHandler.java │ │ ├── DeleteFormCommandHandler.java │ │ ├── DeleteFormResult.java │ │ ├── DeprecateEntityByFormAction.java │ │ ├── DeprecateEntityByFormActionHandler.java │ │ ├── DeprecateEntityByFormChangeListGenerator.java │ │ ├── DeprecateEntityByFormChangeListGeneratorFactory.java │ │ ├── DeprecateEntityByFormResult.java │ │ ├── DynamicListChoiceDescriptorDtoSupplier.java │ │ ├── EntityFormChangeListGenerator.java │ │ ├── EntityFormChangeListGeneratorFactory.java │ │ ├── EntityFormDataRequestSpec.java │ │ ├── EntityFormDescriptor.java │ │ ├── EntityFormManager.java │ │ ├── EntityFormRepository.java │ │ ├── EntityFormRepositoryImpl.java │ │ ├── EntityFormSelector.java │ │ ├── EntityFormSelectorRepository.java │ │ ├── EntityFormSelectorRepositoryImpl.java │ │ ├── EntityFormSubjectFactory.java │ │ ├── EntityFrameFormDataComponent.java │ │ ├── EntityFrameFormDataDtoBuilder.java │ │ ├── EntityFrameFormDataDtoBuilderFactory.java │ │ ├── EntityFrameFormDataDtoBuilderFactoryImpl.java │ │ ├── EntityFrameMapper.java │ │ ├── EntityFrameMapperFactory.java │ │ ├── EntityNameControlValuesBuilder.java │ │ ├── ExpansionState.java │ │ ├── FilterState.java │ │ ├── FixedListChoiceDescriptorDtoSupplier.java │ │ ├── FormControlDataLangTagBasedInclusion.java │ │ ├── FormControlValueDeserializer.java │ │ ├── FormDataBuilderSession.java │ │ ├── FormDataBuilderSessionRenderer.java │ │ ├── FormDataByFormId.java │ │ ├── FormDataUpdateSanityChecker.java │ │ ├── FormDescriptor.java │ │ ├── FormDescriptorDto.java │ │ ├── FormDescriptorDtoTranslator.java │ │ ├── FormDescriptorDtoTranslatorComponent.java │ │ ├── FormDescriptorRecord.java │ │ ├── FormFieldBindingMissingException.java │ │ ├── FormFilterMatcherFactory.java │ │ ├── FormFrame.java │ │ ├── FormFrameBuilder.java │ │ ├── FormFrameConverter.java │ │ ├── FormFrameFlattener.java │ │ ├── FormGroup.java │ │ ├── FormGroupId.java │ │ ├── FormId.java │ │ ├── FormPageRequest.java │ │ ├── FormPageRequestIndex.java │ │ ├── FormPurpose.java │ │ ├── FormRegionAccessRestriction.java │ │ ├── FormRegionCapability.java │ │ ├── FormRegionFilterIndex.java │ │ ├── FormRegionFilterPredicateManager.java │ │ ├── FormRegionOrderingIndex.java │ │ ├── FormRegionPageRequest.java │ │ ├── FormSubjectFactoryDescriptor.java │ │ ├── FormSubjectFactoryDescriptorMissingException.java │ │ ├── FormSubjectResolver.java │ │ ├── FormSubjectTranslator.java │ │ ├── FormsCopier.java │ │ ├── FormsCopierFactory.java │ │ ├── GetEntityCreationFormsAction.java │ │ ├── GetEntityCreationFormsActionHandler.java │ │ ├── GetEntityCreationFormsCommandHandler.java │ │ ├── GetEntityCreationFormsResult.java │ │ ├── GetEntityDeprecationFormsAction.java │ │ ├── GetEntityDeprecationFormsActionHandler.java │ │ ├── GetEntityDeprecationFormsCommandHandler.java │ │ ├── GetEntityDeprecationFormsResult.java │ │ ├── GetEntityFormDescriptorAction.java │ │ ├── GetEntityFormDescriptorActionHandler.java │ │ ├── GetEntityFormDescriptorCommandHandler.java │ │ ├── GetEntityFormDescriptorResult.java │ │ ├── GetEntityFormsAction.java │ │ ├── GetEntityFormsActionHandler.java │ │ ├── GetEntityFormsCommandHandler.java │ │ ├── GetEntityFormsResult.java │ │ ├── GetFormRegionAccessRestrictionsHandler.java │ │ ├── GetFormRegionAccessRestrictionsRequest.java │ │ ├── GetFormRegionAccessRestrictionsResponse.java │ │ ├── GetProjectFormDescriptorsAction.java │ │ ├── GetProjectFormDescriptorsActionHandler.java │ │ ├── GetProjectFormDescriptorsCommandHandler.java │ │ ├── GetProjectFormDescriptorsResult.java │ │ ├── GridColumnBindingMissingException.java │ │ ├── GridControlValuesBuilder.java │ │ ├── HasFilterState.java │ │ ├── HasFormRegionId.java │ │ ├── HasFormRegionPagedChangedHandler.java │ │ ├── ImageControlValuesBuilder.java │ │ ├── MultiChoiceControlValueBuilder.java │ │ ├── NumberControlValuesBuilder.java │ │ ├── OWLEntity2FormControlDataVisitor.java │ │ ├── OWLPrimitive2FormControlDataConverter.java │ │ ├── PrimitiveFormControlDataDtoRenderer.java │ │ ├── PropertyNames.java │ │ ├── PropertyValueFormDataTranslator.java │ │ ├── RegionPageChangedHandler.java │ │ ├── SetEntityFormDescriptorAction.java │ │ ├── SetEntityFormDescriptorActionHandler.java │ │ ├── SetEntityFormDescriptorCommandHandler.java │ │ ├── SetEntityFormDescriptorResult.java │ │ ├── SetEntityFormsDataAction.java │ │ ├── SetEntityFormsDataActionHandler.java │ │ ├── SetEntityFormsDataCommandHandler.java │ │ ├── SetEntityFormsDataResult.java │ │ ├── SetFormRegionAccessRestrictionsHandler.java │ │ ├── SetFormRegionAccessRestrictionsRequest.java │ │ ├── SetFormRegionAccessRestrictionsResponse.java │ │ ├── SetProjectFormDescriptorsAction.java │ │ ├── SetProjectFormDescriptorsActionHandler.java │ │ ├── SetProjectFormDescriptorsCommandHandler.java │ │ ├── SetProjectFormDescriptorsResult.java │ │ ├── SetProjectFormsCommandHandler.java │ │ ├── SetProjectFormsRequest.java │ │ ├── SetProjectFormsResult.java │ │ ├── SingleChoiceControlValuesBuilder.java │ │ ├── SubFormControlValuesBuilder.java │ │ ├── SuppliedNameTemplateResolver.java │ │ ├── TextControlValuesBuilder.java │ │ ├── UpdateFormDescriptorAction.java │ │ ├── UpdateFormDescriptorActionHandler.java │ │ ├── UpdateFormDescriptorCommandHandler.java │ │ ├── UpdateFormDescriptorResult.java │ │ ├── ValidationStatus.java │ │ ├── data │ │ │ ├── ComplexFormControlValue.java │ │ │ ├── CompositePrimitiveFormControlDataMatchCriteria.java │ │ │ ├── EntityFormControlData.java │ │ │ ├── EntityFormControlDataDto.java │ │ │ ├── EntityFormControlDataMatchCriteria.java │ │ │ ├── EntityNameControlData.java │ │ │ ├── EntityNameControlDataDto.java │ │ │ ├── EntityNameControlDataDtoComparator.java │ │ │ ├── FormControlData.java │ │ │ ├── FormControlDataDto.java │ │ │ ├── FormControlDataDtoComparator.java │ │ │ ├── FormControlDataDtoVisitorEx.java │ │ │ ├── FormControlDataVisitor.java │ │ │ ├── FormControlDataVisitorEx.java │ │ │ ├── FormData.java │ │ │ ├── FormDataDto.java │ │ │ ├── FormDataDtoComparator.java │ │ │ ├── FormEntitySubject.java │ │ │ ├── FormEntitySubjectDto.java │ │ │ ├── FormFieldAccessMode.java │ │ │ ├── FormFieldData.java │ │ │ ├── FormFieldDataDto.java │ │ │ ├── FormRegionFilter.java │ │ │ ├── FormSubject.java │ │ │ ├── FormSubjectDto.java │ │ │ ├── GridCellData.java │ │ │ ├── GridCellDataDto.java │ │ │ ├── GridCellDataDtoComparator.java │ │ │ ├── GridControlData.java │ │ │ ├── GridControlDataDto.java │ │ │ ├── GridControlDataDtoComparator.java │ │ │ ├── GridRowData.java │ │ │ ├── GridRowDataDto.java │ │ │ ├── GridRowDataDtoComparatorFactory.java │ │ │ ├── GridRowDtoByColumnIndexComparator.java │ │ │ ├── ImageControlData.java │ │ │ ├── ImageControlDataDto.java │ │ │ ├── ImageControlDataDtoComparator.java │ │ │ ├── IriFormControlData.java │ │ │ ├── IriFormControlDataDto.java │ │ │ ├── LiteralFormControlData.java │ │ │ ├── LiteralFormControlDataDto.java │ │ │ ├── LiteralFormControlDataMatchCriteria.java │ │ │ ├── MultiChoiceControlData.java │ │ │ ├── MultiChoiceControlDataDto.java │ │ │ ├── MultiChoiceControlDataDtoComparator.java │ │ │ ├── NumberControlData.java │ │ │ ├── NumberControlDataDto.java │ │ │ ├── NumberControlDataDtoComparator.java │ │ │ ├── PrimitiveFormControlData.java │ │ │ ├── PrimitiveFormControlData2ProxyConverter.java │ │ │ ├── PrimitiveFormControlDataDto.java │ │ │ ├── PrimitiveFormControlDataMatchCriteria.java │ │ │ ├── PrimitiveFormControlDataMatchCriteriaVisitor.java │ │ │ ├── PrimitiveFormControlDataProxy.java │ │ │ ├── Proxy2PrimitiveFormControlDataConverter.java │ │ │ ├── SimpleFormControlValue.java │ │ │ ├── SingleChoiceControlData.java │ │ │ ├── SingleChoiceControlDataDto.java │ │ │ ├── SingleChoiceControlDataDtoComparator.java │ │ │ ├── TextControlData.java │ │ │ ├── TextControlDataDto.java │ │ │ └── TextControlDataDtoComparator.java │ │ ├── field │ │ │ ├── BoundControlDescriptor.java │ │ │ ├── ChoiceDescriptor.java │ │ │ ├── ChoiceDescriptorDto.java │ │ │ ├── ChoiceListSourceDescriptor.java │ │ │ ├── CompositeFieldDescriptorEntry.java │ │ │ ├── DynamicChoiceListSourceDescriptor.java │ │ │ ├── EntityNameControlDescriptor.java │ │ │ ├── EntityNameControlDescriptorDto.java │ │ │ ├── FieldRun.java │ │ │ ├── FixedChoiceListSourceDescriptor.java │ │ │ ├── FormControlDescriptor.java │ │ │ ├── FormControlDescriptorDto.java │ │ │ ├── FormControlDescriptorDtoVisitor.java │ │ │ ├── FormControlDescriptorVisitor.java │ │ │ ├── FormFieldDeprecationStrategy.java │ │ │ ├── FormFieldDescriptor.java │ │ │ ├── FormFieldDescriptorDto.java │ │ │ ├── FormRegionId.java │ │ │ ├── FormRegionOrdering.java │ │ │ ├── FormRegionOrderingDirection.java │ │ │ ├── FormRegionPresenter.java │ │ │ ├── GridColumnDescriptor.java │ │ │ ├── GridColumnDescriptorDto.java │ │ │ ├── GridControlDescriptor.java │ │ │ ├── GridControlDescriptorDto.java │ │ │ ├── HasRepeatability.java │ │ │ ├── ImageControlDescriptor.java │ │ │ ├── ImageControlDescriptorDto.java │ │ │ ├── LineMode.java │ │ │ ├── MultiChoiceControlDescriptor.java │ │ │ ├── MultiChoiceControlDescriptorDto.java │ │ │ ├── NodeType.java │ │ │ ├── NumberControlDescriptor.java │ │ │ ├── NumberControlDescriptorDto.java │ │ │ ├── NumberControlRange.java │ │ │ ├── NumberControlType.java │ │ │ ├── Optionality.java │ │ │ ├── OwlBinding.java │ │ │ ├── OwlClassBinding.java │ │ │ ├── OwlInstanceBinding.java │ │ │ ├── OwlPropertyBinding.java │ │ │ ├── OwlSubClassBinding.java │ │ │ ├── Repeatability.java │ │ │ ├── SingleChoiceControlDescriptor.java │ │ │ ├── SingleChoiceControlDescriptorDto.java │ │ │ ├── SingleChoiceControlType.java │ │ │ ├── StringType.java │ │ │ ├── SubFormControlDescriptor.java │ │ │ ├── SubFormControlDescriptorDto.java │ │ │ ├── TextControlDescriptor.java │ │ │ └── TextControlDescriptorDto.java │ │ └── processor │ │ │ ├── FormControlDataProcessor.java │ │ │ ├── FormDataConverter.java │ │ │ ├── FormDataProcessor.java │ │ │ ├── FormFieldProcessor.java │ │ │ ├── GridCellDataProcessor.java │ │ │ ├── GridControlDataProcessor.java │ │ │ └── GridRowDataProcessor.java │ │ ├── frame │ │ ├── AbstractUpdateFrameHandler.java │ │ ├── CheckManchesterSyntaxFrameActionHandler.java │ │ ├── CheckManchesterSyntaxFrameCommandHandler.java │ │ ├── ClassFrameProvider.java │ │ ├── ClassFrameProviderImpl.java │ │ ├── ClassFrameTranslationOptions.java │ │ ├── EmptyEntityFrameFactory.java │ │ ├── EntityFrameProvider.java │ │ ├── FrameChangeGenerator.java │ │ ├── FrameChangeGeneratorFactory.java │ │ ├── FrameComponentRenderer.java │ │ ├── FrameComponentRendererImpl.java │ │ ├── FrameComponentSessionRenderer.java │ │ ├── FrameComponentSessionRendererFactory.java │ │ ├── GetAnnotationPropertyFrameActionHandler.java │ │ ├── GetAnnotationPropertyFrameCommandHandler.java │ │ ├── GetClassFrameActionHandler.java │ │ ├── GetClassFrameCommandHandler.java │ │ ├── GetDataPropertyFrameActionHandler.java │ │ ├── GetDataPropertyFrameCommandHandler.java │ │ ├── GetManchesterSyntaxFrameAction.java │ │ ├── GetManchesterSyntaxFrameActionHandler.java │ │ ├── GetManchesterSyntaxFrameCommandHandler.java │ │ ├── GetManchesterSyntaxFrameCompletionsAction.java │ │ ├── GetManchesterSyntaxFrameCompletionsActionHandler.java │ │ ├── GetManchesterSyntaxFrameCompletionsCommandHandler.java │ │ ├── GetManchesterSyntaxFrameCompletionsResult.java │ │ ├── GetManchesterSyntaxFrameResult.java │ │ ├── GetNamedIndividualFrameActionHandler.java │ │ ├── GetNamedIndividualFrameCommandHandler.java │ │ ├── GetObjectPropertyFrameActionHandler.java │ │ ├── GetObjectPropertyFrameCommandHandler.java │ │ ├── GetOntologyFramesActionHandler.java │ │ ├── GetOntologyFramesCommandHandler.java │ │ ├── ManchesterSyntaxFrameParseError.java │ │ ├── ManchesterSyntaxFrameParseResult.java │ │ ├── PlainFrameRenderer.java │ │ ├── PropertyValueDescriptor.java │ │ ├── PropertyValueMinimiser.java │ │ ├── PropertyValueSubsumptionChecker.java │ │ ├── RelationshipTranslationOptions.java │ │ ├── SetManchesterSyntaxFrameAction.java │ │ ├── SetManchesterSyntaxFrameActionHandler.java │ │ ├── SetManchesterSyntaxFrameCommandHandler.java │ │ ├── SetManchesterSyntaxFrameException.java │ │ ├── SetManchesterSyntaxFrameResult.java │ │ ├── State.java │ │ ├── StructuralPropertyValueSubsumptionChecker.java │ │ ├── UpdateAnnotationPropertyFrameActionHandler.java │ │ ├── UpdateAnnotationPropertyFrameCommandHandler.java │ │ ├── UpdateClassFrameActionHandler.java │ │ ├── UpdateClassFrameCommandHandler.java │ │ ├── UpdateDataPropertyFrameCommandHandler.java │ │ ├── UpdateDataPropertyFrameHandler.java │ │ ├── UpdateNamedIndividualFrameCommandHandler.java │ │ ├── UpdateNamedIndividualFrameHandler.java │ │ ├── UpdateObjectPropertyFrameCommandHandler.java │ │ ├── UpdateObjectPropertyFrameHandler.java │ │ └── translator │ │ │ ├── Annotation2PropertyValueTranslator.java │ │ │ ├── Annotation2PropertyValueTranslatorFactory.java │ │ │ ├── AnnotationAssertionAxiom2PropertyValuesTranslator.java │ │ │ ├── AnnotationPropertyFrameTranslator.java │ │ │ ├── Axiom2PropertyValuesTranslator.java │ │ │ ├── AxiomPropertyValueTranslator.java │ │ │ ├── AxiomTranslatorFactory.java │ │ │ ├── Class2ClassFrameTranslator.java │ │ │ ├── Class2ClassFrameTranslatorFactory.java │ │ │ ├── ClassAssertionAxiom2PropertyValuesTranslator.java │ │ │ ├── ClassExpression2PropertyValuesTranslator.java │ │ │ ├── ClassFrame2FrameAxiomsTranslator.java │ │ │ ├── DataPropertyAssertionAxiom2PropertyValuesTranslator.java │ │ │ ├── DataPropertyFrameTranslator.java │ │ │ ├── EquivalentClassesAxiom2PropertyValuesTranslator.java │ │ │ ├── NamedIndividualFrameTranslator.java │ │ │ ├── ObjectPropertyAssertionAxiom2PropertyValuesTranslator.java │ │ │ ├── ObjectPropertyFrameTranslator.java │ │ │ ├── PropertyValue2AxiomTranslator.java │ │ │ ├── PropertyValueTranslator.java │ │ │ └── SubClassOfAxiom2PropertyValuesTranslator.java │ │ ├── hierarchy │ │ ├── AbstractHierarchyProvider.java │ │ ├── AbstractOWLPropertyHierarchyProvider.java │ │ ├── AddEdge.java │ │ ├── AddNamedHierarchyActionHandler.java │ │ ├── AddNamedHierarchyCommandHandler.java │ │ ├── AddRootNode.java │ │ ├── AnnotationPropertyHierarchyProvider.java │ │ ├── AnnotationPropertyHierarchyProviderFactory.java │ │ ├── AnnotationPropertyHierarchyProviderImpl.java │ │ ├── BuiltInHierarchyDescriptors.java │ │ ├── ClassClassAncestorChecker.java │ │ ├── ClassHierarchyProvider.java │ │ ├── ClassHierarchyProviderFactory.java │ │ ├── ClassHierarchyProviderImpl.java │ │ ├── ClassHierarchyRoot.java │ │ ├── ClassHierarchyRootProvider.java │ │ ├── DataPropertyDataPropertyAncestorChecker.java │ │ ├── DataPropertyHierarchyProvider.java │ │ ├── DataPropertyHierarchyProviderFactory.java │ │ ├── DataPropertyHierarchyProviderImpl.java │ │ ├── DataPropertyHierarchyRoot.java │ │ ├── DataPropertyHierarchyRootProvider.java │ │ ├── DropType.java │ │ ├── EdgeChange.java │ │ ├── GetEntityHierarchyChildrenActionHandler.java │ │ ├── GetHierarchyChildrenCommandHandler.java │ │ ├── GetHierarchyDescriptorActionHandler.java │ │ ├── GetHierarchyDescriptorCommandHandler.java │ │ ├── GetHierarchyDescriptorRequest.java │ │ ├── GetHierarchyDescriptorResponse.java │ │ ├── GetHierarchyDescriptorRulesCommandHandler.java │ │ ├── GetHierarchyPathsToRootActionHandler.java │ │ ├── GetHierarchyPathsToRootCommandHandler.java │ │ ├── GetHierarchyRootsActionHandler.java │ │ ├── GetHierarchyRootsCommandHandler.java │ │ ├── GetHierarchySiblingsActionHandler.java │ │ ├── GetHierarchySiblingsCommandHandler.java │ │ ├── GetProjectHierarchyDescriptorRulesCommandHandler.java │ │ ├── GetProjectHierarchyDescriptorRulesRequest.java │ │ ├── GetProjectHierarchyDescriptorRulesResponse.java │ │ ├── GraphEdge.java │ │ ├── GraphModelChange.java │ │ ├── GraphModelChangeVisitor.java │ │ ├── GraphNode.java │ │ ├── GraphNodeRenderer.java │ │ ├── HasGetAncestors.java │ │ ├── HasHasAncestor.java │ │ ├── HierarchyChangesComputer.java │ │ ├── HierarchyDescriptorRepository.java │ │ ├── HierarchyDescriptorRule.java │ │ ├── HierarchyDescriptorRuleDisplayContextMatcher.java │ │ ├── HierarchyDescriptorRuleSelector.java │ │ ├── HierarchyDescriptorRulesRepository.java │ │ ├── HierarchyDescriptorRulesRepositoryImpl.java │ │ ├── HierarchyId.java │ │ ├── HierarchyProvider.java │ │ ├── HierarchyProviderFactory.java │ │ ├── HierarchyProviderGuard.java │ │ ├── HierarchyProviderManager.java │ │ ├── MoveEntityChangeListGenerator.java │ │ ├── MoveEntityChangeListGeneratorFactory.java │ │ ├── MoveHierarchyNodeActionHandler.java │ │ ├── MoveHierarchyNodeCommandHandler.java │ │ ├── NamedHierarchy.java │ │ ├── NamedHierarchyManager.java │ │ ├── NamedHierarchyManagerImpl.java │ │ ├── NamedHierarchyRecord.java │ │ ├── NamedHierarchyRepository.java │ │ ├── NamedIndividualClassAncestorChecker.java │ │ ├── ObjectPropertyHierarchyProvider.java │ │ ├── ObjectPropertyHierarchyProviderFactory.java │ │ ├── ObjectPropertyHierarchyProviderImpl.java │ │ ├── ObjectPropertyHierarchyRoot.java │ │ ├── ObjectPropertyHierarchyRootProvider.java │ │ ├── ObjectPropertyObjectPropertyAncestorChecker.java │ │ ├── Path.java │ │ ├── PathCollector.java │ │ ├── ProjectHierarchyDescriptorRules.java │ │ ├── RemoveEdge.java │ │ ├── RemoveRootNode.java │ │ ├── SetNamedHierarchiesAction.java │ │ ├── SetNamedHierarchiesResponse.java │ │ ├── SetProjectHierarchyDescriptorRulesCommandHandler.java │ │ ├── SetProjectHierarchyDescriptorRulesRequest.java │ │ ├── SetProjectHierarchyDescriptorRulesResponse.java │ │ ├── UpdateUserObject.java │ │ └── ordering │ │ │ ├── OrderedChildrenDocumentService.java │ │ │ ├── ProcessUploadedSiblingsOrderingAction.java │ │ │ ├── ProcessUploadedSiblingsOrderingCommandHandler.java │ │ │ ├── ProcessUploadedSiblingsOrderingResponse.java │ │ │ ├── ProjectOrderedChildren.java │ │ │ ├── ProjectOrderedChildrenManager.java │ │ │ ├── ProjectOrderedChildrenMapper.java │ │ │ ├── ProjectOrderedChildrenRepository.java │ │ │ ├── ProjectOrderedChildrenRepositoryImpl.java │ │ │ ├── ProjectOrderedChildrenService.java │ │ │ ├── ProjectOrderedChildrenServiceImpl.java │ │ │ └── dtos │ │ │ ├── OrderedChild.java │ │ │ └── OrderedChildren.java │ │ ├── index │ │ ├── AnnotationAssertionAxiomsBySubjectIndex.java │ │ ├── AnnotationAssertionAxiomsByValueIndex.java │ │ ├── AnnotationAssertionAxiomsIndex.java │ │ ├── AnnotationAxiomsByIriReferenceIndex.java │ │ ├── AnnotationPropertyDomainAxiomsIndex.java │ │ ├── AnnotationPropertyRangeAxiomsIndex.java │ │ ├── AxiomsByEntityReferenceIndex.java │ │ ├── AxiomsByReferenceIndex.java │ │ ├── AxiomsByTypeIndex.java │ │ ├── BuiltInEntitiesIndex.java │ │ ├── BuiltInOwlEntitiesIndex.java │ │ ├── BuiltInOwlEntitiesIndexImpl.java │ │ ├── BuiltInSkosEntitiesIndex.java │ │ ├── BuiltInSkosEntitiesIndexImpl.java │ │ ├── ClassAssertionAxiomsByClassIndex.java │ │ ├── ClassAssertionAxiomsByIndividualIndex.java │ │ ├── ClassFrameAxiomsIndex.java │ │ ├── ClassHierarchyChildrenAxiomsIndex.java │ │ ├── DataPropertyAssertionAxiomsBySubjectIndex.java │ │ ├── DataPropertyCharacteristicsIndex.java │ │ ├── DataPropertyDomainAxiomsIndex.java │ │ ├── DataPropertyRangeAxiomsIndex.java │ │ ├── DependentIndex.java │ │ ├── DeprecatedEntitiesByEntityIndex.java │ │ ├── DeprecatedEntitiesIndex.java │ │ ├── DeprecatedEntitiesIndexLuceneImpl.java │ │ ├── DifferentIndividualsAxiomsIndex.java │ │ ├── DisjointClassesAxiomsIndex.java │ │ ├── DisjointDataPropertiesAxiomsIndex.java │ │ ├── DisjointObjectPropertiesAxiomsIndex.java │ │ ├── EntitiesInOntologySignatureByIriIndex.java │ │ ├── EntitiesInOntologySignatureIndex.java │ │ ├── EntitiesInProjectSignatureByIriIndex.java │ │ ├── EntitiesInProjectSignatureIndex.java │ │ ├── EquivalentClassesAxiomsIndex.java │ │ ├── EquivalentDataPropertiesAxiomsIndex.java │ │ ├── EquivalentObjectPropertiesAxiomsIndex.java │ │ ├── Index.java │ │ ├── IndexModule.java │ │ ├── IndexUpdatingService.java │ │ ├── IndividualsByTypeIndex.java │ │ ├── IndividualsIndex.java │ │ ├── IndividualsQueryResult.java │ │ ├── InverseObjectPropertyAxiomsIndex.java │ │ ├── NamedIndividualFrameAxiomIndex.java │ │ ├── ObjectPropertyAssertionAxiomsBySubjectIndex.java │ │ ├── ObjectPropertyCharacteristicsIndex.java │ │ ├── ObjectPropertyDomainAxiomsIndex.java │ │ ├── ObjectPropertyRangeAxiomsIndex.java │ │ ├── OntologyAnnotationsIndex.java │ │ ├── OntologyAnnotationsSignatureIndex.java │ │ ├── OntologyAxiomsIndex.java │ │ ├── OntologyAxiomsSignatureIndex.java │ │ ├── OntologySignatureByTypeIndex.java │ │ ├── OntologySignatureIndex.java │ │ ├── ProjectAnnotationAssertionAxiomsBySubjectIndex.java │ │ ├── ProjectAxiomsSignatureIndex.java │ │ ├── ProjectClassAssertionAxiomsByIndividualIndex.java │ │ ├── ProjectOntologiesIndex.java │ │ ├── ProjectSignatureByTypeIndex.java │ │ ├── ProjectSignatureIndex.java │ │ ├── PropertyAssertionAxiomsBySubjectIndex.java │ │ ├── RootIndex.java │ │ ├── SameIndividualAxiomsIndex.java │ │ ├── SubAnnotationPropertyAxiomsBySubPropertyIndex.java │ │ ├── SubAnnotationPropertyAxiomsBySuperPropertyIndex.java │ │ ├── SubClassOfAxiomsBySubClassIndex.java │ │ ├── SubDataPropertyAxiomsBySubPropertyIndex.java │ │ ├── SubObjectPropertyAxiomsBySubPropertyIndex.java │ │ └── impl │ │ │ ├── AnnotationAssertionAxiomsBySubjectIndexImpl.java │ │ │ ├── AnnotationAssertionAxiomsByValueIndexImpl.java │ │ │ ├── AnnotationAssertionAxiomsIndexWrapperImpl.java │ │ │ ├── AnnotationAxiomsByIriReferenceIndexImpl.java │ │ │ ├── AnnotationPropertyDomainAxiomsIndexImpl.java │ │ │ ├── AnnotationPropertyRangeAxiomsIndexImpl.java │ │ │ ├── AxiomChangeHandler.java │ │ │ ├── AxiomMultimapIndex.java │ │ │ ├── AxiomsByEntityReferenceIndexImpl.java │ │ │ ├── AxiomsByReferenceIndexImpl.java │ │ │ ├── AxiomsByTypeIndexImpl.java │ │ │ ├── ClassAssertionAxiomsByClassIndexImpl.java │ │ │ ├── ClassAssertionAxiomsByIndividualIndexImpl.java │ │ │ ├── ClassFrameAxiomsIndexImpl.java │ │ │ ├── ClassHierarchyChildrenAxiomsIndexImpl.java │ │ │ ├── DataPropertyAssertionAxiomsBySubjectIndexImpl.java │ │ │ ├── DataPropertyCharacteristicsIndexImpl.java │ │ │ ├── DataPropertyDomainAxiomsIndexImpl.java │ │ │ ├── DataPropertyRangeAxiomsIndexImpl.java │ │ │ ├── DeprecatedEntitiesByEntityIndexImpl.java │ │ │ ├── DifferentIndividualsAxiomsIndexImpl.java │ │ │ ├── DisjointClassesAxiomsIndexImpl.java │ │ │ ├── DisjointDataPropertiesAxiomsIndexImpl.java │ │ │ ├── DisjointObjectPropertiesAxiomsIndexImpl.java │ │ │ ├── EntitiesInOntologySignatureByIriIndexImpl.java │ │ │ ├── EntitiesInOntologySignatureIndexImpl.java │ │ │ ├── EntitiesInProjectSignatureByIriIndexImpl.java │ │ │ ├── EntitiesInProjectSignatureIndexImpl.java │ │ │ ├── EquivalentClassesAxiomsIndexImpl.java │ │ │ ├── EquivalentDataPropertiesAxiomsIndexImpl.java │ │ │ ├── EquivalentObjectPropertiesAxiomsIndexImpl.java │ │ │ ├── IndexUpdater.java │ │ │ ├── IndexUpdaterFactory.java │ │ │ ├── IndexedSet.java │ │ │ ├── IndexedSetMultimaps.java │ │ │ ├── IndividualsByTypeIndexImpl.java │ │ │ ├── IndividualsIndexImpl.java │ │ │ ├── InverseObjectPropertyAxiomsIndexImpl.java │ │ │ ├── Key.java │ │ │ ├── KeyValueExtractor.java │ │ │ ├── NamedIndividualFrameAxiomsIndexImpl.java │ │ │ ├── ObjectPropertyAssertionAxiomsBySubjectIndexImpl.java │ │ │ ├── ObjectPropertyCharacteristicsIndexImpl.java │ │ │ ├── ObjectPropertyDomainAxiomsIndexImpl.java │ │ │ ├── ObjectPropertyRangeAxiomsIndexImpl.java │ │ │ ├── OntologyAnnotationsIndexImpl.java │ │ │ ├── OntologyAxiomsIndexImpl.java │ │ │ ├── OntologySignatureByTypeIndexImpl.java │ │ │ ├── OntologySignatureIndexImpl.java │ │ │ ├── ProjectClassAssertionAxiomsByIndividualIndexImpl.java │ │ │ ├── ProjectOntologiesIndexImpl.java │ │ │ ├── ProjectSignatureByTypeIndexImpl.java │ │ │ ├── ProjectSignatureIndexImpl.java │ │ │ ├── PropertyAssertionAxiomsBySubjectIndexImpl.java │ │ │ ├── RootIndexImpl.java │ │ │ ├── SameIndividualAxiomsIndexImpl.java │ │ │ ├── Stats.java │ │ │ ├── SubAnnotationPropertyAxiomsBySubPropertyIndexImpl.java │ │ │ ├── SubAnnotationPropertyAxiomsBySuperPropertyIndexImpl.java │ │ │ ├── SubClassOfAxiomsBySubClassIndexImpl.java │ │ │ ├── SubDataPropertyAxiomsBySubPropertyIndexImpl.java │ │ │ ├── SubObjectPropertyAxiomsBySubPropertyIndexImpl.java │ │ │ └── UpdatableIndex.java │ │ ├── individuals │ │ ├── CreateIndividualsChangeListGenerator.java │ │ ├── CreateIndividualsChangeListGeneratorFactory.java │ │ ├── CreateNamedIndividualsActionHandler.java │ │ ├── GetIndividualsActionHandler.java │ │ ├── GetIndividualsCommandHandler.java │ │ ├── GetIndividualsPageContainingIndividualActionHandler.java │ │ ├── GetIndividualsPageContainingIndividualCommandHandler.java │ │ ├── IndividualRendering.java │ │ └── InstanceRetrievalMode.java │ │ ├── init │ │ ├── CheckDataDirectoryIsReadableAndWritable.java │ │ ├── CheckWebProtegeDataDirectoryExists.java │ │ ├── ConfigurationTask.java │ │ └── WebProtegeConfigurationException.java │ │ ├── inject │ │ ├── ApplicationDataFactory.java │ │ ├── ApplicationExecutorsRegistry.java │ │ ├── ApplicationSingleton.java │ │ ├── ConfigurationTasksModule.java │ │ ├── DataDirectory.java │ │ ├── DataDirectoryProvider.java │ │ ├── ExecutorServiceShutdownTask.java │ │ ├── MailProperties.java │ │ ├── OverridableFile.java │ │ ├── OverridableFileFactory.java │ │ ├── ProjectComponent.java │ │ ├── ProjectComponentImpl.java │ │ ├── ProjectSingleton.java │ │ ├── UploadsDirectory.java │ │ ├── UploadsDirectoryProvider.java │ │ └── project │ │ │ ├── ChangeHistoryFile.java │ │ │ ├── ChangeHistoryFileProvider.java │ │ │ ├── OWLDataFactoryProvider.java │ │ │ ├── ProjectDirectory.java │ │ │ ├── ProjectDirectoryFactory.java │ │ │ ├── ProjectDirectoryProvider.java │ │ │ ├── ProjectModule.java │ │ │ ├── ProjectSpecificUiConfigurationDataDirectory.java │ │ │ ├── ProjectSpecificUiConfigurationDataDirectoryProvider.java │ │ │ ├── RevisionNumberProvider.java │ │ │ ├── RootOntology.java │ │ │ ├── RootOntologyDocument.java │ │ │ └── RootOntologyDocumentProvider.java │ │ ├── issues │ │ ├── AddCommentCommandHandler.java │ │ ├── AddCommentHandler.java │ │ ├── CommentConverter.java │ │ ├── CommentNotificationEmailGenerator.java │ │ ├── CommentNotificationEmailTemplate.java │ │ ├── CommentNotificationEmailer.java │ │ ├── CommentParticipantsExtractor.java │ │ ├── CommentRenderer.java │ │ ├── CreateEntityDiscussionThreadCommandHandler.java │ │ ├── CreateEntityDiscussionThreadHandler.java │ │ ├── DeleteEntityCommentCommandHandler.java │ │ ├── DeleteEntityCommentHandler.java │ │ ├── DiscussionThreadParticipantsExtractor.java │ │ ├── EditCommentActionHandler.java │ │ ├── EditCommentCommandHandler.java │ │ ├── EntityDiscussionThread.java │ │ ├── EntityDiscussionThreadRepository.java │ │ ├── GetCommentedEntitiesActionHandler.java │ │ ├── GetCommentedEntitiesCommandHandler.java │ │ ├── GetEntityDiscussionThreadsCommandHandler.java │ │ ├── GetEntityDiscussionThreadsHandler.java │ │ ├── SetDiscussionThreadStatusCommandHandler.java │ │ ├── SetDiscussionThreadStatusHandler.java │ │ └── mention │ │ │ ├── MentionParser.java │ │ │ └── ParsedMention.java │ │ ├── lang │ │ ├── ActiveLanguagesManager.java │ │ ├── ActiveLanguagesManagerImpl.java │ │ ├── DefaultDisplayNameSettingsFactory.java │ │ ├── DictionaryLanguageUsage.java │ │ ├── DisplayNameSettings.java │ │ ├── GetProjectLangTagsActionHandler.java │ │ ├── GetProjectLangTagsCommandHandler.java │ │ └── LanguageManager.java │ │ ├── locking │ │ ├── ReadWriteLockService.java │ │ └── ReadWriteLockServiceImpl.java │ │ ├── mail │ │ ├── CommentMessageIdGenerator.java │ │ ├── GetEmailAddressActionHandler.java │ │ ├── GetEmailAddressCommandHandler.java │ │ ├── MailPropertiesProvider.java │ │ ├── MessageHeader.java │ │ ├── MessageId.java │ │ ├── MessageIdGenerator.java │ │ ├── MessagingExceptionHandler.java │ │ ├── MessagingExceptionHandlerImpl.java │ │ ├── SendMail.java │ │ ├── SendMailImpl.java │ │ ├── SetEmailAddressActionHandler.java │ │ ├── SetEmailAddressRequestValidator.java │ │ └── WebProtegeMimeMessage.java │ │ ├── mansyntax │ │ ├── AutoCompletionChoice.java │ │ ├── AutoCompletionResult.java │ │ ├── EditorPosition.java │ │ ├── ManchesterSyntaxChangeGenerator.java │ │ ├── ManchesterSyntaxChangeGeneratorFactory.java │ │ ├── ManchesterSyntaxFrameParser.java │ │ ├── OntologyAxiomPairChangeGenerator.java │ │ ├── ShellOntologyChecker.java │ │ ├── ShellOwlOntology.java │ │ ├── WebProtegeOWLEntityChecker.java │ │ └── render │ │ │ ├── AbstractOWLAxiomItemSectionRenderer.java │ │ │ ├── AbstractSectionRenderer.java │ │ │ ├── AnnotationPropertyComparatorImpl.java │ │ │ ├── AnnotationPropertyDomainSectionRenderer.java │ │ │ ├── AnnotationPropertyFrameRenderer.java │ │ │ ├── AnnotationPropertyRangeSectionRenderer.java │ │ │ ├── AnnotationPropertySubPropertyOfSectionRenderer.java │ │ │ ├── AnnotationsSectionRenderer.java │ │ │ ├── Bracketing.java │ │ │ ├── ClassDisjointWithSectionRenderer.java │ │ │ ├── ClassEquivalentToSectionRenderer.java │ │ │ ├── ClassFrameRenderer.java │ │ │ ├── ClassSubClassOfSectionRenderer.java │ │ │ ├── DataPropertyCharacteristicsSectionRenderer.java │ │ │ ├── DataPropertyDisjointWithSectionRenderer.java │ │ │ ├── DataPropertyDomainSectionRenderer.java │ │ │ ├── DataPropertyEquivalentToSectionRenderer.java │ │ │ ├── DataPropertyFrameRenderer.java │ │ │ ├── DataPropertyRangeSectionRenderer.java │ │ │ ├── DataPropertySubPropertyOfSectionRenderer.java │ │ │ ├── DefaultHttpLinkRenderer.java │ │ │ ├── DefaultItemStyleProvider.java │ │ │ ├── DeprecatedEntityChecker.java │ │ │ ├── DeprecatedEntityCheckerImpl.java │ │ │ ├── EntityIRIChecker.java │ │ │ ├── EntityIRICheckerImpl.java │ │ │ ├── FrameRenderer.java │ │ │ ├── FrameSectionRenderer.java │ │ │ ├── GetEntityHtmlRenderingActionHandler.java │ │ │ ├── GetEntityRenderingActionHandler.java │ │ │ ├── HasGetRendering.java │ │ │ ├── HighlightedEntityChecker.java │ │ │ ├── HttpLinkRenderer.java │ │ │ ├── IRIOrdinalProvider.java │ │ │ ├── ImageLinkRenderer.java │ │ │ ├── ItemStyleProvider.java │ │ │ ├── LinkInfo.java │ │ │ ├── LinkRendererPlugin.java │ │ │ ├── LiteralRenderer.java │ │ │ ├── LiteralStyle.java │ │ │ ├── ManchesterSyntaxEntityFrameRenderer.java │ │ │ ├── ManchesterSyntaxObjectRenderer.java │ │ │ ├── MarkdownLiteralRenderer.java │ │ │ ├── NamedIndividualDifferentFromSectionRenderer.java │ │ │ ├── NamedIndividualFactsSectionRenderer.java │ │ │ ├── NamedIndividualFrameRenderer.java │ │ │ ├── NamedIndividualSameAsSectionRenderer.java │ │ │ ├── NamedIndividualTypesSectionRenderer.java │ │ │ ├── NestedAnnotationStyle.java │ │ │ ├── NullDeprecatedEntityChecker.java │ │ │ ├── NullHighlightedEntityChecker.java │ │ │ ├── NullHttpLinkRenderer.java │ │ │ ├── ObjectPropertyCharacteristicsSectionRenderer.java │ │ │ ├── ObjectPropertyDisjointWithSectionRenderer.java │ │ │ ├── ObjectPropertyDomainSectionRenderer.java │ │ │ ├── ObjectPropertyEquivalentToSectionRenderer.java │ │ │ ├── ObjectPropertyFrameRenderer.java │ │ │ ├── ObjectPropertyInverseOfSectionRenderer.java │ │ │ ├── ObjectPropertyRangeSectionRenderer.java │ │ │ ├── ObjectPropertySubPropertyChainSectionRenderer.java │ │ │ ├── ObjectPropertySubPropertyOfRenderer.java │ │ │ ├── OntologyAnnotationsSectionRenderer.java │ │ │ ├── OwlOntologyFacade.java │ │ │ ├── OwlOntologyFacadeFactory.java │ │ │ ├── PlainLinkRenderer.java │ │ │ ├── PrettyPrint.java │ │ │ ├── RenderableFormat.java │ │ │ ├── WikipediaXRefLinkRenderer.java │ │ │ └── mansyntax.css │ │ ├── match │ │ ├── AndMatcher.java │ │ ├── AnnotationMatcher.java │ │ ├── AnnotationPropertyMatcher.java │ │ ├── AnnotationValuesAreNotDisjointMatcher.java │ │ ├── AnnotationValuesAreNotDisjointMatcherFactory.java │ │ ├── AnythingMatcher.java │ │ ├── ConflictingBooleanValuesMatcher.java │ │ ├── ConflictingBooleanValuesMatcherFactory.java │ │ ├── DateIsAfterMatcher.java │ │ ├── DateIsBeforeMatcher.java │ │ ├── EntityAnnotationMatcher.java │ │ ├── EntityAnnotationMatcherFactory.java │ │ ├── EntityFrameMatcher.java │ │ ├── EntityIsDeprecatedMatcher.java │ │ ├── EntityIsDeprecatedMatcherFactory.java │ │ ├── EntityMatcherFactory.java │ │ ├── EntityRelationshipMatcher.java │ │ ├── EntityRelationshipMatcherFactory.java │ │ ├── GetMatchingEntitiesActionHandler.java │ │ ├── GetMatchingEntitiesCommandHandler.java │ │ ├── HierarchyPositionCriteriaMatchableEntityTypesExtractor.java │ │ ├── HierarchyPositionMatcherFactory.java │ │ ├── HierarchyPositionMatchingEngine.java │ │ ├── HierarchyPositionMatchingEngineImpl.java │ │ ├── InstanceOfMatcher.java │ │ ├── InstanceOfMatcherFactory.java │ │ ├── IriAnnotationValueMatcher.java │ │ ├── IriAnnotationsMatcher.java │ │ ├── IriAnnotationsMatcherFactory.java │ │ ├── IriLexicalValueMatcher.java │ │ ├── LangTagIsEmptyMatcher.java │ │ ├── LangTagMatchesMatcher.java │ │ ├── LeafClassMatcher.java │ │ ├── LeafClassMatcherFactory.java │ │ ├── LexicalValueNotInDatatypeSpaceMatcher.java │ │ ├── LiteralAnnotationValueMatcher.java │ │ ├── LiteralInLexicalSpaceMatcher.java │ │ ├── LiteralMatcher.java │ │ ├── LiteralMatcherFactory.java │ │ ├── Matcher.java │ │ ├── MatcherAdapter.java │ │ ├── MatcherFactory.java │ │ ├── MatchingEngine.java │ │ ├── MatchingEngineImpl.java │ │ ├── NonUniqueLangTagsMatcher.java │ │ ├── NonUniqueLangTagsMatcherFactory.java │ │ ├── NotMatcher.java │ │ ├── NotSubClassOfMatcher.java │ │ ├── NotSubClassOfMatcherFactory.java │ │ ├── NumericValueMatcher.java │ │ ├── OrMatcher.java │ │ ├── PropertyValueMatcher.java │ │ ├── RelationshipMatcherFactory.java │ │ ├── RelationshipValueMatcher.java │ │ ├── StringContainsMatcher.java │ │ ├── StringContainsRegexMatchMatcher.java │ │ ├── StringContainsRepeatedWhiteSpaceMatcher.java │ │ ├── StringEndsWithMatcher.java │ │ ├── StringEqualsMatcher.java │ │ ├── StringHasUntrimmedSpaceMatcher.java │ │ ├── StringStartsWithMatcher.java │ │ ├── SubClassOfMatcher.java │ │ └── SubClassOfMatcherFactory.java │ │ ├── merge │ │ ├── AnnotationDiffCalculator.java │ │ ├── AxiomDiffCalculator.java │ │ ├── ComputeProjectMergeAction.java │ │ ├── ComputeProjectMergeActionHandler.java │ │ ├── ComputeProjectMergeCommandHandler.java │ │ ├── ComputeProjectMergeResult.java │ │ ├── Diff.java │ │ ├── MergeData.java │ │ ├── MergeUploadedProjectActionHandler.java │ │ ├── MergeUploadedProjectCommandHandler.java │ │ ├── MergeUploadedProjectResult.java │ │ ├── ModifiedProjectOntologiesCalculator.java │ │ ├── ModifiedProjectOntologiesCalculatorFactory.java │ │ ├── OntologyDiff.java │ │ ├── OntologyDiffCalculator.java │ │ ├── OntologyPatcher.java │ │ └── ProjectOntologiesBuilder.java │ │ ├── merge_add │ │ ├── ExistingOntologyMergeAddAction.java │ │ ├── ExistingOntologyMergeAddActionHandler.java │ │ ├── ExistingOntologyMergeAddResult.java │ │ ├── GetUploadedAndProjectOntologyIdsAction.java │ │ ├── GetUploadedAndProjectOntologyIdsActionHandler.java │ │ ├── GetUploadedAndProjectOntologyIdsCommandHandler.java │ │ ├── GetUploadedAndProjectOntologyIdsResult.java │ │ ├── MergeOntologiesAction.java │ │ ├── MergeOntologiesActionHandler.java │ │ ├── MergeOntologiesCommandHandler.java │ │ ├── MergeOntologiesResult.java │ │ ├── MergeOntologyCalculator.java │ │ └── OntologyMergeAddPatcher.java │ │ ├── msg │ │ ├── MessageFormatter.java │ │ └── OWLMessageFormatter.java │ │ ├── object │ │ ├── OWLClassExpressionSelector.java │ │ ├── OWLDataPropertyExpressionSelector.java │ │ ├── OWLEntitySelector.java │ │ ├── OWLIndividualSelector.java │ │ ├── OWLObjectComparatorImpl.java │ │ ├── OWLObjectPropertyExpressionSelector.java │ │ ├── OWLObjectSelector.java │ │ └── SWRLAtomSelector.java │ │ ├── ontology │ │ ├── GetOntologyAnnotationsCommandHandler.java │ │ ├── GetRootOntologyIdCommandHandler.java │ │ ├── ProcessUploadedOntologiesRequest.java │ │ ├── ProcessUploadedOntologiesResponse.java │ │ └── SetOntologyAnnotationsCommandHandler.java │ │ ├── owlapi │ │ ├── BinaryOWLStorerFactory.java │ │ ├── ConjunctSet.java │ │ ├── HasContainsEntityInSignatureImpl.java │ │ ├── NonCachingDataFactory.java │ │ ├── OWLEntityCreator.java │ │ ├── OWLObjectStringFormatter.java │ │ ├── ProjectAnnotationAssertionAxiomsBySubjectIndexImpl.java │ │ ├── RenameMap.java │ │ ├── RenameMapFactory.java │ │ ├── StringFormatterLiteralRendererImpl.java │ │ └── WebProtegeOWLManager.java │ │ ├── permissions │ │ ├── GetProjectPermissionsActionHandler.java │ │ ├── GetProjectPermissionsCommandHandler.java │ │ ├── PermissionDeniedException.java │ │ ├── ProjectPermissionsManager.java │ │ ├── ProjectPermissionsManagerImpl.java │ │ ├── RebuildPermissionsActionHandler.java │ │ ├── RebuildPermissionsCommandHandler.java │ │ ├── RebuildProjectPermissionsRequest.java │ │ └── RebuildProjectPermissionsResponse.java │ │ ├── persistence │ │ ├── CommentId2StringConverter.java │ │ ├── Converter.java │ │ ├── DbName.java │ │ ├── DocumentConverter.java │ │ ├── DocumentConverterUtil.java │ │ ├── DocumentToOwlEntityConverter.java │ │ ├── EmailAddressReadConverter.java │ │ ├── EmailAddressWriteConverter.java │ │ ├── Indexable.java │ │ ├── IriToStringConverter.java │ │ ├── MentionReadConverter.java │ │ ├── MilestoneReadConverter.java │ │ ├── MilestoneWriteConverter.java │ │ ├── OWLEntityReadConverter.java │ │ ├── OWLEntityWriteConverter.java │ │ ├── OwlEntityToDocumentConverter.java │ │ ├── ProjectId2StringConverter.java │ │ ├── ProjectIdReadConverter.java │ │ ├── ProjectIdWriteConverter.java │ │ ├── Repository.java │ │ ├── String2CommentIdConverter.java │ │ ├── String2ProjectIdConverter.java │ │ ├── String2ThreadIdConverter.java │ │ ├── String2UserIdConverter.java │ │ ├── String2ValueObjectConverter.java │ │ ├── StringToIriConverter.java │ │ ├── ThreadId2StringConverter.java │ │ ├── UserId2StringConverter.java │ │ ├── UserIdReadConverter.java │ │ ├── UserIdWriteConverter.java │ │ └── ValueObject2StringConverter.java │ │ ├── perspective │ │ ├── BuiltInPerspectiveLoader.java │ │ ├── BuiltInPerspectivesProvider.java │ │ ├── EntityTypePerspectiveMapper.java │ │ ├── GetPerspectiveDetailsActionHandler.java │ │ ├── GetPerspectiveDetailsCommandHandler.java │ │ ├── GetPerspectiveLayoutActionHandler.java │ │ ├── GetPerspectiveLayoutCommandHandler.java │ │ ├── GetPerspectivesActionHandler.java │ │ ├── GetPerspectivesCommandHandler.java │ │ ├── PerspectiveDescriptorRepository.java │ │ ├── PerspectiveDescriptorRepositoryImpl.java │ │ ├── PerspectiveLayoutRepository.java │ │ ├── PerspectiveLayoutRepositoryImpl.java │ │ ├── PerspectivesManager.java │ │ ├── PerspectivesManagerImpl.java │ │ ├── ResetPerspectiveLayoutActionHandler.java │ │ ├── ResetPerspectiveLayoutCommandHandler.java │ │ ├── ResetPerspectivesActionHandler.java │ │ ├── ResetPerspectivesCommandHandler.java │ │ ├── SetPerspectiveLayoutActionHandler.java │ │ ├── SetPerspectiveLayoutCommandHandler.java │ │ ├── SetPerspectivesActionHandler.java │ │ └── SetPerspectivesCommandHandler.java │ │ ├── place │ │ ├── DefaultItemTypeMapper.java │ │ ├── Item.java │ │ ├── ItemSelection.java │ │ ├── ItemToken.java │ │ ├── ItemTokenParser.java │ │ ├── ItemTokenizer.java │ │ ├── OWLAnnotationPropertyItem.java │ │ ├── OWLClassItem.java │ │ ├── OWLDataPropertyItem.java │ │ ├── OWLEntityItemParser.java │ │ ├── OWLNamedIndividualItem.java │ │ ├── OWLObjectPropertyItem.java │ │ ├── PlaceKey.java │ │ ├── ProjectViewPlace.java │ │ └── ProjectViewPlaceTokenizer.java │ │ ├── portlet │ │ ├── PortletId.java │ │ └── PortletPluginId.java │ │ ├── project │ │ ├── BuiltInPrefixDeclarations.java │ │ ├── BuiltInPrefixDeclarationsLoader.java │ │ ├── CreateNewProjectAction.java │ │ ├── CreateNewProjectCommandHandler.java │ │ ├── CreateNewProjectResult.java │ │ ├── CreateProjectSagaManager.java │ │ ├── DefaultOntologyIdManager.java │ │ ├── DefaultOntologyIdManagerImpl.java │ │ ├── DormantProjectTime.java │ │ ├── GetAvailableProjectsActionHandler.java │ │ ├── GetAvailableProjectsCommandHandler.java │ │ ├── GetAvailableProjectsWithPermissionAction.java │ │ ├── GetAvailableProjectsWithPermissionActionHandler.java │ │ ├── GetAvailableProjectsWithPermissionCommandHandler.java │ │ ├── GetAvailableProjectsWithPermissionResult.java │ │ ├── GetProjectDetailsAction.java │ │ ├── GetProjectDetailsActionHandler.java │ │ ├── GetProjectDetailsCommandHandler.java │ │ ├── GetProjectDetailsResult.java │ │ ├── GetProjectInfoAction.java │ │ ├── GetProjectInfoActionHandler.java │ │ ├── GetProjectInfoCommandHandler.java │ │ ├── GetProjectInfoResult.java │ │ ├── GetProjectPrefixDeclarationsActionHandler.java │ │ ├── GetProjectPrefixDeclarationsCommandHandler.java │ │ ├── HasProjectId.java │ │ ├── ImportedOntologyMetadata.java │ │ ├── InstantiationMode.java │ │ ├── MoveProjectToTrashAction.java │ │ ├── MoveProjectToTrashActionHandler.java │ │ ├── MoveProjectToTrashCommandHandler.java │ │ ├── MoveProjectToTrashResult.java │ │ ├── NewProjectSettings.java │ │ ├── Ontology.java │ │ ├── PackagedProjectChangeEvent.java │ │ ├── PrefixDeclaration.java │ │ ├── PrefixDeclarations.java │ │ ├── PrefixDeclarationsCsvParser.java │ │ ├── PrefixDeclarationsStore.java │ │ ├── ProjectAccessManager.java │ │ ├── ProjectAccessManagerImpl.java │ │ ├── ProjectAlreadyExistsException.java │ │ ├── ProjectAlreadyRegisteredException.java │ │ ├── ProjectCache.java │ │ ├── ProjectCacheManager.java │ │ ├── ProjectComponentFactory.java │ │ ├── ProjectCreationException.java │ │ ├── ProjectDetails.java │ │ ├── ProjectDetailsManager.java │ │ ├── ProjectDetailsManagerImpl.java │ │ ├── ProjectDetailsRepository.java │ │ ├── ProjectDisposablesManager.java │ │ ├── ProjectDocumentExistsException.java │ │ ├── ProjectDocumentNotFoundException.java │ │ ├── ProjectIdFactory.java │ │ ├── ProjectIdFormatException.java │ │ ├── ProjectInputSource.java │ │ ├── ProjectManager.java │ │ ├── ProjectNotRegisteredException.java │ │ ├── ProjectOntologyManagerLoader.java │ │ ├── ProjectPermissionsInitializer.java │ │ ├── RecentProjectRecord.java │ │ ├── RemoveProjectFromTrashAction.java │ │ ├── RemoveProjectFromTrashActionHandler.java │ │ ├── RemoveProjectFromTrashCommandHandler.java │ │ ├── RemoveProjectFromTrashResult.java │ │ ├── RevisionHistoryReplacer.java │ │ ├── SetProjectPrefixDeclarationsActionHandler.java │ │ ├── SetProjectPrefixDeclarationsCommandHandler.java │ │ ├── UnknownProjectException.java │ │ ├── UploadedOntologiesCache.java │ │ ├── WithProjectId.java │ │ └── chg │ │ │ ├── ChangeManager.java │ │ │ ├── OntologyChangeTranslator.java │ │ │ └── OntologyChangeTranslatorVisitor.java │ │ ├── projectsettings │ │ ├── AllProjectSettings.java │ │ ├── EntityDeprecationSettings.java │ │ ├── GetProjectSettingsAction.java │ │ ├── GetProjectSettingsActionHandler.java │ │ ├── GetProjectSettingsCommandHandler.java │ │ ├── GetProjectSettingsResult.java │ │ ├── ProjectSettings.java │ │ ├── ProjectSettingsChangedHandler.java │ │ ├── SetProjectSettingsAction.java │ │ ├── SetProjectSettingsActionHandler.java │ │ ├── SetProjectSettingsCommandHandler.java │ │ ├── SetProjectSettingsResult.java │ │ ├── SlackIntegrationSettings.java │ │ ├── WebhookSetting.java │ │ └── WebhookSettings.java │ │ ├── renderer │ │ ├── AxiomTypeRenderer.java │ │ ├── ContextRenderer.java │ │ ├── GetEntityHtmlRenderingAction.java │ │ ├── GetEntityHtmlRenderingCommandHandler.java │ │ ├── GetEntityHtmlRenderingResult.java │ │ ├── GetEntityRenderingAction.java │ │ ├── GetEntityRenderingCommandHandler.java │ │ ├── GetEntityRenderingResult.java │ │ ├── HasHtmlBrowserText.java │ │ ├── LiteralLangTagTransformer.java │ │ ├── LiteralLexicalFormTransformer.java │ │ ├── LiteralRenderer.java │ │ ├── ManchesterSyntaxKeywords.java │ │ ├── OWLObjectRendererImpl.java │ │ ├── RenderingManager.java │ │ └── ShortFormAdapter.java │ │ ├── repository │ │ └── ProjectEntitySearchFiltersManager.java │ │ ├── revision │ │ ├── CreateInitialRevisionHistoryRequest.java │ │ ├── CreateInitialRevisionHistoryResponse.java │ │ ├── EntitiesByRevisionCache.java │ │ ├── GetHeadRevisionNumberActionHandler.java │ │ ├── GetHeadRevisionNumberCommandHandler.java │ │ ├── GetRevisionSummariesActionHandler.java │ │ ├── GetRevisionSummariesCommandHandler.java │ │ ├── ProjectChangesManager.java │ │ └── RevisionDetailsExtractor.java │ │ ├── search │ │ ├── EntityNameMatchResult.java │ │ ├── EntityNameMatchType.java │ │ ├── EntityNameMatcher.java │ │ ├── EntitySearchFilter.java │ │ ├── EntitySearchFilterId.java │ │ ├── EntitySearchFilterIndexesManager.java │ │ ├── EntitySearchFilterRepository.java │ │ ├── EntitySearchFilterRepositoryImpl.java │ │ ├── EntitySearchResult.java │ │ ├── EntitySearcher.java │ │ ├── EntitySearcherFactory.java │ │ ├── GetSearchSettingsActionHandler.java │ │ ├── GetSearchSettingsCommandHandler.java │ │ ├── PerformEntitySearchActionHandler.java │ │ ├── PerformEntitySearchCommandHandler.java │ │ ├── PrefixNameMatchType.java │ │ ├── ProjectEntitySearchFiltersManagerImpl.java │ │ ├── ProjectSearchSettings.java │ │ ├── SearchField.java │ │ ├── SearchResultMatch.java │ │ ├── SearchResultMatchPosition.java │ │ ├── SearchType.java │ │ ├── SetSearchSettingsActionHandler.java │ │ └── SetSearchSettingsCommandHandler.java │ │ ├── sharing │ │ ├── GetProjectSharingSettingsActionHandler.java │ │ ├── GetProjectSharingSettingsCommandHandler.java │ │ ├── PersonId.java │ │ ├── ProjectSharingSettings.java │ │ ├── ProjectSharingSettingsManager.java │ │ ├── ProjectSharingSettingsManagerImpl.java │ │ ├── Roles.java │ │ ├── SetProjectSharingSettingsActionHandler.java │ │ ├── SetProjectSharingSettingsCommandHandler.java │ │ ├── SharingPermission.java │ │ └── SharingSetting.java │ │ ├── shortform │ │ ├── AnnotationAssertionAxiomsModule.java │ │ ├── AnnotationAssertionBasedDictionaryLanguage.java │ │ ├── BuiltInShortFormDictionary.java │ │ ├── DefaultShortFormAnnotationPropertyIRIs.java │ │ ├── DeprecatedEntitiesByEntityIndexLuceneImpl.java │ │ ├── DictionaryLanguageFieldWriter.java │ │ ├── DictionaryManager.java │ │ ├── DictionaryUpdatesProcessor.java │ │ ├── EntityAnnotationAssertionsDocumentAugmenter.java │ │ ├── EntityBasedSimilarity.java │ │ ├── EntityBuiltInStatusDocumentAugmenter.java │ │ ├── EntityDictionaryLanguageValues.java │ │ ├── EntityDocumentAugmenter.java │ │ ├── EntityDocumentFieldNames.java │ │ ├── EntityLocalNameDocumentAugmenter.java │ │ ├── EntityOboIdDocumentAugmenter.java │ │ ├── EntityPrefixedNameDocumentAugmenter.java │ │ ├── EntitySearchFilterMatcher.java │ │ ├── EntitySearchFilterMatchersFactory.java │ │ ├── EscapingShortFormProvider.java │ │ ├── FieldNameTranslator.java │ │ ├── FieldNameTranslatorImpl.java │ │ ├── IndexingAnalyzerFactory.java │ │ ├── IndexingAnalyzerWrapper.java │ │ ├── IriShortFormAdapter.java │ │ ├── LocalNameExtractor.java │ │ ├── LocalNameShortFormCache.java │ │ ├── LuceneDictionaryLanguageValuesMatcher.java │ │ ├── LuceneEntityDocument.java │ │ ├── LuceneEntityDocumentTranslator.java │ │ ├── LuceneEntityDocumentTranslatorImpl.java │ │ ├── LuceneIndex.java │ │ ├── LuceneIndexImpl.java │ │ ├── LuceneIndexUpdater.java │ │ ├── LuceneIndexUpdaterImpl.java │ │ ├── LuceneIndexWriter.java │ │ ├── LuceneIndexWriterImpl.java │ │ ├── LuceneIndexesDirectory.java │ │ ├── LuceneModule.java │ │ ├── LuceneMultiLingualDictionaryUpdater.java │ │ ├── LuceneQueryFactory.java │ │ ├── LuceneSearchStringTokenizer.java │ │ ├── MaxGramSize.java │ │ ├── MinGramSize.java │ │ ├── MultiLingualDictionary.java │ │ ├── MultiLingualDictionaryLuceneImpl.java │ │ ├── MultiLingualShortFormDictionary.java │ │ ├── MultiLingualShortFormDictionaryLuceneImpl.java │ │ ├── MultiLingualShortFormIndex.java │ │ ├── MultiLingualShortFormIndexLuceneImpl.java │ │ ├── MultilingualDictionaryUpdater.java │ │ ├── ProjectLuceneDirectoryPathSupplier.java │ │ ├── QueryAnalyzerFactory.java │ │ ├── Scanner.java │ │ ├── SearchFiltersDocumentAugmenter.java │ │ ├── SearchString.java │ │ ├── SearchableMultiLingualShortFormDictionary.java │ │ ├── SearchableMultiLingualShortFormDictionaryLuceneImpl.java │ │ ├── ShortFormCache.java │ │ ├── ShortFormMatchFunction.java │ │ ├── ShortFormQuotingUtils.java │ │ ├── WebProtegeOntologyIRIShortFormProvider.java │ │ └── WellKnownLabellingIris.java │ │ ├── storage │ │ ├── MinioFileDownloader.java │ │ ├── MinioProperties.java │ │ └── StorageException.java │ │ ├── tag │ │ ├── CriteriaBasedTagsManager.java │ │ ├── EntityTags.java │ │ ├── EntityTagsRepository.java │ │ ├── EntityTagsRepositoryImpl.java │ │ ├── GetEntityTagsActionHandler.java │ │ ├── GetEntityTagsCommandHandler.java │ │ ├── GetProjectTagsActionHandler.java │ │ ├── GetProjectTagsCommandHandler.java │ │ ├── SetProjectTagsActionHandler.java │ │ ├── SetProjectTagsCommandHandler.java │ │ ├── Tag.java │ │ ├── TagData.java │ │ ├── TagId.java │ │ ├── TagRepository.java │ │ ├── TagRepositoryImpl.java │ │ ├── TagsManager.java │ │ ├── UpdateEntityTagsActionHandler.java │ │ └── UpdateEntityTagsCommandHandler.java │ │ ├── templates │ │ ├── TemplateEngine.java │ │ └── TemplateObjectsBuilder.java │ │ ├── trigger │ │ ├── Trigger.java │ │ ├── TriggerAction.java │ │ └── TriggerRunner.java │ │ ├── ui │ │ ├── DisplayContext.java │ │ ├── ViewId.java │ │ └── ViewNodeId.java │ │ ├── usage │ │ ├── GetEntityUsageActionHandler.java │ │ ├── GetEntityUsageCommandHandler.java │ │ ├── ReferencingAxiomVisitor.java │ │ ├── ReferencingAxiomVisitorFactory.java │ │ ├── UsageFilter.java │ │ ├── UsageReference.java │ │ └── UsageReferenceComparator.java │ │ ├── user │ │ ├── EmailAddress.java │ │ ├── GetAuthenticatedUserDetailsActionHandler.java │ │ ├── GetAuthenticatedUserDetailsCommandHandler.java │ │ ├── GetUserIdCompletionsAction.java │ │ ├── GetUserIdCompletionsActionHandler.java │ │ ├── GetUserIdCompletionsCommandHandler.java │ │ ├── GetUserIdCompletionsResult.java │ │ ├── UnrecognizedUserNameException.java │ │ ├── UserActivityManager.java │ │ ├── UserActivityManagerProvider.java │ │ ├── UserActivityRecord.java │ │ ├── UserDetails.java │ │ ├── UserDetailsManager.java │ │ ├── UserDetailsManagerConfiguration.java │ │ ├── UserDetailsManagerImpl.java │ │ ├── UserEmailAlreadyExistsException.java │ │ ├── UserIdInitialsExtractor.java │ │ ├── UserIdProjectIdKey.java │ │ ├── UserNameAlreadyExistsException.java │ │ ├── UserRecord.java │ │ ├── UserRecordConverter.java │ │ ├── UserRecordRepository.java │ │ ├── UserRegistrationException.java │ │ ├── UsersQueryRequest.java │ │ └── UsersQueryResponse.java │ │ ├── util │ │ ├── AlphaNumericStringComparator.java │ │ ├── ClassExpression.java │ │ ├── Counter.java │ │ ├── DisposableObjectManager.java │ │ ├── EntityDeleter.java │ │ ├── FileContentsSizeCalculator.java │ │ ├── IdUtil.java │ │ ├── IriReplacer.java │ │ ├── IriReplacerFactory.java │ │ ├── MemoryMonitor.java │ │ ├── Named.java │ │ ├── OWLOntologyChangeDataVisitorAdapter.java │ │ ├── ReferenceFinder.java │ │ ├── TempFileFactory.java │ │ ├── TempFileFactoryImpl.java │ │ └── UUIDUtil.java │ │ ├── viz │ │ ├── AnyEdgeCriteria.java │ │ ├── AnyEdgeTypeCriteria.java │ │ ├── AnyInstanceOfEdgeCriteria.java │ │ ├── AnyNodeCriteria.java │ │ ├── AnyRelationshipEdgeCriteria.java │ │ ├── AnySubClassOfEdgeCriteria.java │ │ ├── CompositeEdgeCriteria.java │ │ ├── DotRenderer.java │ │ ├── DotRendererFactory.java │ │ ├── Edge.java │ │ ├── EdgeCriteria.java │ │ ├── EdgeCriteriaSplitter.java │ │ ├── EdgeCriteriaVisitor.java │ │ ├── EdgeMatcher.java │ │ ├── EdgeMatcherFactory.java │ │ ├── EdgeNodeCriteria.java │ │ ├── EdgeTypeCriteria.java │ │ ├── EntityGraph.java │ │ ├── EntityGraphBuilder.java │ │ ├── EntityGraphBuilderFactory.java │ │ ├── EntityGraphEdgeLimit.java │ │ ├── EntityGraphFilter.java │ │ ├── EntityGraphSettings.java │ │ ├── EntityGraphSettingsRepository.java │ │ ├── EntityGraphSettingsRepositoryImpl.java │ │ ├── FilterName.java │ │ ├── GetEntityGraphActionHandler.java │ │ ├── GetEntityGraphCommandHandler.java │ │ ├── GetUserProjectEntityGraphCriteriaActionHandler.java │ │ ├── GetUserProjectEntityGraphCriteriaCommandHandler.java │ │ ├── HeadNodeMatchesCriteria.java │ │ ├── IsAEdge.java │ │ ├── NegatedEdgeCriteria.java │ │ ├── NoEdgeCriteria.java │ │ ├── NodeMatchesCriteria.java │ │ ├── ProjectUserEntityGraphSettings.java │ │ ├── RelationshipEdge.java │ │ ├── RelationshipEdgePropertyEqualsCriteria.java │ │ ├── SetEntityGraphActiveFiltersActionHandler.java │ │ ├── SetEntityGraphActiveFiltersCommandHandler.java │ │ ├── SetUserProjectEntityGraphCriteriaActionHandler.java │ │ ├── SetUserProjectEntityGraphSettingsCommandHandler.java │ │ ├── SplitEdgeCriteria.java │ │ └── TailNodeMatchesCriteria.java │ │ ├── watches │ │ ├── GetWatchesActionHandler.java │ │ ├── GetWatchesCommandHandler.java │ │ ├── IndirectlyWatchedEntitiesFinder.java │ │ ├── SetWatchesActionHandler.java │ │ ├── SetWatchesCommandHandler.java │ │ ├── Watch.java │ │ ├── WatchManager.java │ │ ├── WatchManagerImpl.java │ │ ├── WatchNotificationEmailTemplate.java │ │ ├── WatchRecord.java │ │ ├── WatchRecordRepository.java │ │ ├── WatchRecordRepositoryImpl.java │ │ ├── WatchTriggeredHandler.java │ │ ├── WatchTriggeredHandlerImpl.java │ │ ├── WatchType.java │ │ └── WatchedChangesManager.java │ │ └── webhook │ │ ├── CommentNotificationSlackTemplate.java │ │ ├── CommentPostedSlackWebhookInvoker.java │ │ ├── JsonPayloadWebhookExecutor.java │ │ ├── PostWebhookPayloadTask.java │ │ ├── ProjectChangedWebhookInvoker.java │ │ ├── ProjectChangedWebhookPayload.java │ │ ├── ProjectWebhook.java │ │ ├── ProjectWebhookEventType.java │ │ ├── SlackWebhook.java │ │ ├── SlackWebhookRepository.java │ │ ├── SlackWebhookRepositoryImpl.java │ │ ├── Webhook.java │ │ ├── WebhookExecutor.java │ │ ├── WebhookInvocation.java │ │ ├── WebhookInvoker.java │ │ ├── WebhookRepository.java │ │ └── WebhookRepositoryImpl.java └── resources │ ├── application-local.properties │ ├── application.properties │ ├── built-in-prefixes.csv │ ├── builtin-perspective-data │ ├── Classes.json │ ├── Comments.json │ ├── History.json │ ├── Individuals.json │ ├── OWL Classes.json │ ├── OWL Properties.json │ ├── Properties.json │ └── Query.json │ ├── logback-spring.xml │ └── templates │ ├── comment-notification-email-template.html │ ├── comment-notification-slack-template.json │ ├── password-reset-email-template.html │ └── watch-notification-email-template.html └── test ├── java └── edu │ └── stanford │ └── protege │ └── webprotege │ ├── DataFactory_TestCase.java │ ├── IndexUpdaterServiceTestConfiguration.java │ ├── MockingUtils.java │ ├── MongoTestExtension.java │ ├── OWLDeclarationAxiomMatcher.java │ ├── OWLEntityMatcher.java │ ├── OWLLiteralWithLexicalValueMatcher.java │ ├── RabbitTestExtension.java │ ├── RdfsLabelWithLexicalValueMatcher.java │ ├── TimeUtil_TestCase.java │ ├── access │ ├── ApplicationResource_TestCase.java │ ├── ObjectMapperExtraCapabilitiesCustomizerTest.java │ ├── ProjectResource_TestCase.java │ ├── RoleId_Json_TestCase.java │ ├── RoleId_TestCase.java │ ├── Subject_AnySignedInUser_TestCase.java │ ├── Subject_GuestUser_TestCase.java │ └── Subject_SpecificUser_TestCase.java │ ├── admin │ ├── ApplicationPreferencesManager_TestCase.java │ ├── ApplicationPreferencesStore_IT.java │ └── GetApplicationPreferencesActionHandler_TestCase.java │ ├── api │ └── TimestampDeserializer_TestCase.java │ ├── axiom │ ├── AxiomByRenderingComparator_TestCase.java │ ├── AxiomBySubjectComparator_TestCase.java │ ├── AxiomByTypeComparator_TestCase.java │ ├── AxiomComparatorImpl_TestCase.java │ ├── AxiomIRISubjectProvider_TestCase.java │ ├── AxiomSubjectProvider_TestCase.java │ └── DefaultAxiomTypeOrdering_TestCase.java │ ├── card │ └── CardDescriptorRepositoryImpl_IT.java │ ├── change │ ├── ChangeApplicationResult_TestCase.java │ ├── ChangeGenerationContext_TestCase.java │ ├── ChangeListMinimiser_TestCase.java │ ├── OntologyChangeList_TestCase.java │ ├── OwlOntologyChangeTranslatorVisitor_TestCase.java │ ├── OwlOntologyChangeTranslator_TestCase.java │ ├── ProjectChangeTimestampComparator_TestCase.java │ └── RevisionReverterChangeListGenerator_TestCase.java │ ├── crud │ ├── EntityIriPrefixResolver_TestCase.java │ ├── HierarchyPositionCriteriaMatchableEntityTypesExtractor_TestCase.java │ ├── IRIParserTestCase.java │ ├── gen │ │ └── IncrementingPatternDescriptorValueGenerator_TestCase.java │ ├── obo │ │ └── OboIdSessionTestCase.java │ ├── supplied │ │ └── SuppliedNameSuffixEntityCrudKitHandlerTestCase.java │ └── uuid │ │ ├── UuidEntityCrudKitHandlerTestCase.java │ │ └── UuidEntityCrudKitPluginTestCase.java │ ├── dispatch │ ├── ActionExecutionResult_TestCase.java │ ├── ExecutionContext_TestCase.java │ ├── impl │ │ ├── ApplicationActionHandlerRegistry_Test.java │ │ └── DispatchServiceExecutorImpl_TestCase.java │ └── validators │ │ └── UserIsSignedInValidator_TestCase.java │ ├── entity │ ├── DeclarationParser_TestCase.java │ ├── EntityNameChar_TestCase.java │ ├── EntityNameUtils_IndexOfWordEnd_TestCase.java │ ├── EntityNameUtils_IndexOfWord_TestCase.java │ ├── EntityNameUtils_IsQuoted_TestCase.java │ ├── EntityNameUtils_IsWordStart_TestCase.java │ ├── FreshEntityIri_TestCase.java │ ├── MergeEntitiesChangeListGenerator_TestCase.java │ └── SubjectClosureResolver_TestCase.java │ ├── forms │ ├── AxiomTemplatesParser_IT.java │ ├── CopyFormDescriptorsFromProject_Serialization_TestCase.java │ ├── DeleteForm_Serialization_TestCase.java │ ├── EntityFormRepositoryImpl_IT.java │ ├── EntityFormSelectorRepositoryImpl_IT.java │ ├── FormControlValueDeserializer_TestCase.java │ ├── FormDataByFormIdTest.java │ ├── FormDataConverter_TestCase.java │ ├── FormDataRepository_IT.java │ ├── FormDescriptor_Serialization_IT.java │ ├── FormFieldDescriptor_Serialization_IT.java │ ├── FormFrameFlattener_TestCase.java │ ├── FormId_TestCase.java │ ├── FormSubjectFactoryDescriptorTest.java │ ├── GetEntityCreationForms_Serialization_TestCase.java │ ├── GetEntityDeprecationForms_Serialization_TestCase.java │ ├── GetEntityFormDescriptor_Serialization_TestCase.java │ ├── GetEntityFormsActionHandlerIT.java │ ├── GetEntityForms_Serialization_TestCase.java │ ├── GetProjectFormDescriptors_Serialization_TestCase.java │ ├── UpdateFormDescriptor_Serialization_TestCase.java │ ├── data │ │ ├── EntityNameControlDataDtoTest.java │ │ ├── FormFieldAccessModeTest.java │ │ ├── FormFieldDataDtoTest.java │ │ ├── FormFieldDataTest.java │ │ ├── GridCellDataDtoTest.java │ │ ├── GridControlDataDtoTest.java │ │ ├── GridRowDataDtoComparatorFactory_TestCase.java │ │ ├── GridRowDataDtoTest.java │ │ ├── MultiChoiceControlDataDtoTest.java │ │ ├── PrimitiveFormControlDataDtoTest.java │ │ ├── PrimitiveFormControlDataTest.java │ │ ├── SingleChoiceControlDataDtoTest.java │ │ ├── TextControlDataDtoTest.java │ │ └── TextControlDataTest.java │ ├── field │ │ ├── ChoiceDescriptorTest.java │ │ ├── ChoiceDescriptor_Serialization_TestCase.java │ │ ├── ChoiceListSourceDescriptor_Serialization_TestCase.java │ │ ├── DynamicChoiceListSourceDescriptorTest.java │ │ ├── EntityNameControlDescriptorDtoTest.java │ │ ├── EntityNameControlDescriptorTest.java │ │ ├── FixedChoiceListSourceDescriptorTest.java │ │ ├── FormDescriptorTest.java │ │ ├── FormFieldDescriptorTest.java │ │ ├── FormRegionId_TestCase.java │ │ ├── FormRegionOrdering_TestCase.java │ │ ├── GridColumnDescriptor_Serialization_Test.java │ │ ├── GridControlDescriptor_Serialization_TestCase.java │ │ ├── MultiChoiceControlDescriptor_Serialization_TestCase.java │ │ ├── OwlPropertyBindingTest.java │ │ ├── OwlSubClassBindingTest.java │ │ ├── SingleChoiceControlDescriptor_Serialization_TestCase.java │ │ ├── SubFormControlDescriptor_IT.java │ │ ├── TextControlDescriptorTest.java │ │ └── TextControlDescriptor_TestCase.java │ └── processor │ │ ├── FormControlDataProcessor_TestCase.java │ │ ├── FormDataProcessor_TestCase.java │ │ ├── FormFieldProcessor_TestCase.java │ │ ├── GridCellDataProcessor_TestCase.java │ │ ├── GridControlDataProcessor_TestCase.java │ │ └── GridRowDataProcessor_TestCase.java │ ├── frame │ ├── OwlOntologyFacade_ManchesterSyntaxAxioms_TestCase.java │ └── translator │ │ ├── Annotation2PropertyValueTranslator_TestCase.java │ │ └── ClassExpression2PropertyValuesTranslator_TestCase.java │ ├── hierarchy │ ├── AnnotationPropertyHierarchyProviderImpl_TestCase.java │ ├── ClassHierarchyProviderImpl_TestCase.java │ ├── DataPropertyHierarchyProvider_TestCase.java │ ├── FixedRootClassHierarchyProvider_TestCase.java │ ├── GetHierarchyDescriptorActionHandlerTest.java │ ├── GetHierarchyDescriptorCommandHandlerTest.java │ ├── GetHierarchyDescriptorRequestTest.java │ ├── GetHierarchyDescriptorResponseTest.java │ ├── GetHierarchyDescriptorRulesCommandHandlerTest.java │ ├── GetProjectHierarchyDescriptorRulesRequestTest.java │ ├── GetProjectHierarchyDescriptorRulesResponseTest.java │ ├── HierarchyDescriptorRuleDisplayContextMatcherTest.java │ ├── HierarchyDescriptorRuleSelectorTest.java │ ├── HierarchyDescriptorRuleTest.java │ ├── HierarchyDescriptorRulesRepositoryImplIT.java │ ├── HierarchyIdTest.java │ ├── NamedHierarchyJsonTest.java │ ├── NamedHierarchyRepositoryIT.java │ ├── ObjectPropertyHierarchyProviderImpl_TestCase.java │ ├── ProjectHierarchyDescriptorRulesTest.java │ └── ordering │ │ ├── OrderedChildrenDocumentServiceTest.java │ │ ├── ProcessUploadedSiblingsOrderingCommandHandlerIT.java │ │ ├── ProjectOrderedChildrenManagerIT.java │ │ ├── ProjectOrderedChildrenMapperTest.java │ │ └── ProjectOrderedChildrenServiceImplIT.java │ ├── index │ └── impl │ │ ├── AnnotationAssertionAxiomsBySubjectIndexImpl_TestCase.java │ │ ├── AnnotationAssertionAxiomsByValueIndexImpl_TestCase.java │ │ ├── AnnotationAxiomsByIriReferenceIndexImpl_AnnotationAssertionAxiom_TestCase.java │ │ ├── AnnotationAxiomsByIriReferenceIndexImpl_AnnotationPropertyDomain_TestCase.java │ │ ├── AnnotationAxiomsByIriReferenceIndexImpl_AnnotationPropertyRange_TestCase.java │ │ ├── AnnotationPropertyDomainAxiomsIndexImpl_TestCase.java │ │ ├── AnnotationPropertyRangeAxiomsIndexImpl_TestCase.java │ │ ├── AxiomChangeHandler_TestCase.java │ │ ├── AxiomMultimapIndex_UnaryKey_TestCase.java │ │ ├── AxiomMultimap_Nary_TestCase.java │ │ ├── AxiomsByEntityReferenceIndexImpl_ContainsEntityInOntologyAxiomsSignature_TestCase.java │ │ ├── AxiomsByEntityReferenceIndexImpl_TestCase.java │ │ ├── AxiomsByReferenceIndexImpl_TestCase.java │ │ ├── AxiomsByTypeIndexImpl_TestCase.java │ │ ├── ClassAssertionAxiomsByClassIndexImpl_TestCase.java │ │ ├── ClassAssertionAxiomsByIndividualIndexImpl_TestCase.java │ │ ├── DataPropertyAssertionAxiomsBySubjectIndexImpl_TestCase.java │ │ ├── DataPropertyCharacteristicsIndexImpl_TestCase.java │ │ ├── DataPropertyDomainAxiomsIndexImpl_TestCase.java │ │ ├── DataPropertyRangeAxiomsIndex_TestCase.java │ │ ├── DeprecatedEntitiesByEntityIndexImpl_TestCase.java │ │ ├── DifferentIndividualsAxiomsIndexImpl_TestCase.java │ │ ├── DisjointClassesAxiomsIndexImpl_TestCase.java │ │ ├── DisjointDataPropertiesAxiomsIndexImpl_TestCase.java │ │ ├── DisjointObjectPropertiesAxiomsIndexImpl_TestCase.java │ │ ├── EntitiesInOntologySignatureByIriIndexImpl_TestCase.java │ │ ├── EntitiesInOntologySignatureIndexImpl_TestCase.java │ │ ├── EntitiesInProjectSignatureByIriIndexImpl_TestCase.java │ │ ├── EntitiesInProjectSignatureIndexImpl_TestCase.java │ │ ├── EquivalentClassesAxiomsIndexImpl_TestCase.java │ │ ├── EquivalentDataPropertiesAxiomsIndexImpl_TestCase.java │ │ ├── EquivalentObjectPropertiesAxiomsIndexImpl_TestCase.java │ │ ├── IndividualsByTypeIndexImpl_TestCase.java │ │ ├── InverseObjectPropertyAxiomsIndexImpl_TestCase.java │ │ ├── ObjectPropertyAssertionAxiomsBySubjectIndexImpl_TestCase.java │ │ ├── ObjectPropertyCharacteristicsIndexImpl_TestCase.java │ │ ├── ObjectPropertyDomainAxiomsIndexImpl_TestCase.java │ │ ├── ObjectPropertyRangeAxiomsIndexImpl_TestCase.java │ │ ├── OntologyAnnotationsIndexImpl_TestCase.java │ │ ├── OntologyAxiomsIndexImpl_TestCase.java │ │ ├── OntologySignatureByTypeIndexImpl_TestCase.java │ │ ├── OntologySignatureIndexImpl_TestCase.java │ │ ├── ProjectClassAssertionAxiomsByIndividualIndexImpl_TestCase.java │ │ ├── ProjectOntologiesIndexImpl_TestCase.java │ │ ├── ProjectSignatureByTypeIndexImpl_TestCase.java │ │ ├── ProjectSignatureIndexImpl_TestCase.java │ │ ├── PropertyAssertionAxiomsBySubjectIndexImpl_TestCase.java │ │ ├── RootIndexImpl_TestCase.java │ │ ├── SameIndividualAxiomsIndexImpl_TestCase.java │ │ ├── SubAnnotationPropertyAxiomsBySubPropertyIndexImpl_TestCase.java │ │ ├── SubAnnotationPropertyAxiomsBySuperPropertyIndexImpl_TestCase.java │ │ ├── SubClassOfAxiomsBySubClassIndexImpl_TestCase.java │ │ ├── SubDataPropertyAxiomsBySubPropertyIndexImpl_TestCase.java │ │ └── SubObjectPropertyAxiomsBySubPropertyIndexImpl_TestCase.java │ ├── inject │ └── ApplicationExecutorsRegistry_TestCase.java │ ├── issues │ ├── CommentNotificationEmailGenerator_TestCase.java │ ├── CommentParticipantsExtractor_TestCase.java │ ├── CommentRenderer_TestCase.java │ ├── DiscussionThreadParticipantsExtractor_TestCase.java │ ├── EntityDiscussionThreadRepository_IT.java │ └── events │ │ └── MentionParser_TestCase.java │ ├── lang │ ├── ActiveLanguagesManagerImpl_TestCase.java │ ├── DefaultDisplayNameSettingsFactory_TestCase.java │ └── LanguageCode_TestCase.java │ ├── mail │ ├── CommentMessageIdGenerator_TestCase.java │ ├── MessageIdGenerator_TestCase.java │ ├── MessageId_TestCase.java │ └── SendMailImplTestCase.java │ ├── manager │ └── WebProtegeOntologyManagerSaveBinaryDocumentTestCase.java │ ├── mansyntax │ ├── ManchesterSyntaxFrameParser_TestCase.java │ ├── OntologyAxiomPairChangeGeneratorTestCase.java │ ├── OntologyAxiomPairOntologySwitchTestCase.java │ ├── ShellOntologyChecker_TestCase.java │ └── ShellOwlOntology_TestCase.java │ ├── match │ ├── AndMatcher_TestCase.java │ ├── AnnotationMatcher_TestCase.java │ ├── AnnotationPropertyMatcher_TestCase.java │ ├── AnnotationValuesAreNotDisjointMatcher_TestCase.java │ ├── ConflictingBooleanValuesMatcher_TestCase.java │ ├── DateIsAfterMatcher_TestCase.java │ ├── DateIsBeforeMatcher_TestCase.java │ ├── EntityIsDeprecatedMatcher_TestCase.java │ ├── HierarchyPositionMatchingEngineImpl_TestCase.java │ ├── IriAnnotationValueMatcher_TestCase.java │ ├── IriLexicalValueMatcher_TestCase.java │ ├── LangTagMatchesMatcher_TestCase.java │ ├── LexicalValueNotInDatatypeSpaceMatcher_TestCase.java │ ├── LiteralAnnotationValueMatcher_TestCase.java │ ├── LiteralInLexicalSpaceMatcher_TestCase.java │ ├── LiteralMatcher_TestCase.java │ ├── NonUniqueLangTagsMatcher_TestCase.java │ ├── NotMatcher_TestCase.java │ ├── NumericValueMatcher_TestCase.java │ ├── OrMatcher_TestCase.java │ ├── StringContainsMatcher_TestCase.java │ ├── StringContainsRegexMatchMatcher_TestCase.java │ ├── StringContainsRepeatedWhiteSpaceMatcher_TestCase.java │ ├── StringEndsWithMatcher_TestCase.java │ ├── StringEqualsMatcher_TestCase.java │ └── StringStartsWithMatcher_TestCase.java │ ├── merge │ ├── AnnotationDiffCalculator_TestCase.java │ ├── AxiomDiffCalculator_TestCase.java │ ├── ModifiedProjectOntologiesCalculator_TestCase.java │ ├── OntologyDiff2Changes_TestCase.java │ ├── OntologyDiffCalculator_TestCase.java │ ├── OntologyDiff_TestCase.java │ ├── OntologyPatcher_TestCase.java │ └── ProjectOntologiesBuilder_TestCase.java │ ├── merge_add │ └── MergeOntologyCalculator_TestCase.java │ ├── metaproject │ └── UserDetailsManagerImpl_TestCase.java │ ├── object │ ├── OWLClassExpressionSelector_TestCase.java │ ├── OWLDataPropertyExpressionSelector_TestCase.java │ ├── OWLIndividualSelector_TestCase.java │ ├── OWLObjectPropertyExpressionSelector_TestCase.java │ └── SWRLAtomSelector_TestCase.java │ ├── ontology │ ├── ProcessUploadedOntologiesRequestTest.java │ └── ProcessUploadedOntologiesResponseTest.java │ ├── owlapi │ ├── LoadOBOOntologyDocument_TestCase.java │ ├── ProjectAnnotationAssertionAxiomsBySubjectIndexImpl_TestCase.java │ └── change │ │ └── RevisionManagerImpl_TestCase.java │ ├── permissions │ └── GetProjectPermissionsActionHandler_TestCase.java │ ├── persistence │ ├── EmailAddressReadConverterTestCase.java │ ├── EmailAddressWriteConverterTestCase.java │ ├── MilestoneReadConverter_TestCase.java │ ├── MilestoneWriteConverter_TestCase.java │ ├── OWLEntityReadConverter_TestCase.java │ ├── OWLEntityWriteConverter_TestCase.java │ ├── ProjectIdReadConverterTestCase.java │ ├── ProjectIdWriteConverterTestCase.java │ ├── UserIdReadConverterTestCase.java │ └── UserIdWriteConverterTestCase.java │ ├── perspective │ └── BuiltInPerspective_TestCase.java │ ├── place │ ├── PlaceUrl_TestCase.java │ ├── ProjectViewPlaceTokenizer_TestCase.java │ └── ProjectViewPlace_TestCase.java │ ├── project │ ├── BuiltInPrefixDeclarationsLoader_TestCase.java │ ├── CreateProjectSagaManagerTest.java │ ├── DefaultOntologyIdManagerImpl_TestCase.java │ ├── FileDocumentSourceMatcher.java │ ├── GetProjectDetailsActionHandler_TestCase.java │ ├── PrefixDeclarationsCsvParser_TestCase.java │ ├── PrefixDeclarationsStore_IT.java │ ├── ProjectAccessManagerImpl_IT.java │ ├── ProjectCache_Test.java │ ├── ProjectDetailsRepository_IT.java │ ├── RecentProjectRecord_TestCase.java │ ├── WebProtegeProjectComponent_TestCase.java │ └── chg │ │ ├── OntologyChangeTranslatorVisitor_TestCase.java │ │ └── OntologyChangeTranslator_TestCase.java │ ├── projectsettings │ └── GetProjectSettingsActionHandler_TestCase.java │ ├── renderer │ ├── AnnotationPropertyComparatorImpl_TestCase.java │ ├── IRIOrdinalProvider_TestCase.java │ ├── ImageLinkRendererTestCase.java │ ├── MarkdownLiteralRendererTestCase.java │ ├── NullDeprecatedEntityChecker_TestCase.java │ └── NullHighlightedEntityChecker_TestCase.java │ ├── revision │ ├── CreateInitialRevisionHistoryRequestTest.java │ ├── CreateInitialRevisionHistoryResponseTest.java │ ├── GetHeadRevisionNumberActionHandler_TestCase.java │ ├── GetRevisionSummariesActionHandler_TestCase.java │ └── ProjectChangesManager_IT.java │ ├── search │ └── EntitySearchFilterRepositoryImpl_IT.java │ ├── shortform │ ├── IndexingAnalyzerWrapper_TestCase.java │ ├── LocalNameExtractor_TestCase.java │ ├── ProjectLuceneDirectoryPathSupplier_TestCase.java │ ├── QueryAnalyzerFactory_TestCase.java │ └── WebProtegeOntologyIRIShortFormProvider_TestCase.java │ ├── tag │ ├── EntityTagsRepositoryImpl_TestCase.java │ └── TagRepositoryImpl_IT.java │ ├── trigger │ └── TriggerRunner_TestCase.java │ ├── ui │ ├── DisplayContextTest.java │ ├── ViewIdTest.java │ └── ViewNodeIdTest.java │ ├── user │ ├── GetUserIdCompletionsActionHandler_TestCase.java │ ├── GetUserIdCompletionsAction_TestCase.java │ ├── GetUserIdCompletionsResult_TestCase.java │ ├── UserActivityManager_IT.java │ ├── UserActivityRecord_TestCase.java │ ├── UserIdInitialsExtractor_TestCase.java │ └── UserRecord_TestCase.java │ ├── util │ ├── AlphaNumericStringComparator_TestCase.java │ ├── EntityDeleter_TestCase.java │ ├── OWLOntologyChangeDataVisitorAdapter_TestCase.java │ ├── ReferenceFinder_TestCase.java │ ├── TempFileFactoryImpl_TestCase.java │ └── UUIDUtil_TestCase.java │ ├── viz │ ├── EntityGraphBuilder_TestCase.java │ └── EntityGraphSettingsRepositoryImpl_IT.java │ ├── watches │ └── WatchRecordRepository_IT.java │ └── webhook │ ├── SlackWebhookRepository_IT.java │ └── WebhookRepositoryImpl_IT.java └── resources ├── application-integrationtest.properties ├── application-test.yaml ├── application.properties ├── edu └── stanford │ └── protege │ └── webprotege │ └── app │ └── UserInSession.json ├── ontologies └── obo │ └── go.fragment.obo └── orderedSiblingsTest.json /.github/workflows/ci.yaml: -------------------------------------------------------------------------------- 1 | name: Verify 2 | 3 | on: 4 | push: 5 | branches-ignore: 6 | - main 7 | 8 | jobs: 9 | build: 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - uses: actions/checkout@v3 14 | with: 15 | token: ${{ secrets.GITHUB_TOKEN }} 16 | - name: Set up JDK 17 17 | uses: actions/setup-java@v3 18 | with: 19 | java-version: '17' 20 | distribution: 'adopt' 21 | - name: Build with Maven 22 | run: mvn --batch-mode package 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.class 2 | target/ 3 | 4 | # IDE files 5 | .idea/ 6 | *.iml 7 | .classpath 8 | .project 9 | .settings/ 10 | out/ 11 | 12 | logs/ 13 | 14 | velocity.log.* 15 | *.log 16 | 17 | dependency-reduced-pom.xml 18 | 19 | .protegedata/ 20 | 21 | overlays 22 | 23 | .DS_Store 24 | 25 | *.binary -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: java 2 | jdk: 3 | - oraclejdk11 4 | before_script: 5 | - sudo mkdir /var/log/webprotege && sudo chown travis /var/log/webprotege 6 | script: mvn verify 7 | sudo: false 8 | services: mongodb 9 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:17 2 | MAINTAINER protege.stanford.edu 3 | 4 | EXPOSE 7770 5 | ARG JAR_FILE 6 | COPY target/${JAR_FILE} webprotege-backend-service.jar 7 | ENTRYPOINT ["java","-jar","/webprotege-backend-service.jar"] -------------------------------------------------------------------------------- /hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "------ HOOK START - BUILD -------" 4 | printenv 5 | 6 | # ENV VARs are set by the cloud.docker.com build process, and are available during automated builds, automated tests, 7 | # and while executing hooks like here. 8 | # DOCKER_TAG: the Docker repository tag being built. 9 | # https://docs.docker.com/docker-hub/builds/advanced/ 10 | docker build -t $IMAGE_NAME --build-arg WEBPROTEGE_VERSION=$DOCKER_TAG . 11 | 12 | echo "------ HOOK END - BUILD -------" -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/DeserializationUtil.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege; 2 | 3 | import javax.annotation.Nullable; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 2019-12-20 9 | */ 10 | public class DeserializationUtil { 11 | 12 | public static String nonNull(@Nullable String value) { 13 | if(value == null) { 14 | return ""; 15 | } 16 | else { 17 | return value; 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/Filter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege; 2 | 3 | 4 | 5 | /** 6 | * Author: Matthew Horridge
7 | * Stanford University
8 | * Bio-Medical Informatics Research Group
9 | * Date: 25/01/2012 10 | */ 11 | public interface Filter { 12 | 13 | boolean isIncluded(T object); 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/HasDispose.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege; 2 | 3 | /** 4 | * Author: Matthew Horridge
5 | * Stanford University
6 | * Bio-Medical Informatics Research Group
7 | * Date: 05/04/2013 8 | */ 9 | public interface HasDispose { 10 | 11 | void dispose(); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/HasSubject.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege; 2 | 3 | /** 4 | * Author: Matthew Horridge
5 | * Stanford University
6 | * Bio-Medical Informatics Research Group
7 | * Date: 20/02/2013 8 | *

9 | * An interface to objects which have a subject. 10 | *

11 | */ 12 | public interface HasSubject { 13 | 14 | /** 15 | * Gets the subject of this object. 16 | * @return The subject. Not {@code null}. 17 | */ 18 | T getSubject(); 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/StreamUtils.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege; 2 | 3 | 4 | import java.util.List; 5 | import java.util.function.Consumer; 6 | import java.util.stream.Collector; 7 | 8 | public class StreamUtils { 9 | public static Collector, List> batchCollector(int batchSize, Consumer> batchProcessor) { 10 | return new BatchCollector<>(batchSize, batchProcessor); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/app/AccountCreationSetting.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.app; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 16 Mar 2017 7 | */ 8 | public enum AccountCreationSetting { 9 | 10 | ACCOUNT_CREATION_ALLOWED, 11 | 12 | ACCOUNT_CREATION_NOT_ALLOWED 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/app/ApplicationScheme.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.app; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 11 Mar 2017 7 | */ 8 | public enum ApplicationScheme { 9 | 10 | HTTP, 11 | 12 | HTTPS 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/app/NotificationEmailsSetting.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.app; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 16 Mar 2017 7 | */ 8 | public enum NotificationEmailsSetting { 9 | 10 | SEND_NOTIFICATION_EMAILS, 11 | 12 | DO_NOT_SEND_NOTIFICATION_EMAILS 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/app/ProjectCreationSetting.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.app; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 16 Mar 2017 7 | */ 8 | public enum ProjectCreationSetting { 9 | 10 | EMPTY_PROJECT_CREATION_ALLOWED, 11 | 12 | EMPTY_PROJECT_CREATION_NOT_ALLOWED 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/app/ProjectUploadSetting.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.app; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 16 Mar 2017 7 | */ 8 | public enum ProjectUploadSetting { 9 | 10 | PROJECT_UPLOAD_ALLOWED, 11 | 12 | PROJECT_UPLOAD_NOT_ALLOWED 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/app/SetApplicationSettingsResult.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.app; 2 | 3 | import com.fasterxml.jackson.annotation.JsonCreator; 4 | import com.fasterxml.jackson.annotation.JsonTypeName; 5 | import com.google.auto.value.AutoValue; 6 | import edu.stanford.protege.webprotege.dispatch.Result; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 18 Mar 2017 12 | */ 13 | @AutoValue 14 | 15 | @JsonTypeName("SetApplicationSettings") 16 | public abstract class SetApplicationSettingsResult implements Result { 17 | 18 | @JsonCreator 19 | public static SetApplicationSettingsResult create() { 20 | return new AutoValue_SetApplicationSettingsResult(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/axiom/AxiomTypeOrdering.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.axiom; 2 | 3 | 4 | 5 | import java.lang.annotation.ElementType; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | /** 11 | * Matthew Horridge 12 | * Stanford Center for Biomedical Informatics Research 13 | * 25/02/15 14 | */ 15 | 16 | @Target({ElementType.PARAMETER}) @Retention(RetentionPolicy.RUNTIME) 17 | public @interface AxiomTypeOrdering { 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/bulkop/Operation.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.bulkop; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 27 Sep 2018 7 | */ 8 | public enum Operation { 9 | 10 | REPLACE("Replaced"), 11 | 12 | DELETE("Deleted"), 13 | 14 | AUGMENT("Added"); 15 | 16 | private final String printName; 17 | 18 | Operation(String printName) { 19 | this.printName = printName; 20 | } 21 | 22 | public String getPrintName() { 23 | return printName; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/card/CardContentDescriptor.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.card; 2 | 3 | import com.fasterxml.jackson.annotation.JsonSubTypes; 4 | import com.fasterxml.jackson.annotation.JsonTypeInfo; 5 | 6 | @JsonSubTypes({ 7 | @JsonSubTypes.Type(FormCardContentDescriptor.class), 8 | @JsonSubTypes.Type(CustomContentEntityCardContentDescriptor.class) 9 | }) 10 | @JsonTypeInfo(use = JsonTypeInfo.Id.NAME) 11 | public interface CardContentDescriptor { 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/card/CardDescriptorRepository.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.card; 2 | 3 | import edu.stanford.protege.webprotege.common.ProjectId; 4 | import edu.stanford.protege.webprotege.persistence.Repository; 5 | 6 | import java.util.List; 7 | 8 | public interface CardDescriptorRepository extends Repository { 9 | 10 | void clearCardDescriptors(ProjectId projectId); 11 | 12 | void setCardDescriptors(ProjectId projectId, List cardDescriptors); 13 | 14 | List getCardDescriptors(ProjectId projectId); 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/card/CardId.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.card; 2 | 3 | import com.fasterxml.jackson.annotation.JsonCreator; 4 | import com.fasterxml.jackson.annotation.JsonValue; 5 | 6 | public record CardId(String value) { 7 | 8 | @JsonCreator 9 | public static CardId valueOf(String value) { 10 | return new CardId(value); 11 | } 12 | 13 | @JsonValue 14 | public String value() { 15 | return this.value; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/card/CustomContentEntityCardContentDescriptor.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.card; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import com.fasterxml.jackson.annotation.JsonTypeName; 5 | import edu.stanford.protege.webprotege.portlet.PortletId; 6 | 7 | @JsonTypeName("CustomContent") 8 | public record CustomContentEntityCardContentDescriptor(@JsonProperty("customContentId") CustomContentId customContentId) implements CardContentDescriptor { 9 | 10 | public static CustomContentEntityCardContentDescriptor create(CustomContentId customContentId) { 11 | return new CustomContentEntityCardContentDescriptor(customContentId); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/card/CustomContentId.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.card; 2 | 3 | import com.fasterxml.jackson.annotation.JsonCreator; 4 | import com.fasterxml.jackson.annotation.JsonValue; 5 | 6 | public record CustomContentId(String id) { 7 | 8 | @JsonCreator 9 | public static CustomContentId valueOf(String id) { 10 | return new CustomContentId(id); 11 | } 12 | 13 | @JsonValue 14 | public String id() { 15 | return id; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/card/FormCardContentDescriptor.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.card; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import com.fasterxml.jackson.annotation.JsonTypeName; 5 | import edu.stanford.protege.webprotege.forms.FormId; 6 | 7 | @JsonTypeName("FormContent") 8 | public record FormCardContentDescriptor(@JsonProperty("formId") FormId formId) implements CardContentDescriptor { 9 | 10 | public static FormCardContentDescriptor create(FormId formId) { 11 | return new FormCardContentDescriptor(formId); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/change/ChangeDescriptionGenerator.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.change; 2 | 3 | /** 4 | * Author: Matthew Horridge
5 | * Stanford University
6 | * Bio-Medical Informatics Research Group
7 | * Date: 25/02/2013 8 | */ 9 | public interface ChangeDescriptionGenerator { 10 | 11 | String generateChangeDescription(ChangeApplicationResult result); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/change/ChangeGenerationContext.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.change; 2 | 3 | import edu.stanford.protege.webprotege.common.UserId; 4 | 5 | import javax.annotation.Nonnull; 6 | 7 | import static com.google.common.base.Preconditions.checkNotNull; 8 | 9 | /** 10 | * Author: Matthew Horridge
11 | * Stanford University
12 | * Bio-Medical Informatics Research Group
13 | * Date: 22/02/2013 14 | */ 15 | public class ChangeGenerationContext { 16 | 17 | @Nonnull 18 | private final UserId userId; 19 | 20 | public ChangeGenerationContext(@Nonnull UserId userId) { 21 | this.userId = checkNotNull(userId); 22 | } 23 | 24 | @Nonnull 25 | public UserId getUserId() { 26 | return userId; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/change/HasApplyChanges.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.change; 2 | 3 | import edu.stanford.protege.webprotege.common.ChangeRequestId; 4 | import edu.stanford.protege.webprotege.permissions.PermissionDeniedException; 5 | import edu.stanford.protege.webprotege.common.UserId; 6 | 7 | /** 8 | * @author Matthew Horridge, Stanford University, Bio-Medical Informatics Research Group, Date: 25/03/2014 9 | */ 10 | public interface HasApplyChanges { 11 | ChangeApplicationResult applyChanges(UserId userId, ChangeListGenerator changeListGenerator) throws PermissionDeniedException; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/change/HasGetChangeSubjects.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.change; 2 | 3 | import org.semanticweb.owlapi.model.OWLEntity; 4 | 5 | import java.util.Set; 6 | 7 | /** 8 | * @author Matthew Horridge, 9 | * Stanford University, 10 | * Bio-Medical Informatics Research Group 11 | * Date: 18/02/2014 12 | */ 13 | public interface HasGetChangeSubjects { 14 | 15 | Set getChangeSubjects(OntologyChange change); 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/change/HasHighLevelEvents.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.change; 2 | 3 | import edu.stanford.protege.webprotege.events.HighLevelProjectEventProxy; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * Author: Matthew Horridge
9 | * Stanford University
10 | * Bio-Medical Informatics Research Group
11 | * Date: 12/09/2013 12 | */ 13 | public interface HasHighLevelEvents { 14 | 15 | List getHighLevelEvents(); 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/change/HasProjectChanges.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.change; 2 | 3 | import edu.stanford.protege.webprotege.common.Page; 4 | 5 | import javax.annotation.Nonnull; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 11 Oct 2018 11 | */ 12 | public interface HasProjectChanges { 13 | 14 | @Nonnull 15 | Page getProjectChanges(); 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/change/SilentChangeListGenerator.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.change; 2 | 3 | /** 4 | * Author: Matthew Horridge
5 | * Stanford University
6 | * Bio-Medical Informatics Research Group
7 | * Date: 31/05/2013 8 | */ 9 | public interface SilentChangeListGenerator { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/change/description/AbstractAnnotationChange.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.change.description; 2 | 3 | import org.semanticweb.owlapi.model.IRI; 4 | import org.semanticweb.owlapi.model.OWLAnnotationProperty; 5 | import org.semanticweb.owlapi.model.OWLAnnotationValue; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 2018-12-10 11 | */ 12 | public abstract class AbstractAnnotationChange implements StructuredChangeDescription { 13 | 14 | public abstract IRI getSubject(); 15 | 16 | public abstract OWLAnnotationProperty getProperty(); 17 | 18 | public abstract OWLAnnotationValue getValue(); 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/change/description/ChangedAnnotationProperty.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.change.description; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 2018-12-10 7 | */ 8 | public class ChangedAnnotationProperty { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/change/description/StructuredChangeDescription.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.change.description; 2 | 3 | import edu.stanford.protege.webprotege.owlapi.OWLObjectStringFormatter; 4 | 5 | import javax.annotation.Nonnull; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 2018-12-10 11 | */ 12 | public interface StructuredChangeDescription { 13 | 14 | @Nonnull 15 | String getTypeName(); 16 | 17 | @Nonnull 18 | String formatDescription(@Nonnull OWLObjectStringFormatter formatter); 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/change/matcher/ChangeMatcher.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.change.matcher; 2 | 3 | import edu.stanford.protege.webprotege.change.OntologyChange; 4 | 5 | import java.util.List; 6 | import java.util.Optional; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 16/03/16 12 | */ 13 | public interface ChangeMatcher { 14 | 15 | Optional getDescription(List changeData); 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/change/matcher/ChangeSummary.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.change.matcher; 2 | 3 | import com.google.auto.value.AutoValue; 4 | import edu.stanford.protege.webprotege.change.description.StructuredChangeDescription; 5 | 6 | import javax.annotation.Nonnull; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 2018-12-10 12 | */ 13 | @AutoValue 14 | public abstract class ChangeSummary { 15 | 16 | public static ChangeSummary get(@Nonnull StructuredChangeDescription description) { 17 | return new AutoValue_ChangeSummary(description); 18 | } 19 | 20 | @Nonnull 21 | public abstract StructuredChangeDescription getDescription(); 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/crud/ChangeSetEntityCrudSession.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.crud; 2 | 3 | /** 4 | * @author Matthew Horridge, Stanford University, Bio-Medical Informatics Research Group, Date: 15/09/2014 5 | */ 6 | public interface ChangeSetEntityCrudSession { 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/crud/EntityCrudKitPlugin.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.crud; 2 | 3 | /** 4 | * Author: Matthew Horridge
5 | * Stanford University
6 | * Bio-Medical Informatics Research Group
7 | * Date: 8/19/13 8 | */ 9 | public interface EntityCrudKitPlugin, S extends EntityCrudKitSuffixSettings, C extends ChangeSetEntityCrudSession> { 10 | 11 | EntityCrudKit getEntityCrudKit(); 12 | 13 | EntityCrudKitHandler getEntityCrudKitHandler(); 14 | 15 | EntityCrudKitHandler getEntityCrudKitHandler(EntityCrudKitSettings settings); 16 | 17 | S getDefaultSettings(); 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/crud/HasKitId.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.crud; 2 | 3 | /** 4 | * Author: Matthew Horridge
5 | * Stanford University
6 | * Bio-Medical Informatics Research Group
7 | * Date: 08/08/2013 8 | */ 9 | public interface HasKitId { 10 | 11 | EntityCrudKitId getKitId(); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/crud/IRIPrefixUpdateStrategy.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.crud; 2 | 3 | /** 4 | * Author: Matthew Horridge
5 | * Stanford University
6 | * Bio-Medical Informatics Research Group
7 | * Date: 11/09/2013 8 | */ 9 | public enum IRIPrefixUpdateStrategy { 10 | /** 11 | * Specifies that the system should rename entities whose IRIs had the previous prefix so that they 12 | * have the new prefix. i.e. a find and replace. 13 | */ 14 | FIND_AND_REPLACE, 15 | 16 | LEAVE_INTACT 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/crud/gen/GeneratedValueDescriptor.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.crud.gen; 2 | 3 | import com.fasterxml.jackson.annotation.JsonSubTypes; 4 | import com.fasterxml.jackson.annotation.JsonTypeInfo; 5 | 6 | /** 7 | * Matthew Horridge 8 | * Stanford Center for Biomedical Informatics Research 9 | * 2020-11-01 10 | */ 11 | @JsonSubTypes({ 12 | @JsonSubTypes.Type(value = IncrementingPatternDescriptor.class, name = IncrementingPatternDescriptor.TYPE_NAME) 13 | }) 14 | @JsonTypeInfo(use = JsonTypeInfo.Id.NAME) 15 | public interface GeneratedValueDescriptor { 16 | 17 | R accept(GeneratedValueDescriptorVisitor visitor); 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/crud/gen/GeneratedValueDescriptorVisitor.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.crud.gen; 2 | 3 | import javax.annotation.Nonnull; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 2020-11-01 9 | */ 10 | public interface GeneratedValueDescriptorVisitor { 11 | 12 | R visit(@Nonnull IncrementingPatternDescriptor incrementingPatternDescriptor); 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/crud/obo/OBOIdSession.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.crud.obo; 2 | 3 | import com.google.common.collect.Sets; 4 | import edu.stanford.protege.webprotege.crud.ChangeSetEntityCrudSession; 5 | 6 | import java.util.Set; 7 | 8 | /** 9 | * @author Matthew Horridge, Stanford University, Bio-Medical Informatics Research Group, Date: 15/09/2014 10 | */ 11 | public class OBOIdSession implements ChangeSetEntityCrudSession { 12 | 13 | private final Set sessionIds = Sets.newHashSet(); 14 | 15 | public OBOIdSession() { 16 | } 17 | 18 | public boolean isSessionId(long id) { 19 | return sessionIds.contains(id); 20 | } 21 | 22 | public void addSessionId(long id) { 23 | sessionIds.add(id); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/csv/CSVReaderHandler.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.csv; 2 | 3 | /** 4 | * Author: Matthew Horridge
5 | * Stanford University
6 | * Bio-Medical Informatics Research Group
7 | * Date: 20/05/2013 8 | */ 9 | public interface CSVReaderHandler { 10 | 11 | void handleRow(CSVRow csvRow); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/csv/GetCSVGridResult.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.csv; 2 | 3 | import edu.stanford.protege.webprotege.dispatch.Result; 4 | 5 | /** 6 | * Author: Matthew Horridge
7 | * Stanford University
8 | * Bio-Medical Informatics Research Group
9 | * Date: 21/05/2013 10 | */ 11 | public class GetCSVGridResult implements Result { 12 | 13 | private CSVGrid csvGrid; 14 | 15 | /** 16 | * For serialization purposes only 17 | */ 18 | private GetCSVGridResult() { 19 | } 20 | 21 | public GetCSVGridResult(CSVGrid csvGrid) { 22 | this.csvGrid = csvGrid; 23 | } 24 | 25 | public CSVGrid getCSVGrid() { 26 | return csvGrid; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/csv/ImportCSVFileResult.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.csv; 2 | 3 | import edu.stanford.protege.webprotege.dispatch.Result; 4 | 5 | /** 6 | * Author: Matthew Horridge
7 | * Stanford University
8 | * Bio-Medical Informatics Research Group
9 | * Date: 31/05/2013 10 | */ 11 | public class ImportCSVFileResult implements Result { 12 | 13 | private final int rowCount; 14 | 15 | public ImportCSVFileResult(int rowCount) { 16 | this.rowCount = rowCount; 17 | } 18 | 19 | public int getRowCount() { 20 | return rowCount; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/diff/DiffElementOperationComparator.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.diff; 2 | 3 | import java.util.Comparator; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 26/02/15 9 | */ 10 | public class DiffElementOperationComparator implements Comparator> { 11 | 12 | @Override 13 | public int compare(DiffElement o1, DiffElement o2) { 14 | return o1.getDiffOperation().compareTo(o2.getDiffOperation()); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/diff/DiffOperation.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.diff; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 29/01/15 7 | */ 8 | public enum DiffOperation { 9 | 10 | ADD("Add", "\u2295"), 11 | 12 | REMOVE("Remove", "\u2296"); 13 | 14 | private final String displayName; 15 | 16 | private final String symbol; 17 | 18 | DiffOperation(String displayName, String symbol) { 19 | this.displayName = displayName; 20 | this.symbol = symbol; 21 | } 22 | 23 | public String getDisplayName() { 24 | return displayName; 25 | } 26 | 27 | public String getSymbol() { 28 | return symbol; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/dispatch/ApplicationActionHandler.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.dispatch; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 19 Jun 2017 7 | */ 8 | public interface ApplicationActionHandler, R extends Result> extends ActionHandler { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/dispatch/DispatchServiceExecutor.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.dispatch; 2 | 3 | import edu.stanford.protege.webprotege.common.Request; 4 | import edu.stanford.protege.webprotege.common.Response; 5 | import edu.stanford.protege.webprotege.ipc.ExecutionContext; 6 | import edu.stanford.protege.webprotege.permissions.PermissionDeniedException; 7 | 8 | 9 | 10 | /** 11 | * Author: Matthew Horridge
12 | * Stanford University
13 | * Bio-Medical Informatics Research Group
14 | * Date: 19/02/2013 15 | */ 16 | public interface DispatchServiceExecutor { 17 | 18 |
, R extends Response> DispatchServiceResultContainer execute(A action, RequestContext requestContext, ExecutionContext executionContext) throws ActionExecutionException, PermissionDeniedException; 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/dispatch/InvalidRequestException.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.dispatch; 2 | 3 | import static com.google.common.base.Preconditions.checkNotNull; 4 | 5 | /** 6 | * Author: Matthew Horridge
7 | * Stanford University
8 | * Bio-Medical Informatics Research Group
9 | * Date: 20/02/2013 10 | */ 11 | public class InvalidRequestException extends RuntimeException { 12 | 13 | 14 | /** 15 | * For serialization purposes only 16 | */ 17 | private InvalidRequestException() { 18 | } 19 | 20 | public InvalidRequestException(String message) { 21 | super(checkNotNull(message)); 22 | } 23 | 24 | 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/dispatch/ProjectActionHandler.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.dispatch; 2 | 3 | import edu.stanford.protege.webprotege.common.Request; 4 | import edu.stanford.protege.webprotege.common.Response; 5 | 6 | /** 7 | * Matthew Horridge 8 | * Stanford Center for Biomedical Informatics Research 9 | * 19 Jun 2017 10 | */ 11 | public interface ProjectActionHandler
, R extends Response> extends ActionHandler { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/dispatch/ProjectActionHandlerComponent.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.dispatch; 2 | 3 | import org.springframework.stereotype.Component; 4 | 5 | import java.lang.annotation.*; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 2021-07-14 11 | */ 12 | @Target({ElementType.TYPE}) 13 | @Retention(RetentionPolicy.RUNTIME) 14 | @Documented 15 | public @interface ProjectActionHandlerComponent { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/dispatch/RequestValidator.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.dispatch; 2 | 3 | 4 | /** 5 | * Author: Matthew Horridge
6 | * Stanford University
7 | * Bio-Medical Informatics Research Group
8 | * Date: 20/01/2013 9 | */ 10 | public interface RequestValidator { 11 | 12 | RequestValidationResult validateAction(); 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/dispatch/ValidationResult.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.dispatch; 2 | 3 | /** 4 | * Author: Matthew Horridge
5 | * Stanford University
6 | * Bio-Medical Informatics Research Group
7 | * Date: 20/02/2013 8 | */ 9 | public enum ValidationResult { 10 | 11 | VALID, 12 | 13 | INVALID 14 | } 15 | 16 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/dispatch/actions/AxiomsSource.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.dispatch.actions; 2 | 3 | import org.semanticweb.owlapi.model.OWLAxiom; 4 | 5 | import javax.annotation.Nonnull; 6 | import java.util.stream.Stream; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 2022-02-25 12 | */ 13 | public interface AxiomsSource { 14 | 15 | @Nonnull 16 | Stream getAxioms(); 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/dispatch/actions/SaveEntityChildrenOrderingResult.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.dispatch.actions; 2 | 3 | import edu.stanford.protege.webprotege.dispatch.Result; 4 | 5 | public class SaveEntityChildrenOrderingResult implements Result { 6 | } 7 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/dispatch/impl/ApplicationActionHandlerRegistry.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.dispatch.impl; 2 | 3 | import edu.stanford.protege.webprotege.dispatch.ApplicationActionHandler; 4 | import edu.stanford.protege.webprotege.inject.ApplicationSingleton; 5 | 6 | import jakarta.inject.Inject; 7 | import java.util.Set; 8 | 9 | /** 10 | * Matthew Horridge 11 | * Stanford Center for Biomedical Informatics Research 12 | * 19 Jun 2017 13 | */ 14 | @ApplicationSingleton 15 | public class ApplicationActionHandlerRegistry extends ActionHandlerRegistryImpl { 16 | 17 | @Inject 18 | public ApplicationActionHandlerRegistry(Set handlers) { 19 | super(handlers); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/dispatch/impl/ProjectActionHandlerRegistry.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.dispatch.impl; 2 | 3 | import edu.stanford.protege.webprotege.dispatch.ProjectActionHandler; 4 | import edu.stanford.protege.webprotege.inject.ProjectSingleton; 5 | 6 | import jakarta.inject.Inject; 7 | import java.util.Set; 8 | 9 | /** 10 | * Matthew Horridge 11 | * Stanford Center for Biomedical Informatics Research 12 | * 19 Jun 2017 13 | */ 14 | @ProjectSingleton 15 | public class ProjectActionHandlerRegistry extends ActionHandlerRegistryImpl { 16 | 17 | @Inject 18 | public ProjectActionHandlerRegistry(Set> handlers) { 19 | super(handlers); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/entity/Entity.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.entity; 2 | 3 | import org.semanticweb.owlapi.model.OWLEntity; 4 | import org.semanticweb.owlapi.model.OWLNamedIndividual; 5 | 6 | import javax.annotation.Nonnull; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 20 Sep 2018 12 | */ 13 | public class Entity { 14 | 15 | public static boolean isOWLNamedIndividual(@Nonnull OWLEntity entity) { 16 | return entity.isOWLNamedIndividual(); 17 | } 18 | 19 | @Nonnull 20 | public static OWLNamedIndividual asOWLNamedIndividual(@Nonnull OWLEntity entity) { 21 | return entity.asOWLNamedIndividual(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/entity/EntityDisplay.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.entity; 2 | 3 | import javax.annotation.Nonnull; 4 | import java.util.Optional; 5 | 6 | /** 7 | * Matthew Horridge 8 | * Stanford Center for Biomedical Informatics Research 9 | * 26 Mar 2017 10 | */ 11 | public interface EntityDisplay { 12 | 13 | void setDisplayedEntity(@Nonnull Optional entityData); 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/entity/EntityNodeIndex.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.entity; 2 | 3 | import org.semanticweb.owlapi.model.OWLEntity; 4 | 5 | import javax.annotation.Nonnull; 6 | import java.util.Optional; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 16 Aug 2018 12 | */ 13 | public interface EntityNodeIndex { 14 | 15 | Optional getNode(@Nonnull OWLEntity entity); 16 | 17 | void updateNode(@Nonnull EntityNode entityNode); 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/entity/EntityShortFormsParser.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.entity; 2 | 3 | import com.google.common.base.Splitter; 4 | 5 | import javax.annotation.Nonnull; 6 | import jakarta.inject.Inject; 7 | import java.util.List; 8 | 9 | /** 10 | * Matthew Horridge Stanford Center for Biomedical Informatics Research 7 Dec 2017 11 | */ 12 | public class EntityShortFormsParser { 13 | 14 | @Inject 15 | public EntityShortFormsParser() { 16 | } 17 | 18 | @Nonnull 19 | public List parseShortForms(@Nonnull String sourceText) { 20 | return Splitter.on("\n") 21 | .omitEmptyStrings() 22 | .trimResults() 23 | .splitToList(sourceText); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/entity/GetEntityDirectParentsResult.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.entity; 2 | 3 | import com.fasterxml.jackson.annotation.*; 4 | import edu.stanford.protege.webprotege.common.Response; 5 | 6 | import javax.annotation.Nonnull; 7 | import java.util.List; 8 | 9 | @JsonTypeName(GetEntityDirectParentsAction.CHANNEL) 10 | public record GetEntityDirectParentsResult( 11 | @JsonProperty("entity") @Nonnull OWLEntityData entity, 12 | @JsonProperty("directParents") List directParents 13 | ) implements Response { 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/entity/MergedEntityTreatment.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.entity; 2 | 3 | 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 9 Mar 2018 9 | */ 10 | public enum MergedEntityTreatment { 11 | 12 | DELETE_MERGED_ENTITY, 13 | 14 | DEPRECATE_MERGED_ENTITY 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/entity/RecordEntityChoiceLookupResult.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.entity; 2 | 3 | import edu.stanford.protege.webprotege.dispatch.Result; 4 | 5 | /** 6 | * Author: Matthew Horridge
7 | * Stanford University
8 | * Bio-Medical Informatics Research Group
9 | * Date: 15/11/2013 10 | */ 11 | public class RecordEntityChoiceLookupResult implements Result { 12 | 13 | public RecordEntityChoiceLookupResult() { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/events/HighLevelProjectEventProxy.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.events; 2 | 3 | import edu.stanford.protege.webprotege.common.ProjectEvent; 4 | 5 | import javax.annotation.Nonnull; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 2020-11-05 11 | */ 12 | public interface HighLevelProjectEventProxy { 13 | 14 | @Nonnull 15 | ProjectEvent asProjectEvent(); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/filter/Filter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.filter; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 21/03/16 7 | */ 8 | public class Filter { 9 | 10 | private final FilterId filterId; 11 | 12 | private final FilterSetting filterSetting; 13 | 14 | 15 | public Filter(FilterId filterId, FilterSetting filterSetting) { 16 | this.filterId = filterId; 17 | this.filterSetting = filterSetting; 18 | } 19 | 20 | public FilterId getFilterId() { 21 | return filterId; 22 | } 23 | 24 | public FilterSetting getFilterSetting() { 25 | return filterSetting; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/filter/FilterSetting.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.filter; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 21/03/16 7 | */ 8 | public enum FilterSetting { 9 | 10 | ON, 11 | 12 | OFF; 13 | 14 | public FilterSetting toggle() { 15 | if(this == ON) { 16 | return OFF; 17 | } 18 | else { 19 | return ON; 20 | } 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/CopyFormDescriptorsResult.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms; 2 | 3 | import com.fasterxml.jackson.annotation.JsonTypeName; 4 | import com.google.common.collect.ImmutableList; 5 | import edu.stanford.protege.webprotege.common.Response; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 2020-04-14 11 | */ 12 | 13 | 14 | @JsonTypeName("webprotege.forms.CopyFormDescriptors") 15 | public record CopyFormDescriptorsResult(ImmutableList copiedFormDescriptors) implements Response { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/DeleteFormResult.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms; 2 | 3 | import com.fasterxml.jackson.annotation.JsonTypeName; 4 | import edu.stanford.protege.webprotege.common.Response; 5 | 6 | /** 7 | * Matthew Horridge 8 | * Stanford Center for Biomedical Informatics Research 9 | * 2020-04-15 10 | */ 11 | 12 | 13 | @JsonTypeName("webprotege.forms.DeleteForm") 14 | public record DeleteFormResult() implements Response { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/DeprecateEntityByFormResult.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms; 2 | 3 | import com.fasterxml.jackson.annotation.JsonTypeName; 4 | import edu.stanford.protege.webprotege.common.Response; 5 | 6 | /** 7 | * Matthew Horridge 8 | * Stanford Center for Biomedical Informatics Research 9 | * 2020-10-22 10 | */ 11 | @JsonTypeName("webprotege.forms.DeprecateEntityByForm") 12 | public record DeprecateEntityByFormResult() implements Response { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/EntityFormSelectorRepository.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms; 2 | 3 | import edu.stanford.protege.webprotege.persistence.Repository; 4 | import edu.stanford.protege.webprotege.common.ProjectId; 5 | 6 | import javax.annotation.Nonnull; 7 | import java.util.stream.Stream; 8 | 9 | /** 10 | * Matthew Horridge 11 | * Stanford Center for Biomedical Informatics Research 12 | * 2019-11-08 13 | */ 14 | public interface EntityFormSelectorRepository extends Repository { 15 | 16 | void save(EntityFormSelector entityFormSelector); 17 | 18 | Stream findFormSelectors(@Nonnull ProjectId projectId); 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/EntityFrameFormDataComponent.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms; 2 | 3 | import javax.annotation.Nonnull; 4 | 5 | //@Subcomponent(modules = {EntityFrameFormDataModule.class}) 6 | //@FormDataBuilderSession 7 | public interface EntityFrameFormDataComponent { 8 | 9 | @Nonnull 10 | EntityFrameFormDataDtoBuilder formDataBuilder(); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/ExpansionState.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms; 2 | 3 | public enum ExpansionState { 4 | EXPANDED, COLLAPSED 5 | } 6 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/FilterState.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 2020-06-25 7 | */ 8 | public enum FilterState { 9 | 10 | UNFILTERED, 11 | 12 | FILTERED 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/FormDataBuilderSession.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms; 2 | 3 | import jakarta.inject.Scope; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | 7 | @Retention(RetentionPolicy.RUNTIME) 8 | @Scope 9 | public @interface FormDataBuilderSession { 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/FormDescriptorDtoTranslatorComponent.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 2020-09-29 7 | */ 8 | 9 | //@Subcomponent(modules = {EntityFrameFormDataModule.class}) 10 | //@FormDataBuilderSession 11 | public interface FormDescriptorDtoTranslatorComponent { 12 | 13 | FormDescriptorDtoTranslator getFormDescriptorDtoTranslator(); 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/FormPurpose.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 2020-09-24 7 | */ 8 | public enum FormPurpose { 9 | 10 | ENTITY_CREATION, 11 | 12 | ENTITY_EDITING, 13 | 14 | ENTITY_DEPRECATION 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/FormSubjectFactoryDescriptorMissingException.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms; 2 | 3 | 4 | /** 5 | * Matthew Horridge 6 | * Stanford Center for Biomedical Informatics Research 7 | * 2020-04-26 8 | */ 9 | public class FormSubjectFactoryDescriptorMissingException extends RuntimeException { 10 | 11 | public FormSubjectFactoryDescriptorMissingException() { 12 | super("Subject factory descriptor is missing. Improperly configured form descriptor."); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/GetEntityCreationFormsResult.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms; 2 | 3 | import com.fasterxml.jackson.annotation.JsonTypeName; 4 | import com.google.common.collect.ImmutableList; 5 | import edu.stanford.protege.webprotege.common.Response; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 2020-09-28 11 | */ 12 | 13 | 14 | @JsonTypeName("webprotege.forms.GetEntityCreationForms") 15 | public record GetEntityCreationFormsResult(ImmutableList formDescriptors) implements Response { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/GetFormRegionAccessRestrictionsRequest.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import com.fasterxml.jackson.annotation.JsonTypeName; 5 | import edu.stanford.protege.webprotege.common.ProjectId; 6 | import edu.stanford.protege.webprotege.common.Request; 7 | 8 | @JsonTypeName(GetFormRegionAccessRestrictionsRequest.CHANNEL) 9 | public record GetFormRegionAccessRestrictionsRequest(@JsonProperty("projectId") ProjectId projectId) implements Request { 10 | 11 | public static final String CHANNEL = "webprotege.forms.GetFormRegionAccessRestrictions"; 12 | 13 | @Override 14 | public String getChannel() { 15 | return CHANNEL; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/GetFormRegionAccessRestrictionsResponse.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import com.fasterxml.jackson.annotation.JsonTypeName; 5 | import edu.stanford.protege.webprotege.common.ProjectId; 6 | import edu.stanford.protege.webprotege.common.Response; 7 | 8 | import java.util.List; 9 | 10 | @JsonTypeName(GetFormRegionAccessRestrictionsRequest.CHANNEL) 11 | public record GetFormRegionAccessRestrictionsResponse(@JsonProperty("projectId")ProjectId projectId, 12 | @JsonProperty("accessRestrictions") List accessRestrictions) implements Response { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/HasFilterState.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms; 2 | 3 | import javax.annotation.Nonnull; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 2020-06-25 9 | */ 10 | public interface HasFilterState { 11 | 12 | @Nonnull 13 | FilterState getFilterState(); 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/HasFormRegionId.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms; 2 | 3 | import edu.stanford.protege.webprotege.forms.field.FormRegionId; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 30/03/16 9 | */ 10 | public interface HasFormRegionId { 11 | 12 | FormRegionId getId(); 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/HasFormRegionPagedChangedHandler.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms; 2 | 3 | import javax.annotation.Nonnull; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 2020-04-23 9 | */ 10 | public 11 | interface HasFormRegionPagedChangedHandler { 12 | 13 | void setRegionPageChangedHandler(@Nonnull RegionPageChangedHandler handler); 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/RegionPageChangedHandler.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 2020-04-22 7 | */ 8 | public interface RegionPageChangedHandler { 9 | 10 | void handleRegionPageChanged(); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/SetEntityFormDescriptorResult.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms; 2 | 3 | import com.fasterxml.jackson.annotation.JsonTypeName; 4 | import edu.stanford.protege.webprotege.common.Response; 5 | 6 | /** 7 | * Matthew Horridge 8 | * Stanford Center for Biomedical Informatics Research 9 | * 2020-01-16 10 | */ 11 | @JsonTypeName("webprotege.forms.SetEntityFormDescriptor") 12 | public record SetEntityFormDescriptorResult() implements Response { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/SetEntityFormsDataResult.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms; 2 | 3 | 4 | import com.fasterxml.jackson.annotation.JsonTypeName; 5 | import edu.stanford.protege.webprotege.common.Response; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 2019-11-01 11 | */ 12 | @JsonTypeName("webprotege.forms.SetEntityFormsData") 13 | public record SetEntityFormsDataResult() implements Response { 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/SetFormRegionAccessRestrictionsResponse.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import com.fasterxml.jackson.annotation.JsonTypeName; 5 | import edu.stanford.protege.webprotege.common.ProjectId; 6 | import edu.stanford.protege.webprotege.common.Response; 7 | 8 | @JsonTypeName(SetFormRegionAccessRestrictionsRequest.CHANNEL) 9 | public record SetFormRegionAccessRestrictionsResponse(@JsonProperty("projectId") ProjectId projectId) implements Response { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/SetProjectFormDescriptorsResult.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms; 2 | 3 | import com.fasterxml.jackson.annotation.JsonTypeName; 4 | import edu.stanford.protege.webprotege.common.Response; 5 | 6 | /** 7 | * Matthew Horridge 8 | * Stanford Center for Biomedical Informatics Research 9 | * 2019-11-23 10 | */ 11 | @JsonTypeName("webprotege.forms.SetProjectFormDescriptors") 12 | public record SetProjectFormDescriptorsResult() implements Response { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/SetProjectFormsResult.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms; 2 | 3 | import edu.stanford.protege.webprotege.common.Response; 4 | 5 | public record SetProjectFormsResult() implements Response { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/SuppliedNameTemplateResolver.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms; 2 | 3 | import org.semanticweb.owlapi.model.EntityType; 4 | 5 | import jakarta.inject.Inject; 6 | import java.util.UUID; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 2019-11-12 12 | */ 13 | public class SuppliedNameTemplateResolver { 14 | 15 | @Inject 16 | public SuppliedNameTemplateResolver() { 17 | } 18 | 19 | public String resolveTemplateVariables(String suppliedNameTemplate, 20 | EntityType entityType) { 21 | return suppliedNameTemplate 22 | .replace("${uuid}", UUID.randomUUID().toString()) 23 | .replace("${type}", entityType.getPrintName()); 24 | 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/UpdateFormDescriptorResult.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms; 2 | 3 | import com.fasterxml.jackson.annotation.JsonTypeName; 4 | import edu.stanford.protege.webprotege.common.Response; 5 | 6 | /** 7 | * Matthew Horridge 8 | * Stanford Center for Biomedical Informatics Research 9 | * 2020-08-22 10 | */ 11 | 12 | 13 | @JsonTypeName("webprotege.forms.UpdateFormDescriptor") 14 | public record UpdateFormDescriptorResult() implements Response { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/ValidationStatus.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 2020-10-01 7 | */ 8 | public enum ValidationStatus { 9 | 10 | VALID, 11 | 12 | INVALID; 13 | 14 | public boolean isInvalid() { 15 | return this.equals(INVALID); 16 | } 17 | 18 | public boolean isValid() { 19 | return this.equals(VALID); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/data/ComplexFormControlValue.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.data; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 2019-11-30 7 | */ 8 | public interface ComplexFormControlValue extends FormControlData { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/data/FormControlDataDtoVisitorEx.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.data; 2 | 3 | import javax.annotation.Nonnull; 4 | 5 | public interface FormControlDataDtoVisitorEx { 6 | 7 | R visit(@Nonnull EntityNameControlDataDto entityNameControlData); 8 | 9 | R visit(@Nonnull FormDataDto formData); 10 | 11 | R visit(@Nonnull GridControlDataDto gridControlData); 12 | 13 | R visit(@Nonnull ImageControlDataDto imageControlData); 14 | 15 | R visit(@Nonnull MultiChoiceControlDataDto multiChoiceControlData); 16 | 17 | R visit(@Nonnull SingleChoiceControlDataDto singleChoiceControlData); 18 | 19 | R visit(@Nonnull NumberControlDataDto numberControlData); 20 | 21 | R visit(@Nonnull TextControlDataDto textControlData); 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/data/FormDataDtoComparator.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.data; 2 | 3 | import jakarta.inject.Inject; 4 | import java.util.Comparator; 5 | 6 | public class FormDataDtoComparator implements Comparator { 7 | 8 | @Inject 9 | public FormDataDtoComparator() { 10 | } 11 | 12 | @Override 13 | public int compare(FormDataDto o1, FormDataDto o2) { 14 | return 0; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/data/FormFieldAccessMode.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.data; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | 5 | public enum FormFieldAccessMode { 6 | 7 | @JsonProperty("ReadOnly") 8 | READ_ONLY, 9 | 10 | @JsonProperty("ReadWrite") 11 | READ_WRITE; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/data/ImageControlDataDtoComparator.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.data; 2 | 3 | import com.google.common.collect.Comparators; 4 | import org.semanticweb.owlapi.model.IRI; 5 | 6 | import jakarta.inject.Inject; 7 | import java.util.Comparator; 8 | import java.util.Optional; 9 | 10 | public class ImageControlDataDtoComparator implements Comparator { 11 | 12 | private static final Comparator> optionalComparator = Comparators.emptiesLast( 13 | IRI::compareTo 14 | ); 15 | 16 | @Inject 17 | public ImageControlDataDtoComparator() { 18 | } 19 | 20 | @Override 21 | public int compare(ImageControlDataDto o1, ImageControlDataDto o2) { 22 | return optionalComparator.compare(o1.getIri(), o2.getIri()); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/data/NumberControlDataDtoComparator.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.data; 2 | 3 | import jakarta.inject.Inject; 4 | import java.util.Comparator; 5 | 6 | public class NumberControlDataDtoComparator implements Comparator { 7 | 8 | @Inject 9 | public NumberControlDataDtoComparator() { 10 | } 11 | 12 | @Override 13 | public int compare(NumberControlDataDto o1, NumberControlDataDto o2) { 14 | return o1.compareTo(o2); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/data/PrimitiveFormControlData2ProxyConverter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.data; 2 | 3 | import com.fasterxml.jackson.databind.util.StdConverter; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 2021-11-09 9 | */ 10 | public class PrimitiveFormControlData2ProxyConverter extends StdConverter { 11 | 12 | @Override 13 | public PrimitiveFormControlDataProxy convert(PrimitiveFormControlData value) { 14 | return value.toPrimitiveFormControlDataProxy(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/data/PrimitiveFormControlDataMatchCriteria.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.data; 2 | 3 | import com.fasterxml.jackson.annotation.JsonSubTypes; 4 | import edu.stanford.protege.webprotege.criteria.Criteria; 5 | 6 | import javax.annotation.Nonnull; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 2020-06-16 12 | */ 13 | @JsonSubTypes({@JsonSubTypes.Type(EntityFormControlDataMatchCriteria.class), @JsonSubTypes.Type(LiteralFormControlDataMatchCriteria.class)}) 14 | public interface PrimitiveFormControlDataMatchCriteria extends Criteria { 15 | 16 | R accept(@Nonnull PrimitiveFormControlDataMatchCriteriaVisitor visitor); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/data/PrimitiveFormControlDataMatchCriteriaVisitor.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.data; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 2020-06-16 7 | */ 8 | public interface PrimitiveFormControlDataMatchCriteriaVisitor { 9 | 10 | default R visit(EntityFormControlDataMatchCriteria entityFormControlDataMatchCriteria) { 11 | return null; 12 | } 13 | 14 | default R visit(LiteralFormControlDataMatchCriteria literalFormControlDataMatchCriteria) { 15 | return null; 16 | } 17 | 18 | default R visit(CompositePrimitiveFormControlDataMatchCriteria compositePrimitiveFormControlDataMatchCriteria) { 19 | return null; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/data/Proxy2PrimitiveFormControlDataConverter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.data; 2 | 3 | import com.fasterxml.jackson.databind.util.StdConverter; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 2021-11-09 9 | */ 10 | public class Proxy2PrimitiveFormControlDataConverter extends StdConverter { 11 | 12 | @Override 13 | public PrimitiveFormControlData convert(PrimitiveFormControlDataProxy value) { 14 | return value.toPrimitiveFormControlData(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/data/SimpleFormControlValue.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.data; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 2019-11-30 7 | */ 8 | public interface SimpleFormControlValue extends FormControlData { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/data/TextControlDataDtoComparator.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.data; 2 | 3 | import jakarta.inject.Inject; 4 | import java.util.Comparator; 5 | 6 | public class TextControlDataDtoComparator implements Comparator { 7 | 8 | @Inject 9 | public TextControlDataDtoComparator() { 10 | } 11 | 12 | @Override 13 | public int compare(TextControlDataDto o1, TextControlDataDto o2) { 14 | return o1.compareTo(o2); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/field/BoundControlDescriptor.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.field; 2 | 3 | import javax.annotation.Nonnull; 4 | import java.util.Optional; 5 | 6 | /** 7 | * Matthew Horridge 8 | * Stanford Center for Biomedical Informatics Research 9 | * 2020-01-06 10 | */ 11 | public interface BoundControlDescriptor { 12 | 13 | @Nonnull 14 | Optional getOwlBinding(); 15 | 16 | @Nonnull 17 | FormControlDescriptor getFormControlDescriptor(); 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/field/ChoiceListSourceDescriptor.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.field; 2 | 3 | import com.fasterxml.jackson.annotation.JsonSubTypes; 4 | import com.fasterxml.jackson.annotation.JsonTypeInfo; 5 | 6 | /** 7 | * Matthew Horridge 8 | * Stanford Center for Biomedical Informatics Research 9 | * 2020-01-11 10 | */ 11 | @JsonTypeInfo(use = JsonTypeInfo.Id.NAME) 12 | @JsonSubTypes({@JsonSubTypes.Type(value = FixedChoiceListSourceDescriptor.class, name = FixedChoiceListSourceDescriptor.TYPE), @JsonSubTypes.Type(value = DynamicChoiceListSourceDescriptor.class, name = DynamicChoiceListSourceDescriptor.TYPE)}) 13 | public interface ChoiceListSourceDescriptor { 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/field/FieldRun.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.field; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 2019-11-07 7 | */ 8 | public enum FieldRun { 9 | 10 | START, 11 | 12 | CONTINUE; 13 | 14 | public boolean isStart() { 15 | return this == START; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/field/FormControlDescriptorDtoVisitor.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.field; 2 | 3 | public interface FormControlDescriptorDtoVisitor { 4 | 5 | R visit(TextControlDescriptorDto textControlDescriptorDto); 6 | 7 | R visit(SingleChoiceControlDescriptorDto singleChoiceControlDescriptorDto); 8 | 9 | R visit(MultiChoiceControlDescriptorDto multiChoiceControlDescriptorDto); 10 | 11 | R visit(NumberControlDescriptorDto numberControlDescriptorDto); 12 | 13 | R visit(ImageControlDescriptorDto imageControlDescriptorDto); 14 | 15 | R visit(GridControlDescriptorDto gridControlDescriptorDto); 16 | 17 | R visit(SubFormControlDescriptorDto subFormControlDescriptorDto); 18 | 19 | R visit(EntityNameControlDescriptorDto entityNameControlDescriptorDto); 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/field/FormFieldDeprecationStrategy.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.field; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 2020-10-21 7 | */ 8 | public enum FormFieldDeprecationStrategy { 9 | 10 | LEAVE_VALUES_INTACT, 11 | 12 | DELETE_VALUES 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/field/FormRegionOrderingDirection.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.field; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | 5 | public enum FormRegionOrderingDirection { 6 | 7 | @JsonProperty("asc") ASC(1), 8 | 9 | @JsonProperty("desc") DESC(-1); 10 | 11 | int dir; 12 | 13 | FormRegionOrderingDirection(int dir) { 14 | this.dir = dir; 15 | } 16 | 17 | public int getDir() { 18 | return dir; 19 | } 20 | 21 | public boolean isAscending() { 22 | return this == ASC; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/field/FormRegionPresenter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.field; 2 | 3 | import javax.annotation.Nonnull; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 2020-04-23 9 | */ 10 | public interface FormRegionPresenter { 11 | 12 | @Nonnull 13 | FormRegionId getFormRegionId(); 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/field/HasRepeatability.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.field; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 30/03/16 7 | */ 8 | public interface HasRepeatability { 9 | 10 | Repeatability getRepeatability(); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/field/LineMode.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.field; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 30/03/16 7 | */ 8 | public enum LineMode { 9 | 10 | SINGLE_LINE, 11 | 12 | MULTI_LINE 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/field/NodeType.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.field; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 24 Jun 2017 9 | */ 10 | public enum NodeType { 11 | 12 | @JsonProperty("Any") ANY, 13 | 14 | @JsonProperty("Leaf") LEAF 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/field/NumberControlType.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.field; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 25 Jun 2017 9 | */ 10 | public enum NumberControlType { 11 | 12 | @JsonProperty("Plain") PLAIN, 13 | 14 | @JsonProperty("Stepper") STEPPER, 15 | 16 | @JsonProperty("Slider") SLIDER 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/field/Optionality.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.field; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 12/04/16 7 | */ 8 | public enum Optionality { 9 | 10 | REQUIRED, 11 | 12 | OPTIONAL 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/field/Repeatability.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.field; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 30/03/16 7 | */ 8 | public enum Repeatability { 9 | 10 | NON_REPEATABLE, 11 | 12 | REPEATABLE_VERTICALLY, 13 | 14 | REPEATABLE_HORIZONTALLY; 15 | 16 | public boolean isRepeatable() { 17 | return this != NON_REPEATABLE; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/field/SingleChoiceControlType.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.field; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 30/03/16 9 | */ 10 | public enum SingleChoiceControlType { 11 | 12 | @JsonProperty("RadioButton") RADIO_BUTTON, 13 | 14 | @JsonProperty("ComboBox") COMBO_BOX, 15 | 16 | @JsonProperty("SegmentedButton") SEGMENTED_BUTTON 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/forms/field/StringType.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.forms.field; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 30/03/16 7 | */ 8 | public enum StringType { 9 | 10 | SIMPLE_STRING, 11 | 12 | LANG_STRING, 13 | 14 | SPECIFIC_LANG_STRING 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/frame/ClassFrameProvider.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.frame; 2 | 3 | import org.semanticweb.owlapi.model.OWLClass; 4 | 5 | import javax.annotation.Nonnull; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 2020-04-02 11 | */ 12 | public interface ClassFrameProvider { 13 | 14 | /** 15 | * Gets the class frame for the specified subject. 16 | * @param subject The subject. 17 | * @return The class frame for the subject 18 | */ 19 | @Nonnull 20 | PlainClassFrame getFrame(@Nonnull OWLClass subject, 21 | @Nonnull ClassFrameTranslationOptions options); 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/frame/ManchesterSyntaxFrameParseResult.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.frame; 2 | 3 | /** 4 | * @author Matthew Horridge, Stanford University, Bio-Medical Informatics Research Group, Date: 18/03/2014 5 | */ 6 | public enum ManchesterSyntaxFrameParseResult { 7 | 8 | UNCHANGED, 9 | CHANGED, 10 | ERROR 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/frame/PropertyValueSubsumptionChecker.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.frame; 2 | 3 | /** 4 | * @author Matthew Horridge, Stanford University, Bio-Medical Informatics Research Group, Date: 26/02/2014 5 | */ 6 | public interface PropertyValueSubsumptionChecker { 7 | 8 | boolean isSubsumedBy(PlainPropertyValue propertyValueA, PlainPropertyValue propertyValueB); 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/frame/SetManchesterSyntaxFrameException.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.frame; 2 | 3 | 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 25/07/15 9 | */ 10 | public class SetManchesterSyntaxFrameException extends RuntimeException { 11 | 12 | private ManchesterSyntaxFrameParseError error; 13 | 14 | private SetManchesterSyntaxFrameException() { 15 | } 16 | 17 | public SetManchesterSyntaxFrameException(ManchesterSyntaxFrameParseError error) { 18 | super(error.getMessage()); 19 | this.error = error; 20 | } 21 | 22 | public ManchesterSyntaxFrameParseError getError() { 23 | return error; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/frame/State.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.frame; 2 | 3 | /** 4 | * Author: Matthew Horridge
5 | * Stanford University
6 | * Bio-Medical Informatics Research Group
7 | * Date: 13/10/2013 8 | */ 9 | public enum State { 10 | 11 | ASSERTED, 12 | 13 | DERIVED 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/frame/translator/Annotation2PropertyValueTranslatorFactory.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.frame.translator; 2 | 3 | import javax.annotation.processing.Generated; 4 | import jakarta.inject.Inject; 5 | 6 | @Generated( 7 | value = "com.google.auto.factory.processor.AutoFactoryProcessor", 8 | comments = "https://github.com/google/auto/tree/master/factory" 9 | ) 10 | public final class Annotation2PropertyValueTranslatorFactory { 11 | @Inject 12 | public Annotation2PropertyValueTranslatorFactory() {} 13 | 14 | public Annotation2PropertyValueTranslator create() { 15 | return new Annotation2PropertyValueTranslator(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/hierarchy/AnnotationPropertyHierarchyProvider.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.hierarchy; 2 | 3 | import edu.stanford.protege.webprotege.change.OntologyChange; 4 | import org.semanticweb.owlapi.model.OWLAnnotationProperty; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 2020-07-06 12 | */ 13 | public interface AnnotationPropertyHierarchyProvider extends HierarchyProvider { 14 | 15 | void handleChanges(List changes); 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/hierarchy/ClassHierarchyProvider.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.hierarchy; 2 | 3 | import edu.stanford.protege.webprotege.change.OntologyChange; 4 | import org.semanticweb.owlapi.model.OWLClass; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 2020-07-06 12 | */ 13 | public interface ClassHierarchyProvider extends HierarchyProvider { 14 | 15 | void handleChanges(List changes); 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/hierarchy/ClassHierarchyRoot.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.hierarchy; 2 | 3 | 4 | 5 | import org.springframework.beans.factory.annotation.Qualifier; 6 | 7 | import java.lang.annotation.Retention; 8 | import java.lang.annotation.RetentionPolicy; 9 | 10 | /** 11 | * Matthew Horridge 12 | * Stanford Center for Biomedical Informatics Research 13 | * 04/03/15 14 | */ 15 | @Qualifier 16 | @Retention(RetentionPolicy.RUNTIME) 17 | public @interface ClassHierarchyRoot { 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/hierarchy/DataPropertyHierarchyProvider.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.hierarchy; 2 | 3 | import edu.stanford.protege.webprotege.change.OntologyChange; 4 | import org.semanticweb.owlapi.model.OWLDataProperty; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 2020-07-06 12 | */ 13 | public interface DataPropertyHierarchyProvider extends HierarchyProvider { 14 | 15 | void handleChanges(List changes); 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/hierarchy/DataPropertyHierarchyRoot.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.hierarchy; 2 | 3 | import org.springframework.beans.factory.annotation.Qualifier; 4 | 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 04/03/15 12 | */ 13 | @Qualifier 14 | @Retention(RetentionPolicy.RUNTIME) 15 | public @interface DataPropertyHierarchyRoot { 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/hierarchy/DropType.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.hierarchy; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 2021-04-20 7 | */ 8 | public enum DropType { 9 | MOVE, 10 | ADD 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/hierarchy/GetProjectHierarchyDescriptorRulesResponse.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.hierarchy; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import com.fasterxml.jackson.annotation.JsonTypeName; 5 | import edu.stanford.protege.webprotege.common.Response; 6 | 7 | import javax.annotation.Nonnull; 8 | import java.util.List; 9 | import java.util.Objects; 10 | 11 | @JsonTypeName(GetProjectHierarchyDescriptorRulesRequest.CHANNEL) 12 | public record GetProjectHierarchyDescriptorRulesResponse(@JsonProperty("rules") @Nonnull List rules) implements Response { 13 | 14 | public GetProjectHierarchyDescriptorRulesResponse(@JsonProperty("rules") @Nonnull List rules) { 15 | this.rules = Objects.requireNonNull(rules); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/hierarchy/GraphModelChangeVisitor.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.hierarchy; 2 | 3 | 4 | /** 5 | * Matthew Horridge 6 | * Stanford Center for Biomedical Informatics Research 7 | * 2021-04-20 8 | */ 9 | public interface GraphModelChangeVisitor { 10 | 11 | void visit(AddRootNode addRootNode); 12 | 13 | void visit(RemoveRootNode removeRootNode); 14 | 15 | void visit(AddEdge addEdge); 16 | 17 | void visit(RemoveEdge removeEdge); 18 | 19 | void visit(UpdateUserObject updateUserObject); 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/hierarchy/HasGetAncestors.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.hierarchy; 2 | 3 | import java.util.Collection; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 19 Apr 2017 9 | */ 10 | public interface HasGetAncestors { 11 | 12 | Collection getAncestors(N object); 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/hierarchy/HasHasAncestor.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.hierarchy; 2 | 3 | /** 4 | * @author Matthew Horridge, Stanford University, Bio-Medical Informatics Research Group, Date: 26/02/2014 5 | */ 6 | public interface HasHasAncestor { 7 | 8 | boolean hasAncestor(N node, M node2); 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/hierarchy/HierarchyDescriptorRepository.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.hierarchy; 2 | 3 | public interface HierarchyDescriptorRepository { 4 | } 5 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/hierarchy/HierarchyDescriptorRulesRepository.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.hierarchy; 2 | 3 | import edu.stanford.protege.webprotege.common.ProjectId; 4 | import edu.stanford.protege.webprotege.persistence.Repository; 5 | 6 | import java.util.Optional; 7 | 8 | public interface HierarchyDescriptorRulesRepository extends Repository { 9 | 10 | void save(ProjectHierarchyDescriptorRules rules); 11 | 12 | void delete(ProjectId projectId); 13 | 14 | Optional find(ProjectId projectId); 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/hierarchy/NamedHierarchy.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.hierarchy; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import edu.stanford.protege.webprotege.common.LanguageMap; 5 | 6 | import javax.annotation.Nonnull; 7 | 8 | public record NamedHierarchy(@Nonnull 9 | @JsonProperty("hierarchyId") HierarchyId hierarchyId, 10 | @Nonnull 11 | @JsonProperty("label") LanguageMap label, 12 | @Nonnull 13 | @JsonProperty("description") LanguageMap description, 14 | @Nonnull 15 | @JsonProperty("hierarchyDescriptor") HierarchyDescriptor hierarchyDescriptor) { 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/hierarchy/NamedHierarchyManager.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.hierarchy; 2 | 3 | import edu.stanford.protege.webprotege.common.ProjectId; 4 | 5 | import java.util.List; 6 | 7 | public interface NamedHierarchyManager { 8 | 9 | List getNamedHierarchies(ProjectId projectId); 10 | 11 | void setNamedHierarchies(ProjectId projectId, List namedHierarchies); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/hierarchy/NamedHierarchyRecord.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.hierarchy; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import edu.stanford.protege.webprotege.common.ProjectId; 5 | 6 | import javax.annotation.Nonnull; 7 | 8 | public record NamedHierarchyRecord(@JsonProperty("projectId") ProjectId projectId, 9 | @JsonProperty("namedHierarchy") NamedHierarchy namedHierarchy) { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/hierarchy/ObjectPropertyHierarchyProvider.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.hierarchy; 2 | 3 | import edu.stanford.protege.webprotege.change.OntologyChange; 4 | import org.semanticweb.owlapi.model.OWLObjectProperty; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 2020-07-06 12 | */ 13 | public interface ObjectPropertyHierarchyProvider extends HierarchyProvider { 14 | 15 | void handleChanges(List changes); 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/hierarchy/ObjectPropertyHierarchyRoot.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.hierarchy; 2 | 3 | 4 | 5 | import org.springframework.beans.factory.annotation.Qualifier; 6 | 7 | import java.lang.annotation.Retention; 8 | import java.lang.annotation.RetentionPolicy; 9 | 10 | /** 11 | * Matthew Horridge 12 | * Stanford Center for Biomedical Informatics Research 13 | * 04/03/15 14 | */ 15 | @Qualifier 16 | @Retention(RetentionPolicy.RUNTIME) 17 | public @interface ObjectPropertyHierarchyRoot { 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/hierarchy/SetNamedHierarchiesResponse.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.hierarchy; 2 | 3 | import edu.stanford.protege.webprotege.dispatch.Result; 4 | 5 | public record SetNamedHierarchiesResponse() implements Result { 6 | 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/hierarchy/SetProjectHierarchyDescriptorRulesResponse.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.hierarchy; 2 | 3 | import com.fasterxml.jackson.annotation.JsonTypeName; 4 | import edu.stanford.protege.webprotege.common.Response; 5 | 6 | @JsonTypeName(SetProjectHierarchyDescriptorRulesRequest.CHANNEL) 7 | public record SetProjectHierarchyDescriptorRulesResponse() implements Response { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/hierarchy/ordering/ProcessUploadedSiblingsOrderingResponse.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.hierarchy.ordering; 2 | 3 | import com.fasterxml.jackson.annotation.*; 4 | import edu.stanford.protege.webprotege.dispatch.Result; 5 | 6 | 7 | @JsonTypeName(ProcessUploadedSiblingsOrderingAction.CHANNEL) 8 | public record ProcessUploadedSiblingsOrderingResponse() implements Result { 9 | 10 | public static ProcessUploadedSiblingsOrderingResponse create() { 11 | return new ProcessUploadedSiblingsOrderingResponse(); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/hierarchy/ordering/dtos/OrderedChild.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.hierarchy.ordering.dtos; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | 5 | public record OrderedChild(@JsonProperty("orderedChild") String orderedChild, 6 | @JsonProperty("orderedChildIndex") String orderedChildIndex) { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/hierarchy/ordering/dtos/OrderedChildren.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.hierarchy.ordering.dtos; 2 | 3 | import com.fasterxml.jackson.annotation.*; 4 | 5 | import java.util.List; 6 | 7 | public record OrderedChildren(@JsonProperty("orderedChildren") List orderedChildren, 8 | @JsonProperty("entityURI") String entityUri) { 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/AnnotationAssertionAxiomsBySubjectIndex.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index; 2 | 3 | import org.semanticweb.owlapi.model.OWLAnnotationAssertionAxiom; 4 | import org.semanticweb.owlapi.model.OWLAnnotationSubject; 5 | import org.semanticweb.owlapi.model.OWLOntologyID; 6 | 7 | import javax.annotation.Nonnull; 8 | import java.util.stream.Stream; 9 | 10 | /** 11 | * Matthew Horridge 12 | * Stanford Center for Biomedical Informatics Research 13 | * 2019-08-09 14 | */ 15 | public interface AnnotationAssertionAxiomsBySubjectIndex extends Index { 16 | 17 | Stream getAxiomsForSubject(@Nonnull OWLAnnotationSubject subject, 18 | @Nonnull OWLOntologyID ontologyId); 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/AxiomsByTypeIndex.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index; 2 | 3 | import edu.stanford.protege.webprotege.inject.ProjectSingleton; 4 | import org.semanticweb.owlapi.model.AxiomType; 5 | import org.semanticweb.owlapi.model.OWLAxiom; 6 | import org.semanticweb.owlapi.model.OWLOntologyID; 7 | 8 | import java.util.stream.Stream; 9 | 10 | /** 11 | * Matthew Horridge 12 | * Stanford Center for Biomedical Informatics Research 13 | * 2019-08-07 14 | */ 15 | @ProjectSingleton 16 | public interface AxiomsByTypeIndex extends Index { 17 | 18 | Stream getAxiomsByType(AxiomType axiomType, OWLOntologyID ontologyId); 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/BuiltInOwlEntitiesIndex.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 2020-07-27 7 | */ 8 | public interface BuiltInOwlEntitiesIndex extends BuiltInEntitiesIndex { 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/BuiltInSkosEntitiesIndex.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 2020-07-27 7 | */ 8 | public interface BuiltInSkosEntitiesIndex extends BuiltInEntitiesIndex { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/ClassHierarchyChildrenAxiomsIndex.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index; 2 | 3 | import org.semanticweb.owlapi.model.OWLClass; 4 | import org.semanticweb.owlapi.model.OWLClassAxiom; 5 | 6 | import javax.annotation.Nonnull; 7 | import java.util.stream.Stream; 8 | 9 | /** 10 | * Matthew Horridge 11 | * Stanford Center for Biomedical Informatics Research 12 | * 2020-11-09 13 | */ 14 | public interface ClassHierarchyChildrenAxiomsIndex extends Index { 15 | 16 | @Nonnull 17 | Stream getChildrenAxioms(@Nonnull OWLClass cls); 18 | 19 | boolean isLeaf(@Nonnull OWLClass cls); 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/DataPropertyCharacteristicsIndex.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index; 2 | 3 | 4 | import org.semanticweb.owlapi.model.OWLDataProperty; 5 | import org.semanticweb.owlapi.model.OWLOntologyID; 6 | 7 | import javax.annotation.Nonnull; 8 | 9 | /** 10 | * Matthew Horridge 11 | * Stanford Center for Biomedical Informatics Research 12 | * 2019-08-10 13 | */ 14 | public interface DataPropertyCharacteristicsIndex extends Index { 15 | 16 | boolean isFunctional(@Nonnull OWLDataProperty dataProperty, 17 | @Nonnull OWLOntologyID ontologyId); 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/DataPropertyRangeAxiomsIndex.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index; 2 | 3 | 4 | import org.semanticweb.owlapi.model.OWLDataProperty; 5 | import org.semanticweb.owlapi.model.OWLDataPropertyRangeAxiom; 6 | import org.semanticweb.owlapi.model.OWLOntologyID; 7 | 8 | import javax.annotation.Nonnull; 9 | import java.util.stream.Stream; 10 | 11 | /** 12 | * Matthew Horridge 13 | * Stanford Center for Biomedical Informatics Research 14 | * 2019-08-10 15 | */ 16 | public interface DataPropertyRangeAxiomsIndex extends Index { 17 | 18 | @Nonnull 19 | Stream getDataPropertyRangeAxioms(@Nonnull OWLDataProperty dataProperty, 20 | @Nonnull OWLOntologyID ontologyID); 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/DependentIndex.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index; 2 | 3 | import javax.annotation.Nonnull; 4 | import java.util.Collection; 5 | 6 | /** 7 | * Matthew Horridge 8 | * Stanford Center for Biomedical Informatics Research 9 | * 2019-09-11 10 | */ 11 | public interface DependentIndex extends Index { 12 | 13 | @Nonnull 14 | Collection getDependencies(); 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/DeprecatedEntitiesByEntityIndex.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index; 2 | 3 | 4 | import edu.stanford.protege.webprotege.inject.ProjectSingleton; 5 | import org.semanticweb.owlapi.model.OWLEntity; 6 | 7 | import javax.annotation.Nonnull; 8 | 9 | /** 10 | * Matthew Horridge 11 | * Stanford Center for Biomedical Informatics Research 12 | * 2019-08-15 13 | */ 14 | @ProjectSingleton 15 | public interface DeprecatedEntitiesByEntityIndex extends Index { 16 | 17 | boolean isDeprecated(@Nonnull OWLEntity entity); 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/DisjointClassesAxiomsIndex.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index; 2 | 3 | 4 | import edu.stanford.protege.webprotege.inject.ProjectSingleton; 5 | import org.semanticweb.owlapi.model.OWLClass; 6 | import org.semanticweb.owlapi.model.OWLDisjointClassesAxiom; 7 | import org.semanticweb.owlapi.model.OWLOntologyID; 8 | 9 | import javax.annotation.Nonnull; 10 | import java.util.stream.Stream; 11 | 12 | /** 13 | * Matthew Horridge 14 | * Stanford Center for Biomedical Informatics Research 15 | * 2019-08-22 16 | */ 17 | @ProjectSingleton 18 | public interface DisjointClassesAxiomsIndex extends Index { 19 | 20 | @Nonnull 21 | Stream getDisjointClassesAxioms(@Nonnull OWLClass cls, OWLOntologyID ontologyId); 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/EntitiesInOntologySignatureByIriIndex.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index; 2 | 3 | 4 | import org.semanticweb.owlapi.model.IRI; 5 | import org.semanticweb.owlapi.model.OWLEntity; 6 | import org.semanticweb.owlapi.model.OWLOntologyID; 7 | 8 | import javax.annotation.Nonnull; 9 | import java.util.stream.Stream; 10 | 11 | /** 12 | * Matthew Horridge 13 | * Stanford Center for Biomedical Informatics Research 14 | * 2019-09-05 15 | */ 16 | public interface EntitiesInOntologySignatureByIriIndex extends Index { 17 | 18 | @Nonnull 19 | Stream getEntitiesInSignature(@Nonnull IRI iri, 20 | @Nonnull OWLOntologyID ontologyId); 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/EntitiesInOntologySignatureIndex.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index; 2 | 3 | 4 | import org.semanticweb.owlapi.model.OWLEntity; 5 | import org.semanticweb.owlapi.model.OWLOntologyID; 6 | 7 | import javax.annotation.Nonnull; 8 | 9 | /** 10 | * Matthew Horridge 11 | * Stanford Center for Biomedical Informatics Research 12 | * 2019-08-19 13 | */ 14 | public interface EntitiesInOntologySignatureIndex extends Index { 15 | 16 | boolean containsEntityInSignature(@Nonnull OWLEntity entity, 17 | @Nonnull OWLOntologyID ontologyId); 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/EntitiesInProjectSignatureIndex.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index; 2 | 3 | 4 | import edu.stanford.protege.webprotege.inject.ProjectSingleton; 5 | import org.semanticweb.owlapi.model.OWLEntity; 6 | 7 | import javax.annotation.Nonnull; 8 | 9 | /** 10 | * Matthew Horridge 11 | * Stanford Center for Biomedical Informatics Research 12 | * 2019-08-17 13 | */ 14 | @ProjectSingleton 15 | public interface EntitiesInProjectSignatureIndex extends Index { 16 | 17 | boolean containsEntityInSignature(@Nonnull OWLEntity entity); 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/Index.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 2019-09-11 7 | */ 8 | public interface Index { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/IndexUpdatingService.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index; 2 | 3 | import jakarta.inject.Qualifier; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 2019-09-10 11 | */ 12 | @Retention(RetentionPolicy.RUNTIME) 13 | @Qualifier 14 | public @interface IndexUpdatingService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/NamedIndividualFrameAxiomIndex.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index; 2 | 3 | import org.semanticweb.owlapi.model.OWLAxiom; 4 | import org.semanticweb.owlapi.model.OWLNamedIndividual; 5 | 6 | import javax.annotation.Nonnull; 7 | import java.util.Set; 8 | 9 | /** 10 | * Matthew Horridge 11 | * Stanford Center for Biomedical Informatics Research 12 | * 2020-07-06 13 | */ 14 | public interface NamedIndividualFrameAxiomIndex { 15 | 16 | /** 17 | * Gets the axiomsSource that constitute the frame for a named individual 18 | * @param subject The subject of the frame 19 | * @return The set of axiomsSource that make up the frame for the individual 20 | */ 21 | @Nonnull 22 | Set getNamedIndividualFrameAxioms(@Nonnull OWLNamedIndividual subject); 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/ObjectPropertyRangeAxiomsIndex.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index; 2 | 3 | 4 | import org.semanticweb.owlapi.model.OWLObjectProperty; 5 | import org.semanticweb.owlapi.model.OWLObjectPropertyRangeAxiom; 6 | import org.semanticweb.owlapi.model.OWLOntologyID; 7 | 8 | import javax.annotation.Nonnull; 9 | import java.util.stream.Stream; 10 | 11 | /** 12 | * Matthew Horridge 13 | * Stanford Center for Biomedical Informatics Research 14 | * 2019-08-10 15 | */ 16 | public interface ObjectPropertyRangeAxiomsIndex extends Index { 17 | 18 | 19 | @Nonnull 20 | Stream getObjectPropertyRangeAxioms(@Nonnull OWLObjectProperty property, 21 | @Nonnull OWLOntologyID ontologyId); 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/OntologySignatureByTypeIndex.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index; 2 | 3 | 4 | import edu.stanford.protege.webprotege.inject.ProjectSingleton; 5 | import org.semanticweb.owlapi.model.EntityType; 6 | import org.semanticweb.owlapi.model.OWLEntity; 7 | import org.semanticweb.owlapi.model.OWLOntologyID; 8 | 9 | import javax.annotation.Nonnull; 10 | import java.util.stream.Stream; 11 | 12 | /** 13 | * Matthew Horridge 14 | * Stanford Center for Biomedical Informatics Research 15 | * 2019-08-16 16 | */ 17 | @ProjectSingleton 18 | public interface OntologySignatureByTypeIndex extends Index { 19 | 20 | @Nonnull 21 | Stream getSignature(@Nonnull EntityType type, 22 | @Nonnull OWLOntologyID ontologyId); 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/ProjectAxiomsSignatureIndex.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index; 2 | 3 | import org.semanticweb.owlapi.model.EntityType; 4 | import org.semanticweb.owlapi.model.OWLEntity; 5 | 6 | import javax.annotation.Nonnull; 7 | import java.util.stream.Stream; 8 | 9 | /** 10 | * Matthew Horridge 11 | * Stanford Center for Biomedical Informatics Research 12 | * 2019-09-05 13 | */ 14 | public interface ProjectAxiomsSignatureIndex { 15 | 16 | @Nonnull 17 | Stream getProjectAxiomsSignature(@Nonnull EntityType entityType); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/ProjectClassAssertionAxiomsByIndividualIndex.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index; 2 | 3 | 4 | import edu.stanford.protege.webprotege.inject.ProjectSingleton; 5 | import org.semanticweb.owlapi.model.OWLClassAssertionAxiom; 6 | import org.semanticweb.owlapi.model.OWLIndividual; 7 | 8 | import javax.annotation.Nonnull; 9 | import java.util.stream.Stream; 10 | 11 | /** 12 | * Matthew Horridge 13 | * Stanford Center for Biomedical Informatics Research 14 | * 2019-08-15 15 | */ 16 | @ProjectSingleton 17 | public interface ProjectClassAssertionAxiomsByIndividualIndex extends Index { 18 | 19 | @Nonnull 20 | Stream getClassAssertionAxioms(@Nonnull 21 | OWLIndividual individual); 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/ProjectOntologiesIndex.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index; 2 | 3 | 4 | import edu.stanford.protege.webprotege.inject.ProjectSingleton; 5 | import org.semanticweb.owlapi.model.OWLOntologyID; 6 | 7 | import javax.annotation.Nonnull; 8 | import java.util.stream.Stream; 9 | 10 | /** 11 | * Matthew Horridge 12 | * Stanford Center for Biomedical Informatics Research 13 | * 2019-08-06 14 | */ 15 | @ProjectSingleton 16 | public interface ProjectOntologiesIndex extends Index { 17 | 18 | /** 19 | * Gets the ontology Ids of project ontologies 20 | * @return A stream of ids that represent the ids of project ontologies 21 | */ 22 | @Nonnull 23 | Stream getOntologyIds(); 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/ProjectSignatureByTypeIndex.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index; 2 | 3 | 4 | import edu.stanford.protege.webprotege.inject.ProjectSingleton; 5 | import org.semanticweb.owlapi.model.EntityType; 6 | import org.semanticweb.owlapi.model.OWLEntity; 7 | 8 | import javax.annotation.Nonnull; 9 | import java.util.stream.Stream; 10 | 11 | /** 12 | * Matthew Horridge 13 | * Stanford Center for Biomedical Informatics Research 14 | * 2019-08-16 15 | */ 16 | @ProjectSingleton 17 | public interface ProjectSignatureByTypeIndex extends Index { 18 | 19 | @Nonnull 20 | Stream getSignature(@Nonnull EntityType entityType); 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/ProjectSignatureIndex.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index; 2 | 3 | 4 | import edu.stanford.protege.webprotege.inject.ProjectSingleton; 5 | import org.semanticweb.owlapi.model.OWLEntity; 6 | 7 | import javax.annotation.Nonnull; 8 | import java.util.stream.Stream; 9 | 10 | /** 11 | * Matthew Horridge 12 | * Stanford Center for Biomedical Informatics Research 13 | * 2019-08-15 14 | */ 15 | @ProjectSingleton 16 | public interface ProjectSignatureIndex extends Index { 17 | 18 | /** 19 | * Returns a stream of entities that are in the signature of the project ontologies. 20 | * @return A stream of entities. This may contain duplicate entities. 21 | */ 22 | @Nonnull 23 | Stream getSignature(); 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/RootIndex.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index; 2 | 3 | import edu.stanford.protege.webprotege.change.OntologyChange; 4 | 5 | import javax.annotation.Nonnull; 6 | import java.util.List; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 2019-09-10 12 | */ 13 | public interface RootIndex { 14 | 15 | /** 16 | * Minimizes and filters the specified list of changes to changes that actually 17 | * result in mutation of project ontologies. 18 | * @param changes The list of desired changes. 19 | * @return A list of changes that will have an effect on project ontologies. 20 | */ 21 | @Nonnull 22 | List getEffectiveChanges(@Nonnull List changes); 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/impl/IndexedSetMultimaps.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index.impl; 2 | 3 | import com.google.common.collect.Multimap; 4 | import com.google.common.collect.Multimaps; 5 | 6 | import java.util.Collection; 7 | import java.util.HashMap; 8 | 9 | /** 10 | * Matthew Horridge 11 | * Stanford Center for Biomedical Informatics Research 12 | * 2019-09-18 13 | */ 14 | public class IndexedSetMultimaps { 15 | 16 | public static Multimap, V> create() { 17 | var backingMap = new HashMap, Collection>(); 18 | return Multimaps.newSetMultimap(backingMap, IndexedSet::new); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/impl/Key.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index.impl; 2 | 3 | import com.google.auto.value.AutoValue; 4 | import org.semanticweb.owlapi.model.OWLOntologyID; 5 | 6 | import javax.annotation.Nonnull; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 2019-09-07 12 | */ 13 | @AutoValue 14 | public abstract class Key { 15 | 16 | public static Key get(@Nonnull OWLOntologyID ontologyId, 17 | @Nonnull T value) { 18 | return new AutoValue_Key<>(ontologyId, value); 19 | } 20 | 21 | @Nonnull 22 | public abstract OWLOntologyID getOntologyId(); 23 | 24 | @Nonnull 25 | public abstract T getValue(); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/impl/KeyValueExtractor.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index.impl; 2 | 3 | 4 | import org.semanticweb.owlapi.model.OWLAxiom; 5 | 6 | import javax.annotation.Nonnull; 7 | import javax.annotation.Nullable; 8 | 9 | /** 10 | * Matthew Horridge 11 | * Stanford Center for Biomedical Informatics Research 12 | * 2019-09-07 13 | */ 14 | @FunctionalInterface 15 | public interface KeyValueExtractor { 16 | 17 | @Nullable 18 | V extractValue(@Nonnull A axiom); 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/index/impl/UpdatableIndex.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.index.impl; 2 | 3 | import com.google.common.collect.ImmutableList; 4 | import edu.stanford.protege.webprotege.change.OntologyChange; 5 | import edu.stanford.protege.webprotege.index.Index; 6 | 7 | import javax.annotation.Nonnull; 8 | 9 | /** 10 | * Matthew Horridge 11 | * Stanford Center for Biomedical Informatics Research 12 | * 2019-08-09 13 | * 14 | * An index that needs to be updated with ontology changes in order to 15 | * build or maintain it. 16 | */ 17 | public interface UpdatableIndex extends Index { 18 | 19 | /** 20 | * Apply the specified list of changes to update this index. 21 | */ 22 | void applyChanges(@Nonnull ImmutableList changes); 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/individuals/InstanceRetrievalMode.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.individuals; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 13 Sep 2018 7 | */ 8 | public enum InstanceRetrievalMode { 9 | 10 | ALL_INSTANCES, 11 | DIRECT_INSTANCES 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/init/ConfigurationTask.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.init; 2 | 3 | /** 4 | * Author: Matthew Horridge
5 | * Stanford University
6 | * Bio-Medical Informatics Research Group
7 | * Date: 10/04/2013 8 | */ 9 | public interface ConfigurationTask { 10 | 11 | /** 12 | * Runs this configuration check. If there is an error and the check fails it throws a {@link WebProtegeConfigurationException}. 13 | * @throws WebProtegeConfigurationException if the check failed. 14 | */ 15 | void run() throws WebProtegeConfigurationException; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/inject/ApplicationDataFactory.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.inject; 2 | 3 | import jakarta.inject.Qualifier; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 17 Apr 2017 11 | */ 12 | @Qualifier 13 | @Retention(RetentionPolicy.RUNTIME) 14 | public @interface ApplicationDataFactory { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/inject/ApplicationSingleton.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.inject; 2 | 3 | import jakarta.inject.Scope; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 5 Oct 2016 11 | */ 12 | @Scope 13 | @Retention(RetentionPolicy.RUNTIME) 14 | public @interface ApplicationSingleton { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/inject/DataDirectory.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.inject; 2 | 3 | import jakarta.inject.Qualifier; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 06/02/15 11 | */ 12 | @Qualifier 13 | @Retention(RetentionPolicy.RUNTIME) 14 | public @interface DataDirectory { 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/inject/DataDirectoryProvider.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.inject; 2 | 3 | import org.springframework.beans.factory.annotation.Value; 4 | 5 | import jakarta.inject.Inject; 6 | import jakarta.inject.Provider; 7 | import java.io.File; 8 | import java.nio.file.Path; 9 | 10 | /** 11 | * Matthew Horridge 12 | * Stanford Center for Biomedical Informatics Research 13 | * 06/02/15 14 | */ 15 | public class DataDirectoryProvider implements Provider { 16 | 17 | @Value("${webprotege.directories.data}") 18 | private Path dataDirectoryPath; 19 | 20 | @Inject 21 | public DataDirectoryProvider() { 22 | } 23 | 24 | @Override 25 | public File get() { 26 | return dataDirectoryPath.toFile(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/inject/MailProperties.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.inject; 2 | 3 | import jakarta.inject.Qualifier; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 06/02/15 11 | */ 12 | @Qualifier 13 | @Retention(RetentionPolicy.RUNTIME) 14 | public @interface MailProperties { 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/inject/ProjectSingleton.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.inject; 2 | 3 | import jakarta.inject.Scope; 4 | import java.lang.annotation.Documented; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 3 Oct 2016 12 | */ 13 | @Scope 14 | @Documented 15 | @Retention(RetentionPolicy.RUNTIME) 16 | public @interface ProjectSingleton { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/inject/UploadsDirectory.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.inject; 2 | 3 | import org.springframework.beans.factory.annotation.Qualifier; 4 | 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 04/03/15 12 | */ 13 | @Qualifier 14 | @Retention(RetentionPolicy.RUNTIME) 15 | public @interface UploadsDirectory { 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/inject/UploadsDirectoryProvider.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.inject; 2 | 3 | import org.springframework.beans.factory.annotation.Value; 4 | 5 | import jakarta.inject.Inject; 6 | import jakarta.inject.Provider; 7 | import java.io.File; 8 | import java.nio.file.Path; 9 | 10 | /** 11 | * Matthew Horridge 12 | * Stanford Center for Biomedical Informatics Research 13 | * 04/03/15 14 | */ 15 | public class UploadsDirectoryProvider implements Provider { 16 | 17 | @Value("${webprotege.directories.uploads}") 18 | private Path uploadsDirectoryPath; 19 | 20 | @Inject 21 | public UploadsDirectoryProvider() { 22 | } 23 | 24 | @Override 25 | public File get() { 26 | return uploadsDirectoryPath.toFile(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/inject/project/ChangeHistoryFile.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.inject.project; 2 | 3 | 4 | 5 | import org.springframework.beans.factory.annotation.Qualifier; 6 | 7 | import java.lang.annotation.Retention; 8 | import java.lang.annotation.RetentionPolicy; 9 | 10 | /** 11 | * Matthew Horridge 12 | * Stanford Center for Biomedical Informatics Research 13 | * 02/06/15 14 | */ 15 | @Qualifier 16 | @Retention(RetentionPolicy.RUNTIME) 17 | public @interface ChangeHistoryFile { 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/inject/project/OWLDataFactoryProvider.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.inject.project; 2 | 3 | import org.semanticweb.owlapi.model.OWLDataFactory; 4 | import uk.ac.manchester.cs.owl.owlapi.OWLDataFactoryImpl; 5 | 6 | import jakarta.inject.Provider; 7 | import jakarta.inject.Singleton; 8 | 9 | /** 10 | * Matthew Horridge 11 | * Stanford Center for Biomedical Informatics Research 12 | * 04/03/15 13 | */ 14 | @Singleton 15 | public class OWLDataFactoryProvider implements Provider { 16 | 17 | @Override 18 | public OWLDataFactory get() { 19 | return new OWLDataFactoryImpl(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/inject/project/ProjectDirectory.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.inject.project; 2 | 3 | 4 | 5 | import org.springframework.beans.factory.annotation.Qualifier; 6 | 7 | import java.lang.annotation.Retention; 8 | import java.lang.annotation.RetentionPolicy; 9 | 10 | /** 11 | * Matthew Horridge 12 | * Stanford Center for Biomedical Informatics Research 13 | * 04/03/15 14 | */ 15 | @Qualifier 16 | @Retention(RetentionPolicy.RUNTIME) 17 | public @interface ProjectDirectory { 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/inject/project/ProjectSpecificUiConfigurationDataDirectory.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.inject.project; 2 | 3 | 4 | 5 | import org.springframework.beans.factory.annotation.Qualifier; 6 | 7 | import java.lang.annotation.Retention; 8 | import java.lang.annotation.RetentionPolicy; 9 | 10 | /** 11 | * Matthew Horridge 12 | * Stanford Center for Biomedical Informatics Research 13 | * 03/06/15 14 | */ 15 | @Qualifier 16 | @Retention(RetentionPolicy.RUNTIME) 17 | public @interface ProjectSpecificUiConfigurationDataDirectory { 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/inject/project/RootOntology.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.inject.project; 2 | 3 | 4 | 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | 8 | /** 9 | * @author Matthew Horridge, Stanford University, Bio-Medical Informatics Research Group, Date: 25/03/2014 10 | */ 11 | 12 | @Retention(RetentionPolicy.RUNTIME) 13 | public @interface RootOntology { 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/inject/project/RootOntologyDocument.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.inject.project; 2 | 3 | 4 | 5 | import jakarta.inject.Qualifier; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | 9 | /** 10 | * Matthew Horridge 11 | * Stanford Center for Biomedical Informatics Research 12 | * 04/03/15 13 | */ 14 | @Qualifier 15 | 16 | @Retention(RetentionPolicy.RUNTIME) 17 | public @interface RootOntologyDocument { 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/issues/CommentNotificationEmailTemplate.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.issues; 2 | 3 | import org.springframework.beans.factory.annotation.Qualifier; 4 | 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 10 Mar 2017 12 | */ 13 | @Qualifier 14 | @Retention(RetentionPolicy.RUNTIME) 15 | public @interface CommentNotificationEmailTemplate { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/locking/ReadWriteLockService.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.locking; 2 | 3 | import java.util.concurrent.Callable; 4 | 5 | public interface ReadWriteLockService { 6 | T executeReadLock(Callable readOperation); 7 | 8 | T executeWriteLock(Callable writeOperation); 9 | 10 | void executeWriteLock(Runnable writeOperation); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/mail/MessagingExceptionHandler.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.mail; 2 | 3 | import javax.mail.MessagingException; 4 | 5 | /** 6 | * Author: Matthew Horridge
7 | * Stanford University
8 | * Bio-Medical Informatics Research Group
9 | * Date: 05/11/2013 10 | */ 11 | public interface MessagingExceptionHandler { 12 | 13 | void handleMessagingException(MessagingException e); 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/mansyntax/render/AbstractSectionRenderer.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.mansyntax.render; 2 | 3 | import org.semanticweb.owlapi.model.OWLObject; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * @author Matthew Horridge, Stanford University, Bio-Medical Informatics Research Group, Date: 24/02/2014 9 | */ 10 | public abstract class AbstractSectionRenderer implements FrameSectionRenderer { 11 | 12 | @Override 13 | public String getSeparatorAfter(int renderableIndex, List renderables) { 14 | return ", "; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/mansyntax/render/Bracketing.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.mansyntax.render; 2 | 3 | /** 4 | * @author Matthew Horridge, 5 | * Stanford University, 6 | * Bio-Medical Informatics Research Group 7 | * Date: 20/02/2014 8 | */ 9 | public enum Bracketing { 10 | 11 | ON, 12 | 13 | OFF 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/mansyntax/render/DeprecatedEntityChecker.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.mansyntax.render; 2 | 3 | import org.semanticweb.owlapi.model.OWLEntity; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 27/01/15 9 | */ 10 | public interface DeprecatedEntityChecker { 11 | 12 | boolean isDeprecated(OWLEntity entity); 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/mansyntax/render/EntityIRIChecker.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.mansyntax.render; 2 | 3 | import org.semanticweb.owlapi.model.IRI; 4 | import org.semanticweb.owlapi.model.OWLEntity; 5 | 6 | import java.util.Collection; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 27/01/15 12 | */ 13 | public interface EntityIRIChecker { 14 | 15 | boolean isEntityIRI(IRI iri); 16 | 17 | Collection getEntitiesWithIRI(IRI iri); 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/mansyntax/render/FrameRenderer.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.mansyntax.render; 2 | 3 | import org.semanticweb.owlapi.model.OWLObject; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * @author Matthew Horridge, Stanford University, Bio-Medical Informatics Research Group, Date: 24/02/2014 9 | */ 10 | public interface FrameRenderer { 11 | 12 | List> getSectionRenderers(); 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/mansyntax/render/HasGetRendering.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.mansyntax.render; 2 | 3 | import edu.stanford.protege.webprotege.entity.OWLEntityData; 4 | import org.semanticweb.owlapi.model.OWLEntity; 5 | 6 | /** 7 | * Matthew Horridge 8 | * Stanford Center for Biomedical Informatics Research 9 | * 22 Apr 2017 10 | */ 11 | public interface HasGetRendering { 12 | 13 | OWLEntityData getRendering(OWLEntity entity); 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/mansyntax/render/HighlightedEntityChecker.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.mansyntax.render; 2 | 3 | import org.semanticweb.owlapi.model.OWLEntity; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 27/01/15 9 | */ 10 | public interface HighlightedEntityChecker { 11 | 12 | /** 13 | * Determines if the given entity should be highlighted. 14 | * @param entity The entity. Not {@code null}. 15 | * @return {@code true} if the given entity should be highlighted, otherwise {@code false}. 16 | */ 17 | boolean isHighlighted(OWLEntity entity); 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/mansyntax/render/HttpLinkRenderer.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.mansyntax.render; 2 | 3 | import org.semanticweb.owlapi.model.OWLLiteral; 4 | 5 | /** 6 | * @author Matthew Horridge, 7 | * Stanford University, 8 | * Bio-Medical Informatics Research Group 9 | * Date: 21/02/2014 10 | */ 11 | public interface HttpLinkRenderer { 12 | 13 | boolean isLink(OWLLiteral literal); 14 | 15 | void renderLink(String link, StringBuilder builder); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/mansyntax/render/ItemStyleProvider.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.mansyntax.render; 2 | 3 | import java.util.Optional; 4 | 5 | /** 6 | * @author Matthew Horridge, Stanford University, Bio-Medical Informatics Research Group, Date: 25/02/2014 7 | */ 8 | public interface ItemStyleProvider { 9 | 10 | Optional getItemStyle(Object item); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/mansyntax/render/LinkInfo.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.mansyntax.render; 2 | 3 | /** 4 | * @author Matthew Horridge, 5 | * Stanford University, 6 | * Bio-Medical Informatics Research Group 7 | * Date: 21/02/2014 8 | */ 9 | public class LinkInfo { 10 | 11 | private final String linkAddress; 12 | 13 | private final String linkContent; 14 | 15 | public LinkInfo(String linkAddress, String linkContent) { 16 | this.linkAddress = linkAddress; 17 | this.linkContent = linkContent; 18 | } 19 | 20 | public String getLinkAddress() { 21 | return linkAddress; 22 | } 23 | 24 | public String getLinkContent() { 25 | return linkContent; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/mansyntax/render/LinkRendererPlugin.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.mansyntax.render; 2 | 3 | /** 4 | * @author Matthew Horridge, 5 | * Stanford University, 6 | * Bio-Medical Informatics Research Group 7 | * Date: 21/02/2014 8 | */ 9 | public interface LinkRendererPlugin { 10 | 11 | boolean isRenderableAsLink(String link); 12 | 13 | LinkInfo renderLink(String link); 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/mansyntax/render/LiteralRenderer.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.mansyntax.render; 2 | 3 | /** 4 | * @author Matthew Horridge, 5 | * Stanford University, 6 | * Bio-Medical Informatics Research Group 7 | * Date: 21/02/2014 8 | */ 9 | public interface LiteralRenderer { 10 | 11 | void renderLiteral(String literal, StringBuilder stringBuilder); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/mansyntax/render/LiteralStyle.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.mansyntax.render; 2 | 3 | /** 4 | * @author Matthew Horridge, 5 | * Stanford University, 6 | * Bio-Medical Informatics Research Group 7 | * Date: 20/02/2014 8 | */ 9 | public enum LiteralStyle { 10 | 11 | REGULAR, 12 | 13 | BRACKETED 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/mansyntax/render/NestedAnnotationStyle.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.mansyntax.render; 2 | 3 | /** 4 | * @author Matthew Horridge, Stanford University, Bio-Medical Informatics Research Group, Date: 25/02/2014 5 | */ 6 | public enum NestedAnnotationStyle { 7 | 8 | COMPACT, 9 | 10 | MANCHESTER_SYNTAX 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/mansyntax/render/NullHttpLinkRenderer.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.mansyntax.render; 2 | 3 | import org.semanticweb.owlapi.model.OWLLiteral; 4 | 5 | import jakarta.inject.Inject; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 27/01/15 11 | */ 12 | public class NullHttpLinkRenderer implements HttpLinkRenderer { 13 | 14 | @Inject 15 | public NullHttpLinkRenderer() { 16 | } 17 | 18 | @Override 19 | public boolean isLink(OWLLiteral literal) { 20 | return false; 21 | } 22 | 23 | @Override 24 | public void renderLink(String link, StringBuilder builder) { 25 | builder.append(link); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/mansyntax/render/PlainLinkRenderer.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.mansyntax.render; 2 | 3 | /** 4 | * @author Matthew Horridge, 5 | * Stanford University, 6 | * Bio-Medical Informatics Research Group 7 | * Date: 21/02/2014 8 | */ 9 | public class PlainLinkRenderer implements LinkRendererPlugin { 10 | 11 | @Override 12 | public boolean isRenderableAsLink(String link) { 13 | return link.startsWith("http"); 14 | } 15 | 16 | @Override 17 | public LinkInfo renderLink(String link) { 18 | return new LinkInfo(link, link); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/mansyntax/render/PrettyPrint.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.mansyntax.render; 2 | 3 | /** 4 | * @author Matthew Horridge, 5 | * Stanford University, 6 | * Bio-Medical Informatics Research Group 7 | * Date: 20/02/2014 8 | */ 9 | public enum PrettyPrint { 10 | 11 | ON, 12 | 13 | OFF 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/mansyntax/render/RenderableFormat.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.mansyntax.render; 2 | 3 | /** 4 | * @author Matthew Horridge, 5 | * Stanford University, 6 | * Bio-Medical Informatics Research Group 7 | * Date: 21/02/2014 8 | */ 9 | enum RenderableFormat { 10 | LINE_PER_ITEM, 11 | ALL_ON_ONE_LINE 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/mansyntax/render/WikipediaXRefLinkRenderer.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.mansyntax.render; 2 | 3 | /** 4 | * @author Matthew Horridge, 5 | * Stanford University, 6 | * Bio-Medical Informatics Research Group 7 | * Date: 21/02/2014 8 | */ 9 | public class WikipediaXRefLinkRenderer implements LinkRendererPlugin { 10 | 11 | @Override 12 | public boolean isRenderableAsLink(String link) { 13 | return link.startsWith("wikipedia:"); 14 | } 15 | 16 | @Override 17 | public LinkInfo renderLink(String link) { 18 | return new LinkInfo("http://wikipedia.org/wiki/" + link, link); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/match/AnythingMatcher.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.match; 2 | 3 | import javax.annotation.Nonnull; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 2019-12-02 9 | */ 10 | public class AnythingMatcher implements Matcher { 11 | 12 | public static AnythingMatcher get() { 13 | return new AnythingMatcher<>(); 14 | } 15 | 16 | @Override 17 | public boolean matches(@Nonnull T value) { 18 | return true; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/match/EntityFrameMatcher.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.match; 2 | 3 | import org.semanticweb.owlapi.model.OWLEntity; 4 | 5 | import javax.annotation.Nonnull; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 7 Jun 2018 11 | */ 12 | public interface EntityFrameMatcher extends Matcher { 13 | 14 | boolean matches(@Nonnull OWLEntity entity); 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/match/EntityMatcherFactory.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.match; 2 | 3 | import edu.stanford.protege.webprotege.criteria.EntityMatchCriteria; 4 | import org.semanticweb.owlapi.model.OWLEntity; 5 | 6 | import javax.annotation.Nonnull; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 2020-08-15 12 | */ 13 | public interface EntityMatcherFactory { 14 | 15 | @Nonnull 16 | Matcher getEntityMatcher(@Nonnull EntityMatchCriteria criteria); 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/match/HierarchyPositionMatcherFactory.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.match; 2 | 3 | import edu.stanford.protege.webprotege.criteria.CompositeHierarchyPositionCriteria; 4 | import org.semanticweb.owlapi.model.OWLEntity; 5 | 6 | import javax.annotation.Nonnull; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 2020-04-08 12 | */ 13 | public interface HierarchyPositionMatcherFactory { 14 | 15 | @Nonnull 16 | Matcher getHierarchyPositionMatcher(@Nonnull CompositeHierarchyPositionCriteria criteria); 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/match/HierarchyPositionMatchingEngine.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.match; 2 | 3 | import edu.stanford.protege.webprotege.criteria.HierarchyPositionCriteria; 4 | import org.semanticweb.owlapi.model.OWLEntity; 5 | 6 | import javax.annotation.Nonnull; 7 | import java.util.stream.Stream; 8 | 9 | /** 10 | * Matthew Horridge 11 | * Stanford Center for Biomedical Informatics Research 12 | * 2020-10-07 13 | */ 14 | public interface HierarchyPositionMatchingEngine { 15 | 16 | @Nonnull 17 | Stream getMatchingEntities(@Nonnull HierarchyPositionCriteria criteria); 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/match/LangTagIsEmptyMatcher.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.match; 2 | 3 | import org.semanticweb.owlapi.model.OWLLiteral; 4 | 5 | import javax.annotation.Nonnull; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 2020-06-23 11 | */ 12 | public class LangTagIsEmptyMatcher implements Matcher { 13 | 14 | @Override 15 | public boolean matches(@Nonnull OWLLiteral value) { 16 | return value.getLang().isEmpty(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/match/Matcher.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.match; 2 | 3 | import javax.annotation.Nonnull; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 7 Jun 2018 9 | */ 10 | public interface Matcher { 11 | 12 | boolean matches(@Nonnull T value); 13 | 14 | static Matcher matchesAny() { 15 | return o -> true; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/match/NotMatcher.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.match; 2 | 3 | import javax.annotation.Nonnull; 4 | 5 | import static com.google.common.base.Preconditions.checkNotNull; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 7 Jun 2018 11 | */ 12 | public class NotMatcher implements Matcher { 13 | 14 | @Nonnull 15 | private final Matcher matcher; 16 | 17 | public NotMatcher(@Nonnull Matcher matcher) { 18 | this.matcher = checkNotNull(matcher); 19 | } 20 | 21 | @Override 22 | public boolean matches(@Nonnull T value) { 23 | return !matcher.matches(checkNotNull(value)); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/match/RelationshipMatcherFactory.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.match; 2 | 3 | import edu.stanford.protege.webprotege.frame.PlainPropertyValue; 4 | import edu.stanford.protege.webprotege.criteria.RelationshipCriteria; 5 | 6 | import javax.annotation.Nonnull; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 2020-04-02 12 | */ 13 | public interface RelationshipMatcherFactory { 14 | 15 | Matcher getRelationshipMatcher(@Nonnull RelationshipCriteria relationshipCriteria); 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/match/RelationshipValueMatcher.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.match; 2 | 3 | import org.semanticweb.owlapi.model.OWLPrimitive; 4 | 5 | import javax.annotation.Nonnull; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 2019-12-02 11 | */ 12 | public class RelationshipValueMatcher implements Matcher { 13 | 14 | @Override 15 | public boolean matches(@Nonnull OWLPrimitive value) { 16 | return false; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/match/StringContainsRegexMatchMatcher.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.match; 2 | 3 | import javax.annotation.Nonnull; 4 | import java.util.regex.Pattern; 5 | 6 | import static com.google.common.base.Preconditions.checkNotNull; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 12 Jun 2018 12 | */ 13 | public class StringContainsRegexMatchMatcher implements Matcher { 14 | 15 | @Nonnull 16 | private final Pattern pattern; 17 | 18 | public StringContainsRegexMatchMatcher(@Nonnull Pattern pattern) { 19 | this.pattern = checkNotNull(pattern); 20 | } 21 | 22 | @Override 23 | public boolean matches(@Nonnull String value) { 24 | return pattern.matcher(value).find(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/match/StringHasUntrimmedSpaceMatcher.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.match; 2 | 3 | import javax.annotation.Nonnull; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 13 Jun 2018 9 | */ 10 | public class StringHasUntrimmedSpaceMatcher implements Matcher { 11 | 12 | @Override 13 | public boolean matches(@Nonnull String value) { 14 | return value.endsWith(" ") || value.startsWith(" "); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/merge/MergeData.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.merge; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 26/01/15 7 | */ 8 | public class MergeData { 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/merge/MergeUploadedProjectResult.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.merge; 2 | 3 | import com.fasterxml.jackson.annotation.JsonCreator; 4 | import com.fasterxml.jackson.annotation.JsonTypeName; 5 | import com.google.auto.value.AutoValue; 6 | import edu.stanford.protege.webprotege.dispatch.Result; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 26/01/15 12 | */ 13 | @AutoValue 14 | 15 | @JsonTypeName("MergeUploadedProject") 16 | public abstract class MergeUploadedProjectResult implements Result { 17 | 18 | @JsonCreator 19 | public static MergeUploadedProjectResult create() { 20 | return new AutoValue_MergeUploadedProjectResult(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/merge_add/ExistingOntologyMergeAddResult.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.merge_add; 2 | 3 | import com.fasterxml.jackson.annotation.JsonCreator; 4 | import com.fasterxml.jackson.annotation.JsonTypeName; 5 | import com.google.auto.value.AutoValue; 6 | import edu.stanford.protege.webprotege.dispatch.Result; 7 | 8 | @AutoValue 9 | 10 | @JsonTypeName("ExistingOntologyMergeAdd") 11 | public class ExistingOntologyMergeAddResult implements Result { 12 | 13 | @JsonCreator 14 | public static ExistingOntologyMergeAddResult create() { 15 | return new AutoValue_ExistingOntologyMergeAddResult(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/merge_add/MergeOntologiesResult.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.merge_add; 2 | 3 | import com.fasterxml.jackson.annotation.JsonCreator; 4 | import com.fasterxml.jackson.annotation.JsonTypeName; 5 | import com.google.auto.value.AutoValue; 6 | import edu.stanford.protege.webprotege.dispatch.Result; 7 | 8 | 9 | @AutoValue 10 | 11 | @JsonTypeName("MergeOntologies") 12 | public abstract class MergeOntologiesResult implements Result { 13 | 14 | @JsonCreator 15 | public static MergeOntologiesResult create() { 16 | return new AutoValue_MergeOntologiesResult(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/object/OWLObjectSelector.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.object; 2 | 3 | import org.semanticweb.owlapi.model.OWLObject; 4 | 5 | import java.util.Optional; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 31/01/15 11 | */ 12 | public interface OWLObjectSelector { 13 | 14 | /** 15 | * Selects an {@link OWLObject} from the iterable of objects. 16 | * @param objects The iterable of objects. Not {@code null}. Note, that the iterable may not contain any 17 | * objects. 18 | * @return A (possibly absent) choice from the objects. Not {@code null}. 19 | */ 20 | Optional selectOne(Iterable objects); 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/permissions/RebuildProjectPermissionsResponse.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.permissions; 2 | 3 | import com.fasterxml.jackson.annotation.JsonTypeName; 4 | import edu.stanford.protege.webprotege.common.Response; 5 | 6 | @JsonTypeName(RebuildProjectPermissionsRequest.CHANNEL) 7 | public record RebuildProjectPermissionsResponse() implements Response { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/persistence/CommentId2StringConverter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | import edu.stanford.protege.webprotege.issues.CommentId; 4 | import org.springframework.core.convert.converter.Converter; 5 | 6 | /** 7 | * Matthew Horridge 8 | * Stanford Center for Biomedical Informatics Research 9 | * 2021-11-03 10 | */ 11 | public class CommentId2StringConverter implements Converter { 12 | 13 | @Override 14 | public String convert(CommentId source) { 15 | return source.value(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/persistence/Converter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 2 Oct 2016 7 | */ 8 | @Deprecated 9 | public interface Converter { 10 | 11 | T convert(S source); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/persistence/DbName.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | import jakarta.inject.Qualifier; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 6 Oct 2016 11 | */ 12 | @Qualifier 13 | @Retention(RetentionPolicy.RUNTIME) 14 | public @interface DbName { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/persistence/DocumentConverter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | import org.bson.Document; 4 | 5 | import javax.annotation.Nonnull; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 30 Sep 2016 11 | */ 12 | public interface DocumentConverter { 13 | 14 | Document toDocument(@Nonnull T object); 15 | 16 | T fromDocument(@Nonnull Document document); 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/persistence/DocumentConverterUtil.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | import javax.annotation.Nonnull; 4 | import javax.annotation.Nullable; 5 | 6 | /** 7 | * Matthew Horridge 8 | * Stanford Center for Biomedical Informatics Research 9 | * 30 Sep 2016 10 | */ 11 | public class DocumentConverterUtil { 12 | 13 | @Nonnull 14 | public static String orEmptyString(@Nullable String s) { 15 | if(s == null) { 16 | return ""; 17 | } 18 | else { 19 | return s; 20 | } 21 | } 22 | 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/persistence/EmailAddressReadConverter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | import edu.stanford.protege.webprotege.user.EmailAddress; 4 | 5 | /** 6 | * Author: Matthew Horridge
7 | * Stanford University
8 | * Bio-Medical Informatics Research Group
9 | * Date: 8/20/13 10 | */ 11 | 12 | public class EmailAddressReadConverter implements Converter { 13 | 14 | public EmailAddress convert(String source) { 15 | return new EmailAddress(source); 16 | } 17 | } -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/persistence/EmailAddressWriteConverter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | import edu.stanford.protege.webprotege.user.EmailAddress; 4 | 5 | /** 6 | * Author: Matthew Horridge
7 | * Stanford University
8 | * Bio-Medical Informatics Research Group
9 | * Date: 8/20/13 10 | */ 11 | public class EmailAddressWriteConverter implements Converter { 12 | 13 | public String convert(EmailAddress source) { 14 | return source.getEmailAddress(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/persistence/Indexable.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | import com.mongodb.client.MongoCollection; 4 | import org.bson.Document; 5 | 6 | import javax.annotation.Nonnull; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 2 Oct 2016 12 | */ 13 | public interface Indexable { 14 | 15 | void ensureIndexes(@Nonnull MongoCollection collection); 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/persistence/IriToStringConverter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | import org.semanticweb.owlapi.model.IRI; 4 | import org.springframework.core.convert.converter.Converter; 5 | 6 | /** 7 | * Matthew Horridge 8 | * Stanford Center for Biomedical Informatics Research 9 | * 2022-01-04 10 | */ 11 | public class IriToStringConverter implements Converter { 12 | 13 | @Override 14 | public String convert(IRI iri) { 15 | return iri.toString(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/persistence/MilestoneReadConverter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | import edu.stanford.protege.webprotege.issues.Milestone; 4 | 5 | 6 | /** 7 | * Matthew Horridge 8 | * Stanford Center for Biomedical Informatics Research 9 | * 2 Aug 16 10 | */ 11 | public class MilestoneReadConverter implements Converter { 12 | 13 | @Override 14 | public Milestone convert(String s) { 15 | return new Milestone(s); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/persistence/MilestoneWriteConverter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | import edu.stanford.protege.webprotege.issues.Milestone; 4 | 5 | 6 | /** 7 | * Matthew Horridge 8 | * Stanford Center for Biomedical Informatics Research 9 | * 2 Aug 16 10 | */ 11 | public class MilestoneWriteConverter implements Converter { 12 | 13 | @Override 14 | public String convert(Milestone milestone) { 15 | return milestone.getLabel(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/persistence/OWLEntityWriteConverter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | import com.mongodb.BasicDBObject; 4 | import com.mongodb.DBObject; 5 | import org.semanticweb.owlapi.model.OWLEntity; 6 | 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 27 Jul 16 12 | */ 13 | public class OWLEntityWriteConverter implements Converter { 14 | 15 | @Override 16 | public DBObject convert(OWLEntity entity) { 17 | BasicDBObject basicDBObject = new BasicDBObject(); 18 | basicDBObject.put("type", entity.getEntityType().getName()); 19 | basicDBObject.put("iri", entity.getIRI().toString()); 20 | return basicDBObject; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/persistence/OwlEntityToDocumentConverter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | import org.bson.Document; 4 | import org.semanticweb.owlapi.model.OWLEntity; 5 | import org.springframework.core.convert.converter.Converter; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 2022-01-04 11 | */ 12 | public class OwlEntityToDocumentConverter implements Converter { 13 | 14 | @Override 15 | public Document convert(OWLEntity entity) { 16 | return new Document().append("iri", entity.getIRI().toString()) 17 | .append("type", entity.getEntityType().toString()); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/persistence/ProjectId2StringConverter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | import edu.stanford.protege.webprotege.common.ProjectId; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 2021-07-09 9 | */ 10 | public class ProjectId2StringConverter extends ValueObject2StringConverter { 11 | 12 | public ProjectId2StringConverter() { 13 | super(ProjectId.class); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/persistence/ProjectIdReadConverter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | import edu.stanford.protege.webprotege.common.ProjectId; 4 | 5 | /** 6 | * Author: Matthew Horridge
7 | * Stanford University
8 | * Bio-Medical Informatics Research Group
9 | * Date: 8/20/13 10 | *

11 | * An implementation of {@link Converter} that reads a {@link ProjectId} from a {@link String}. 12 | *

13 | */ 14 | public class ProjectIdReadConverter implements Converter { 15 | 16 | public ProjectId convert(String id) { 17 | return ProjectId.valueOf(id); 18 | } 19 | } -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/persistence/ProjectIdWriteConverter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | import edu.stanford.protege.webprotege.common.ProjectId; 4 | 5 | /** 6 | * Author: Matthew Horridge
7 | * Stanford University
8 | * Bio-Medical Informatics Research Group
9 | * Date: 8/20/13 10 | *

11 | * An implementation of {@link Converter} that writes a {@link ProjectId} to a {@link String}. 12 | *

13 | */ 14 | public class ProjectIdWriteConverter implements Converter { 15 | 16 | public String convert(ProjectId projectId) { 17 | return projectId.id(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/persistence/Repository.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 2 Oct 2016 7 | */ 8 | public interface Repository { 9 | 10 | void ensureIndexes(); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/persistence/String2CommentIdConverter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | import edu.stanford.protege.webprotege.issues.CommentId; 4 | import org.springframework.core.convert.converter.Converter; 5 | 6 | /** 7 | * Matthew Horridge 8 | * Stanford Center for Biomedical Informatics Research 9 | * 2021-11-03 10 | */ 11 | public class String2CommentIdConverter implements Converter { 12 | 13 | @Override 14 | public CommentId convert(String source) { 15 | return CommentId.valueOf(source); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/persistence/String2ProjectIdConverter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | import edu.stanford.protege.webprotege.common.ProjectId; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 2021-07-09 9 | */ 10 | public class String2ProjectIdConverter extends String2ValueObjectConverter { 11 | 12 | public String2ProjectIdConverter() { 13 | super(ProjectId.class); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/persistence/String2ThreadIdConverter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | import edu.stanford.protege.webprotege.issues.ThreadId; 4 | import org.springframework.core.convert.converter.Converter; 5 | 6 | /** 7 | * Matthew Horridge 8 | * Stanford Center for Biomedical Informatics Research 9 | * 2021-11-03 10 | */ 11 | public class String2ThreadIdConverter implements Converter { 12 | 13 | @Override 14 | public ThreadId convert(String source) { 15 | return ThreadId.valueOf(source); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/persistence/String2UserIdConverter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | import edu.stanford.protege.webprotege.common.UserId; 4 | import org.springframework.core.convert.converter.Converter; 5 | 6 | /** 7 | * Matthew Horridge 8 | * Stanford Center for Biomedical Informatics Research 9 | * 2021-07-09 10 | */ 11 | public class String2UserIdConverter implements Converter { 12 | 13 | @Override 14 | public UserId convert(String source) { 15 | return UserId.valueOf(source); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/persistence/StringToIriConverter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | import org.semanticweb.owlapi.model.IRI; 4 | import org.springframework.core.convert.converter.Converter; 5 | 6 | /** 7 | * Matthew Horridge 8 | * Stanford Center for Biomedical Informatics Research 9 | * 2022-01-04 10 | */ 11 | public class StringToIriConverter implements Converter { 12 | 13 | @Override 14 | public IRI convert(String s) { 15 | return IRI.create(s); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/persistence/ThreadId2StringConverter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | import edu.stanford.protege.webprotege.issues.ThreadId; 4 | import org.springframework.core.convert.converter.Converter; 5 | 6 | /** 7 | * Matthew Horridge 8 | * Stanford Center for Biomedical Informatics Research 9 | * 2021-11-03 10 | */ 11 | public class ThreadId2StringConverter implements Converter { 12 | 13 | @Override 14 | public String convert(ThreadId source) { 15 | return source.value(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/persistence/UserId2StringConverter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | import edu.stanford.protege.webprotege.common.UserId; 4 | import org.springframework.core.convert.converter.Converter; 5 | 6 | /** 7 | * Matthew Horridge 8 | * Stanford Center for Biomedical Informatics Research 9 | * 2021-07-09 10 | */ 11 | public class UserId2StringConverter implements Converter { 12 | 13 | @Override 14 | public String convert(UserId source) { 15 | return source.id(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/persistence/UserIdReadConverter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | import edu.stanford.protege.webprotege.common.UserId; 4 | 5 | 6 | /** 7 | * Author: Matthew Horridge
8 | * Stanford University
9 | * Bio-Medical Informatics Research Group
10 | * Date: 8/20/13 11 | *

12 | * An implementation of {@link Converter} that reads a {@link UserId} from a {@link String}. 13 | *

14 | */ 15 | public class UserIdReadConverter implements Converter { 16 | 17 | public UserId convert(String userId) { 18 | return UserId.valueOf(userId); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/persistence/UserIdWriteConverter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | import edu.stanford.protege.webprotege.common.UserId; 4 | 5 | /** 6 | * Author: Matthew Horridge
7 | * Stanford University
8 | * Bio-Medical Informatics Research Group
9 | * Date: 8/20/13 10 | *

11 | * An implementation of a {@link Converter} that writes a {@link UserId} to a {@link String}. 12 | *

13 | */ 14 | public class UserIdWriteConverter implements Converter { 15 | 16 | public String convert(UserId userId) { 17 | return userId.id(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/place/ItemToken.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.place; 2 | 3 | /** 4 | * @author Matthew Horridge, Stanford University, Bio-Medical Informatics Research Group, Date: 19/05/2014 5 | */ 6 | public class ItemToken { 7 | 8 | private final String typeName; 9 | 10 | private final String itemContent; 11 | 12 | public ItemToken(String typeName, String itemContent) { 13 | this.typeName = typeName; 14 | this.itemContent = itemContent; 15 | } 16 | 17 | public String getTypeName() { 18 | return typeName; 19 | } 20 | 21 | public String getItemContent() { 22 | return itemContent; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/place/PlaceKey.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.place; 2 | 3 | /** 4 | * @author Matthew Horridge, Stanford University, Bio-Medical Informatics Research Group, Date: 16/05/2014 5 | */ 6 | public interface PlaceKey { 7 | } 8 | 9 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/portlet/PortletId.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.portlet; 2 | 3 | import com.fasterxml.jackson.annotation.JsonCreator; 4 | import com.fasterxml.jackson.annotation.JsonValue; 5 | 6 | public record PortletId(String value) { 7 | 8 | @JsonCreator 9 | public static PortletId valueOf(String value) { 10 | return new PortletId(value); 11 | } 12 | 13 | @JsonValue 14 | public String value() { 15 | return this.value; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/project/DefaultOntologyIdManager.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.project; 2 | 3 | import edu.stanford.protege.webprotege.index.Index; 4 | import org.semanticweb.owlapi.model.OWLOntologyID; 5 | 6 | import javax.annotation.Nonnull; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 2019-08-15 12 | */ 13 | public interface DefaultOntologyIdManager extends Index { 14 | 15 | @Nonnull 16 | OWLOntologyID getDefaultOntologyId(); 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/project/DormantProjectTime.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.project; 2 | 3 | import jakarta.inject.Qualifier; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 2019-07-20 9 | */ 10 | @Qualifier 11 | public @interface DormantProjectTime { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/project/HasProjectId.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.project; 2 | 3 | import edu.stanford.protege.webprotege.common.ProjectId; 4 | 5 | import javax.annotation.Nonnull; 6 | 7 | /** 8 | * Author: Matthew Horridge
9 | * Stanford University
10 | * Bio-Medical Informatics Research Group
11 | * Date: 20/01/2013 12 | */ 13 | public interface HasProjectId { 14 | 15 | /** 16 | * Get the {@link ProjectId}. 17 | * @return The {@link ProjectId}. Not {@code null}. 18 | */ 19 | @Nonnull 20 | ProjectId projectId(); 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/project/InstantiationMode.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.project; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 2019-08-02 7 | */ 8 | public enum InstantiationMode { 9 | 10 | LAZY, 11 | 12 | EAGER 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/project/ProjectAccessManager.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.project; 2 | 3 | import edu.stanford.protege.webprotege.common.ProjectId; 4 | import edu.stanford.protege.webprotege.common.UserId; 5 | 6 | /** 7 | * Matthew Horridge 8 | * Stanford Center for Biomedical Informatics Research 9 | * 3 Mar 2017 10 | */ 11 | public interface ProjectAccessManager { 12 | void logProjectAccess(ProjectId projectId, UserId userId, long timestamp); 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/project/ProjectComponentFactory.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.project; 2 | 3 | import edu.stanford.protege.webprotege.common.ProjectId; 4 | import edu.stanford.protege.webprotege.inject.ProjectComponent; 5 | import org.springframework.context.ApplicationContext; 6 | 7 | import javax.annotation.Nonnull; 8 | 9 | /** 10 | * Matthew Horridge 11 | * Stanford Center for Biomedical Informatics Research 12 | * 24 Jan 2018 13 | */ 14 | public interface ProjectComponentFactory { 15 | 16 | @Nonnull 17 | ProjectComponent createProjectComponent(@Nonnull ProjectId projectId); 18 | 19 | @Nonnull 20 | ApplicationContext getProjectContext(@Nonnull ProjectId projectId); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/project/ProjectDocumentExistsException.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.project; 2 | 3 | import edu.stanford.protege.webprotege.common.ProjectId; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * Author: Matthew Horridge
9 | * Stanford University
10 | * Bio-Medical Informatics Research Group
11 | * Date: 05/06/2012 12 | */ 13 | public class ProjectDocumentExistsException extends ProjectAlreadyExistsException implements Serializable { 14 | 15 | private ProjectDocumentExistsException() { 16 | } 17 | 18 | public ProjectDocumentExistsException(ProjectId projectId) { 19 | super(projectId, "Project document already exists: " + projectId.id()); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/project/ProjectIdFactory.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.project; 2 | 3 | import edu.stanford.protege.webprotege.common.ProjectId; 4 | 5 | import java.util.UUID; 6 | 7 | /** 8 | * Author: Matthew Horridge
9 | * Stanford University
10 | * Bio-Medical Informatics Research Group
11 | * Date: 11/04/2013 12 | */ 13 | public class ProjectIdFactory { 14 | 15 | public static ProjectId getFreshProjectId() { 16 | UUID uuid = UUID.randomUUID(); 17 | return ProjectId.valueOf(uuid.toString()); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/project/UploadedOntologiesCache.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.project; 2 | 3 | import edu.stanford.protege.webprotege.csv.DocumentId; 4 | 5 | import java.util.Collection; 6 | import java.util.Collections; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 2021-10-06 12 | */ 13 | public class UploadedOntologiesCache { 14 | 15 | public Collection getUploadedOntologies(DocumentId uploadedId) { 16 | return Collections.emptySet(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/project/WithProjectId.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.project; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnore; 4 | import edu.stanford.protege.webprotege.common.ProjectId; 5 | 6 | import javax.annotation.Nonnull; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 2020-08-24 12 | */ 13 | public interface WithProjectId { 14 | 15 | /** 16 | * Generate a copy replacing the projectId in this object with the specified id. 17 | * @param projectId The project id to replace the current project Id 18 | * @return A copy of this object with the project id replaced with the specified project id 19 | */ 20 | @JsonIgnore 21 | T withProjectId(@Nonnull ProjectId projectId); 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/projectsettings/ProjectSettingsChangedHandler.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.projectsettings; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 25/11/14 7 | */ 8 | public interface ProjectSettingsChangedHandler { 9 | 10 | void handleProjectSettingsChanged(ProjectSettingsChangedEvent event); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/renderer/HasHtmlBrowserText.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.renderer; 2 | 3 | import org.semanticweb.owlapi.model.OWLObject; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 26/02/15 9 | */ 10 | public interface HasHtmlBrowserText { 11 | 12 | String getHtmlBrowserText(OWLObject object); 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/renderer/LiteralLangTagTransformer.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.renderer; 2 | 3 | import javax.annotation.Nonnull; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 2018-12-10 9 | */ 10 | public interface LiteralLangTagTransformer { 11 | 12 | @Nonnull 13 | String transformLangTag(@Nonnull String langTag); 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/renderer/LiteralLexicalFormTransformer.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.renderer; 2 | 3 | import javax.annotation.Nonnull; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 2018-12-02 9 | */ 10 | public interface LiteralLexicalFormTransformer { 11 | 12 | @Nonnull 13 | String transformLexicalForm(@Nonnull String lexicalForm); 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/renderer/LiteralRenderer.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.renderer; 2 | 3 | import org.semanticweb.owlapi.model.OWLLiteral; 4 | 5 | import javax.annotation.Nonnull; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 2018-12-02 11 | */ 12 | public interface LiteralRenderer { 13 | 14 | @Nonnull 15 | String getLiteralRendering(@Nonnull 16 | OWLLiteral literal); 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/repository/ProjectEntitySearchFiltersManager.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.repository; 2 | 3 | import com.google.common.collect.ImmutableList; 4 | import edu.stanford.protege.webprotege.search.EntitySearchFilter; 5 | 6 | import javax.annotation.Nonnull; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 2020-08-15 12 | */ 13 | public interface ProjectEntitySearchFiltersManager { 14 | 15 | @Nonnull 16 | ImmutableList getSearchFilters(); 17 | 18 | void setSearchFilters(@Nonnull ImmutableList searchFilters); 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/search/EntityNameMatchType.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.search; 2 | 3 | /** 4 | * Author: Matthew Horridge
5 | * Stanford University
6 | * Bio-Medical Informatics Research Group
7 | * Date: 13/11/2013 8 | */ 9 | public enum EntityNameMatchType { 10 | 11 | EXACT_MATCH, 12 | 13 | WORD_MATCH, 14 | 15 | WORD_PREFIX_MATCH, 16 | 17 | SUB_STRING_MATCH, 18 | 19 | NONE 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/search/EntitySearchFilterIndexesManager.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.search; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 2020-08-17 7 | */ 8 | public interface EntitySearchFilterIndexesManager { 9 | 10 | void updateEntitySearchFilterIndexes(); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/search/EntitySearchFilterRepository.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.search; 2 | 3 | import com.google.common.collect.ImmutableList; 4 | import edu.stanford.protege.webprotege.persistence.Repository; 5 | import edu.stanford.protege.webprotege.common.ProjectId; 6 | 7 | import javax.annotation.Nonnull; 8 | 9 | /** 10 | * Matthew Horridge 11 | * Stanford Center for Biomedical Informatics Research 12 | * 2020-08-15 13 | */ 14 | public interface EntitySearchFilterRepository extends Repository { 15 | 16 | @Nonnull 17 | ImmutableList getSearchFilters(@Nonnull ProjectId projectId); 18 | 19 | void saveSearchFilters(@Nonnull ImmutableList filters); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/search/PrefixNameMatchType.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.search; 2 | 3 | /** 4 | * Author: Matthew Horridge
5 | * Stanford University
6 | * Bio-Medical Informatics Research Group
7 | * Date: 14/11/2013 8 | * 9 | */ 10 | public enum PrefixNameMatchType { 11 | 12 | // The order is important! 13 | 14 | NOT_IN_PREFIX_NAME, 15 | 16 | IN_PREFIX_NAME 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/search/SearchType.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.search; 2 | 3 | /** 4 | * Author: Matthew Horridge
5 | * Stanford University
6 | * Bio-Medical Informatics Research Group
7 | * Date: 07/12/2012 8 | */ 9 | public enum SearchType { 10 | 11 | EXACT_MATCH(false), 12 | 13 | EXACT_MATCH_IGNORE_CASE(true), 14 | 15 | SUB_STRING_MATCH_IGNORE_CASE(true); 16 | 17 | private final boolean ignoreCase; 18 | 19 | SearchType(boolean ignoreCase) { 20 | this.ignoreCase = ignoreCase; 21 | } 22 | 23 | public static SearchType getDefault() { 24 | return SUB_STRING_MATCH_IGNORE_CASE; 25 | } 26 | 27 | public boolean isCaseInsensitive() { 28 | return ignoreCase; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/sharing/ProjectSharingSettingsManager.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.sharing; 2 | 3 | import edu.stanford.protege.webprotege.common.ProjectId; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 06/02/15 9 | */ 10 | public interface ProjectSharingSettingsManager { 11 | 12 | void setProjectSharingSettings(ProjectSharingSettings projectSharingSettings); 13 | 14 | ProjectSharingSettings getProjectSharingSettings(ProjectId projectId); 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/sharing/SharingPermission.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.sharing; 2 | 3 | import java.io.Serializable; 4 | 5 | /** 6 | * Author: Matthew Horridge
7 | * Stanford University
8 | * Bio-Medical Informatics Research Group
9 | * Date: 27/02/2012 10 | */ 11 | public enum SharingPermission implements Serializable { 12 | 13 | /** 14 | * A user can view a project. 15 | */ 16 | VIEW, 17 | 18 | /** 19 | * A user can comment on various structures within a project. 20 | */ 21 | COMMENT, 22 | 23 | /** 24 | * A user can edit a project. 25 | */ 26 | EDIT, 27 | 28 | /** 29 | * A user can manage a project 30 | */ 31 | MANAGE 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/shortform/AnnotationAssertionBasedDictionaryLanguage.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.shortform; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 2020-08-05 7 | */ 8 | public interface AnnotationAssertionBasedDictionaryLanguage { 9 | 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/shortform/EntityBasedSimilarity.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.shortform; 2 | 3 | import org.apache.lucene.search.similarities.BasicStats; 4 | import org.apache.lucene.search.similarities.SimilarityBase; 5 | 6 | import jakarta.inject.Inject; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 2020-08-11 12 | */ 13 | public class EntityBasedSimilarity extends SimilarityBase { 14 | 15 | @Inject 16 | public EntityBasedSimilarity() { 17 | } 18 | 19 | @Override 20 | protected double score(BasicStats stats, double freq, double docLen) { 21 | return freq * stats.getBoost(); 22 | } 23 | 24 | @Override 25 | public String toString() { 26 | return EntityBasedSimilarity.class.getSimpleName(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/shortform/EntityDocumentAugmenter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.shortform; 2 | 3 | import org.apache.lucene.document.Document; 4 | import org.semanticweb.owlapi.model.OWLEntity; 5 | 6 | import javax.annotation.Nonnull; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 2020-08-06 12 | */ 13 | public interface EntityDocumentAugmenter { 14 | 15 | void augmentDocument(@Nonnull OWLEntity entity, @Nonnull Document document); 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/shortform/LuceneIndexUpdater.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.shortform; 2 | 3 | import org.semanticweb.owlapi.model.OWLEntity; 4 | 5 | import javax.annotation.Nonnull; 6 | import java.util.Collection; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 2020-07-07 12 | */ 13 | public interface LuceneIndexUpdater { 14 | 15 | void updateIndexForEntities(@Nonnull Collection entities); 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/shortform/LuceneIndexWriter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.shortform; 2 | 3 | import java.io.IOException; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 2020-07-07 9 | */ 10 | public interface LuceneIndexWriter { 11 | 12 | void rebuildIndex() throws IOException; 13 | 14 | void writeIndex() throws IOException; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/shortform/LuceneIndexesDirectory.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.shortform; 2 | 3 | import org.springframework.beans.factory.annotation.Qualifier; 4 | 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 2020-08-03 12 | */ 13 | @Qualifier 14 | @Retention(RetentionPolicy.RUNTIME) 15 | public @interface LuceneIndexesDirectory { 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/shortform/MaxGramSize.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.shortform; 2 | 3 | import jakarta.inject.Qualifier; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 2020-08-07 11 | */ 12 | @Qualifier 13 | @Retention(RetentionPolicy.RUNTIME) 14 | public @interface MaxGramSize { 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/shortform/MinGramSize.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.shortform; 2 | 3 | import jakarta.inject.Qualifier; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 2020-08-07 11 | */ 12 | @Qualifier 13 | @Retention(RetentionPolicy.RUNTIME) 14 | public @interface MinGramSize { 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/shortform/MultiLingualDictionary.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.shortform; 2 | 3 | import edu.stanford.protege.webprotege.inject.ProjectSingleton; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 3 Apr 2018 9 | *

10 | * A dictionary that supports look up for multiple languages 11 | */ 12 | @ProjectSingleton 13 | public interface MultiLingualDictionary extends MultiLingualShortFormDictionary, SearchableMultiLingualShortFormDictionary, MultiLingualShortFormIndex { 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/shortform/ShortFormMatchFunction.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.shortform; 2 | 3 | import com.google.common.primitives.ImmutableIntArray; 4 | import edu.stanford.protege.webprotege.common.ShortFormMatch; 5 | import org.semanticweb.owlapi.model.OWLEntity; 6 | 7 | import javax.annotation.Nonnull; 8 | 9 | /** 10 | * Matthew Horridge 11 | * Stanford Center for Biomedical Informatics Research 12 | * 6 Apr 2018 13 | */ 14 | @FunctionalInterface 15 | public interface ShortFormMatchFunction { 16 | 17 | @Nonnull 18 | ShortFormMatch createMatch(@Nonnull OWLEntity entity, 19 | @Nonnull String shortForm, 20 | int matchCount, 21 | @Nonnull ImmutableIntArray matchPositions); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/storage/StorageException.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.storage; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 2024-05-03 7 | */ 8 | public class StorageException extends RuntimeException { 9 | 10 | public StorageException(String message, Throwable cause) { 11 | super(message, cause); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/tag/TagRepository.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.tag; 2 | 3 | import edu.stanford.protege.webprotege.common.ProjectId; 4 | 5 | import javax.annotation.Nonnull; 6 | import java.util.List; 7 | import java.util.Optional; 8 | 9 | /** 10 | * Matthew Horridge 11 | * Stanford Center for Biomedical Informatics Research 12 | * 18 Mar 2018 13 | */ 14 | public interface TagRepository { 15 | 16 | void saveTag(@Nonnull Tag tag); 17 | 18 | void saveTags(@Nonnull Iterable tags); 19 | 20 | void deleteTag(@Nonnull TagId tagId); 21 | 22 | @Nonnull 23 | List findTags(ProjectId projectId); 24 | 25 | @Nonnull 26 | Optional findTagByTagId(@Nonnull TagId tagId); 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/trigger/TriggerAction.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.trigger; 2 | 3 | import org.semanticweb.owlapi.model.OWLEntity; 4 | 5 | import javax.annotation.Nonnull; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 7 Jun 2018 11 | */ 12 | public interface TriggerAction { 13 | 14 | C begin(); 15 | 16 | void execute(@Nonnull OWLEntity entity, C context); 17 | 18 | void end(@Nonnull C context); 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/ui/ViewId.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.ui; 2 | 3 | import com.fasterxml.jackson.annotation.JsonCreator; 4 | import com.fasterxml.jackson.annotation.JsonValue; 5 | 6 | import javax.annotation.Nonnull; 7 | import java.util.Objects; 8 | import java.util.UUID; 9 | 10 | public record ViewId(@JsonValue String value) { 11 | 12 | public ViewId(String value) { 13 | this.value = Objects.requireNonNull(value, "value cannot be null"); 14 | } 15 | 16 | @JsonCreator 17 | public static ViewId valueOf(String id) { 18 | return new ViewId(id); 19 | } 20 | 21 | @Nonnull 22 | public static ViewId generate() { 23 | return new ViewId(UUID.randomUUID().toString()); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/ui/ViewNodeId.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.ui; 2 | 3 | import com.fasterxml.jackson.annotation.JsonCreator; 4 | import com.fasterxml.jackson.annotation.JsonValue; 5 | 6 | import java.util.Objects; 7 | import java.util.UUID; 8 | 9 | public record ViewNodeId(@JsonValue String value) { 10 | 11 | public ViewNodeId(String value) { 12 | this.value = Objects.requireNonNull(value, "value cannot be null"); 13 | } 14 | 15 | @JsonCreator 16 | public static ViewNodeId valueOf(String value) { 17 | return new ViewNodeId(value); 18 | } 19 | 20 | public static ViewNodeId generate() { 21 | return new ViewNodeId(UUID.randomUUID().toString()); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/user/UserDetailsManagerConfiguration.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.user; 2 | 3 | import edu.stanford.protege.webprotege.ipc.CommandExecutor; 4 | import edu.stanford.protege.webprotege.ipc.impl.CommandExecutorImpl; 5 | import org.springframework.context.annotation.Bean; 6 | import org.springframework.context.annotation.Configuration; 7 | 8 | @Configuration 9 | public class UserDetailsManagerConfiguration { 10 | 11 | @Bean 12 | public CommandExecutor getUserQueryCommandExecutor(){ 13 | return new CommandExecutorImpl<>(UsersQueryResponse.class); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/user/UserEmailAlreadyExistsException.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.user; 2 | 3 | import java.io.Serializable; 4 | 5 | /** 6 | * Author: Matthew Horridge
7 | * Stanford University
8 | * Bio-Medical Informatics Research Group
9 | * Date: 05/06/2012 10 | */ 11 | public class UserEmailAlreadyExistsException extends UserRegistrationException implements Serializable { 12 | 13 | private String emailAddress; 14 | 15 | private UserEmailAlreadyExistsException() { 16 | } 17 | 18 | public UserEmailAlreadyExistsException(String emailAddress) { 19 | super("User email address already exists: " + emailAddress); 20 | this.emailAddress = emailAddress; 21 | } 22 | 23 | public String getEmailAddress() { 24 | return emailAddress; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/user/UserNameAlreadyExistsException.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.user; 2 | 3 | import java.io.Serializable; 4 | 5 | /** 6 | * Author: Matthew Horridge
7 | * Stanford University
8 | * Bio-Medical Informatics Research Group
9 | * Date: 05/06/2012 10 | */ 11 | public class UserNameAlreadyExistsException extends UserRegistrationException implements Serializable { 12 | 13 | private String username; 14 | 15 | private UserNameAlreadyExistsException() { 16 | } 17 | 18 | public UserNameAlreadyExistsException(String username) { 19 | super("User name already taken: " + username); 20 | this.username = username; 21 | } 22 | 23 | public String getUsername() { 24 | return username; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/user/UserRegistrationException.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.user; 2 | 3 | /** 4 | * Author: Matthew Horridge
5 | * Stanford University
6 | * Bio-Medical Informatics Research Group
7 | * Date: 05/06/2012 8 | */ 9 | public class UserRegistrationException extends RuntimeException { 10 | 11 | public UserRegistrationException() { 12 | } 13 | 14 | public UserRegistrationException(String message) { 15 | super(message); 16 | } 17 | 18 | public UserRegistrationException(String message, Throwable cause) { 19 | super(message, cause); 20 | } 21 | 22 | public UserRegistrationException(Throwable cause) { 23 | super(cause); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/user/UsersQueryRequest.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.user; 2 | 3 | import edu.stanford.protege.webprotege.common.Request; 4 | 5 | public record UsersQueryRequest(String userName) implements Request { 6 | 7 | public final static String CHANNEL = "webprotege.usersquery.QueryUsers"; 8 | 9 | @Override 10 | public String getChannel() { 11 | return CHANNEL; 12 | } 13 | 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/user/UsersQueryResponse.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.user; 2 | 3 | import edu.stanford.protege.webprotege.common.Response; 4 | import edu.stanford.protege.webprotege.common.UserId; 5 | 6 | import java.util.List; 7 | 8 | public record UsersQueryResponse(List completions) implements Response { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/util/Counter.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.util; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 9 Apr 2018 7 | */ 8 | public class Counter { 9 | 10 | private int counter; 11 | 12 | public void increment() { 13 | counter++; 14 | } 15 | 16 | /** 17 | * A convenience method that allows a counter the easily by used in streams as a lambda expression. 18 | * @param object An object that will be passed through this method. 19 | */ 20 | public T increment(T object) { 21 | counter++; 22 | return object; 23 | } 24 | 25 | public int getCounter() { 26 | return counter; 27 | } 28 | 29 | public void reset() { 30 | counter = 0; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/util/IriReplacerFactory.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.util; 2 | 3 | import com.google.common.collect.ImmutableMap; 4 | import org.semanticweb.owlapi.model.IRI; 5 | import org.semanticweb.owlapi.model.OWLDataFactory; 6 | 7 | import javax.annotation.Nonnull; 8 | 9 | /** 10 | * Matthew Horridge 11 | * Stanford Center for Biomedical Informatics Research 12 | * 2021-07-13 13 | */ 14 | public class IriReplacerFactory { 15 | 16 | private final OWLDataFactory dataFactory; 17 | 18 | public IriReplacerFactory(OWLDataFactory dataFactory) { 19 | this.dataFactory = dataFactory; 20 | } 21 | 22 | @Nonnull 23 | public IriReplacer create(ImmutableMap iriMap) { 24 | return new IriReplacer(dataFactory, iriMap); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/util/TempFileFactory.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.util; 2 | 3 | import java.io.File; 4 | import java.io.IOException; 5 | 6 | /** 7 | * @author Matthew Horridge, 8 | * Stanford University, 9 | * Bio-Medical Informatics Research Group 10 | * Date: 18/02/2014 11 | */ 12 | public interface TempFileFactory { 13 | 14 | /** 15 | * Creates a fresh, empty temporary directory. 16 | * @return The directory. 17 | */ 18 | File createTempDirectory() throws IOException; 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/viz/AnyEdgeTypeCriteria.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.viz; 2 | 3 | import com.fasterxml.jackson.annotation.JsonTypeName; 4 | import com.google.auto.value.AutoValue; 5 | 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 2019-12-06 11 | */ 12 | @AutoValue 13 | 14 | @JsonTypeName("AnyEdgeType") 15 | public class AnyEdgeTypeCriteria { 16 | 17 | public static AnyEdgeTypeCriteria get() { 18 | return new AutoValue_AnyEdgeTypeCriteria(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/viz/AnyNodeCriteria.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.viz; 2 | 3 | import com.fasterxml.jackson.annotation.JsonTypeName; 4 | import com.google.auto.value.AutoValue; 5 | 6 | import javax.annotation.Nonnull; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 2019-12-06 12 | */ 13 | @AutoValue 14 | 15 | @JsonTypeName("AnyNode") 16 | public abstract class AnyNodeCriteria implements EdgeNodeCriteria { 17 | 18 | @Override 19 | public R accept(@Nonnull EdgeCriteriaVisitor visitor) { 20 | return visitor.visit(this); 21 | } 22 | 23 | @Nonnull 24 | @Override 25 | public EdgeCriteria simplify() { 26 | return this; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/viz/EdgeMatcher.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.viz; 2 | 3 | import javax.annotation.Nonnull; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 2019-12-05 9 | */ 10 | public interface EdgeMatcher { 11 | 12 | boolean matches(@Nonnull Edge edge); 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/viz/EdgeNodeCriteria.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.viz; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 2019-12-06 7 | */ 8 | public interface EdgeNodeCriteria extends EdgeCriteria { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/viz/EdgeTypeCriteria.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.viz; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 2019-12-06 7 | */ 8 | public interface EdgeTypeCriteria extends EdgeCriteria { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/viz/EntityGraphEdgeLimit.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.viz; 2 | 3 | import jakarta.inject.Qualifier; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 2019-12-15 11 | */ 12 | @Qualifier 13 | @Retention(RetentionPolicy.RUNTIME) 14 | public @interface EntityGraphEdgeLimit { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/viz/FilterName.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.viz; 2 | 3 | import com.fasterxml.jackson.annotation.JsonCreator; 4 | import com.fasterxml.jackson.annotation.JsonValue; 5 | import com.google.auto.value.AutoValue; 6 | 7 | import javax.annotation.Nonnull; 8 | 9 | /** 10 | * Matthew Horridge 11 | * Stanford Center for Biomedical Informatics Research 12 | * 2019-12-11 13 | */ 14 | @AutoValue 15 | 16 | public abstract class FilterName { 17 | 18 | @Nonnull 19 | @JsonCreator 20 | public static FilterName get(@Nonnull String name) { 21 | return new AutoValue_FilterName(name); 22 | } 23 | 24 | @JsonValue 25 | @Nonnull 26 | public abstract String getName(); 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/viz/NodeMatchesCriteria.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.viz; 2 | 3 | import edu.stanford.protege.webprotege.criteria.EntityMatchCriteria; 4 | 5 | import javax.annotation.Nonnull; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 2019-12-06 11 | * 12 | * A node that matches some entity matching criteria 13 | */ 14 | public interface NodeMatchesCriteria extends EdgeNodeCriteria { 15 | 16 | @Nonnull 17 | EntityMatchCriteria getNodeCriteria(); 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/watches/WatchNotificationEmailTemplate.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.watches; 2 | 3 | import jakarta.inject.Qualifier; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | 7 | /** 8 | * Matthew Horridge 9 | * Stanford Center for Biomedical Informatics Research 10 | * 20 Mar 2017 11 | */ 12 | @Qualifier 13 | @Retention(RetentionPolicy.RUNTIME) 14 | public @interface WatchNotificationEmailTemplate { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/watches/WatchType.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.watches; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 19 Apr 2017 7 | */ 8 | public enum WatchType { 9 | 10 | ENTITY, 11 | 12 | BRANCH 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/webhook/CommentNotificationSlackTemplate.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.webhook; 2 | 3 | import org.springframework.beans.factory.annotation.Qualifier; 4 | 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | 8 | /** 9 | * Matthew Horridge 10 | * Stanford Center for Biomedical Informatics Research 11 | * 23 May 2017 12 | */ 13 | @Qualifier 14 | @Retention(RetentionPolicy.RUNTIME) 15 | public @interface CommentNotificationSlackTemplate { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/webhook/ProjectWebhookEventType.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.webhook; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 19 May 2017 7 | */ 8 | public enum ProjectWebhookEventType { 9 | 10 | PROJECT_CHANGED, 11 | 12 | COMMENT_POSTED 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/webhook/SlackWebhookRepository.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.webhook; 2 | 3 | import edu.stanford.protege.webprotege.persistence.Repository; 4 | import edu.stanford.protege.webprotege.common.ProjectId; 5 | 6 | import javax.annotation.Nonnull; 7 | import java.util.List; 8 | 9 | /** 10 | * Matthew Horridge 11 | * Stanford Center for Biomedical Informatics Research 12 | * 8 Jun 2017 13 | */ 14 | public interface SlackWebhookRepository extends Repository { 15 | 16 | List getWebhooks(@Nonnull ProjectId projectId); 17 | 18 | void clearWebhooks(@Nonnull ProjectId projectId); 19 | 20 | void addWebhook(@Nonnull SlackWebhook webhooks); 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/webhook/Webhook.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.webhook; 2 | 3 | import javax.annotation.Nonnull; 4 | 5 | /** 6 | * Matthew Horridge 7 | * Stanford Center for Biomedical Informatics Research 8 | * 4 Feb 2018 9 | */ 10 | public interface Webhook { 11 | 12 | /** 13 | * Get the payload Url for the webhook 14 | * @return The payload Url 15 | */ 16 | @Nonnull 17 | String getPayloadUrl(); 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/edu/stanford/protege/webprotege/webhook/WebhookInvoker.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.webhook; 2 | 3 | /** 4 | * Matthew Horridge 5 | * Stanford Center for Biomedical Informatics Research 6 | * 19 May 2017 7 | */ 8 | public interface WebhookInvoker { 9 | 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/resources/builtin-perspective-data/History.json: -------------------------------------------------------------------------------- 1 | { 2 | "perspectiveId" : "766764b8-eeb9-43dc-b48e-aee3146bdd4b", 3 | "favorite" : true, 4 | "label" : { 5 | "en" : "History" 6 | }, 7 | "layout" : { 8 | "@type" : "LeafNode", 9 | "properties" : { 10 | "portlet": { 11 | "@type": "String", 12 | "value": "portlets.ProjectHistory" 13 | } 14 | } 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /src/main/resources/builtin-perspective-data/Query.json: -------------------------------------------------------------------------------- 1 | { 2 | "perspectiveId" : "4b0c350f-d922-46f9-8a27-fbb70a42b93a", 3 | "favorite": false, 4 | "label" : { 5 | "en" : "Query" 6 | }, 7 | "layout" : { 8 | "@type" : "LeafNode", 9 | "properties": { 10 | "portlet": { 11 | "@type": "String", 12 | "value": "portlet.query" 13 | } 14 | } 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /src/main/resources/templates/comment-notification-slack-template.json: -------------------------------------------------------------------------------- 1 | { 2 | "username" : "{{application.name}}", 3 | "mrkdwn_in" : ["text", "fields"], 4 | "attachments": [ 5 | { 6 | "fallback": "Comment posted by {{userId}}\n{{comment.body}}", 7 | "color": "#6c1a91", 8 | "pretext": "New comment in {{project.displayName}}", 9 | "title" : "Commented on {{entity.browserText}}", 10 | "title_link" : "{{{entity.url}}}", 11 | "author_name": "{{userId}}", 12 | "text": "{{{comment.body}}}", 13 | "footer" : "<{{{entity.url}}}|View comment on {{application.name}}>", 14 | "ts": {{comment.ts}} 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /src/main/resources/templates/password-reset-email-template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | 13 |

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/test/java/edu/stanford/protege/webprotege/persistence/UserIdReadConverterTestCase.java: -------------------------------------------------------------------------------- 1 | package edu.stanford.protege.webprotege.persistence; 2 | 3 | import edu.stanford.protege.webprotege.common.UserId; 4 | import org.junit.jupiter.api.Test; 5 | 6 | import static junit.framework.Assert.assertEquals; 7 | 8 | /** 9 | * Author: Matthew Horridge
10 | * Stanford University
11 | * Bio-Medical Informatics Research Group
12 | * Date: 8/20/13 13 | */ 14 | public class UserIdReadConverterTestCase { 15 | 16 | @Test 17 | public void convertShouldReturnUserIdWithSuppliedUserName() { 18 | UserIdReadConverter converter = new UserIdReadConverter(); 19 | String suppliedName = "janedoe"; 20 | UserId UserId = converter.convert(suppliedName); 21 | assertEquals(suppliedName, UserId.id()); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/test/resources/application-integrationtest.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/protegeproject/webprotege-backend-service/4dd9c1dcae187a73488a9769e4f056f6639dcb56/src/test/resources/application-integrationtest.properties -------------------------------------------------------------------------------- /src/test/resources/edu/stanford/protege/webprotege/app/UserInSession.json: -------------------------------------------------------------------------------- 1 | { 2 | "userName": "JohnSmith", 3 | "displayName": "John Smith", 4 | "userEmail": "john.smith@gmail.com", 5 | "applicationActions" : [] 6 | } --------------------------------------------------------------------------------