├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── dependabot.yml └── workflows │ ├── maven.yml │ └── release.yml ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── checkstyle-suppressions.xml ├── checkstyles.xml ├── core ├── pom.xml └── src │ ├── main │ └── java │ │ ├── module-info.java │ │ └── uk │ │ └── gov │ │ └── gchq │ │ └── magmacore │ │ ├── database │ │ ├── MagmaCoreDatabase.java │ │ ├── MagmaCoreJenaDatabase.java │ │ ├── MagmaCoreRemoteSparqlDatabase.java │ │ ├── package-info.java │ │ ├── query │ │ │ ├── QueryResult.java │ │ │ ├── QueryResultList.java │ │ │ └── package-info.java │ │ └── validation │ │ │ └── ValidationReportEntry.java │ │ ├── exception │ │ ├── DbTransformationException.java │ │ ├── MagmaCoreException.java │ │ └── package-info.java │ │ ├── service │ │ ├── MagmaCoreService.java │ │ ├── MagmaCoreServiceFactory.java │ │ ├── dto │ │ │ ├── ParticipantDetails.java │ │ │ └── SignPatternDto.java │ │ ├── package-info.java │ │ ├── sparql │ │ │ └── MagmaCoreServiceQueries.java │ │ ├── transformation │ │ │ ├── DbChangeSet.java │ │ │ ├── DbCreateOperation.java │ │ │ ├── DbDeleteOperation.java │ │ │ ├── DbTransformation.java │ │ │ └── package-info.java │ │ └── verify │ │ │ └── DataIntegrityReport.java │ │ └── util │ │ ├── UID.java │ │ └── package-info.java │ └── test │ └── java │ └── uk │ └── gov │ └── gchq │ └── magmacore │ └── service │ ├── AssociationPatternTestData.java │ ├── MagmaCoreServiceCreateDbTransformationTest.java │ ├── MagmaCoreServiceFindByKindOfAssociationTest.java │ ├── MagmaCoreServiceFindByTypeKindAndSignPatternTest.java │ ├── MagmaCoreServiceFindParticipantDetailsTest.java │ ├── MagmaCoreServiceInferencingTest.java │ ├── MagmaCoreServiceRemoteSparqlDataIntegrityCheckTest.java │ ├── MagmaCoreServiceTest.java │ ├── SignPatternTestData.java │ └── transformation │ ├── DbChangeSetTest.java │ ├── DbOperationTest.java │ └── DbTransformationTest.java ├── examples ├── pom.xml └── src │ ├── main │ └── java │ │ ├── module-info.java │ │ └── uk │ │ └── gov │ │ └── gchq │ │ └── magmacore │ │ └── examples │ │ ├── data │ │ ├── ExampleAssociations.java │ │ ├── ExampleIndividuals.java │ │ ├── ExampleRdl.java │ │ └── package-info.java │ │ ├── extensions │ │ ├── ModelExtensionTest.java │ │ └── ParentChildAssociationFunction.java │ │ ├── functional │ │ └── FunctionalProgrammingExample.java │ │ ├── service │ │ ├── JenaDatabaseDemo.java │ │ ├── MultiInheritFromDataApp.java │ │ ├── RemoteSparqlDatabaseDemo.java │ │ └── package-info.java │ │ ├── signs │ │ ├── ExampleSigns.java │ │ └── ExampleSignsRdl.java │ │ └── util │ │ ├── DemoUtils.java │ │ └── package-info.java │ └── test │ ├── java │ └── uk │ │ └── gov │ │ └── gchq │ │ └── magmacore │ │ └── examples │ │ ├── data │ │ └── ExampleDataTest.java │ │ ├── extensions │ │ └── ParentChildAssociationFunctionTest.java │ │ ├── functional │ │ └── FunctionalProgrammingExampleTest.java │ │ ├── signs │ │ └── ExampleSignsTest.java │ │ └── verify │ │ └── DataIntegrityChecksTest.java │ └── resources │ ├── hqdm-0.0.1-alpha.ttl │ └── validation.rules ├── hqdm-canonical ├── pom.xml └── src │ ├── main │ └── java │ │ ├── module-info.java │ │ └── uk │ │ └── gov │ │ └── gchq │ │ └── magmacore │ │ └── hqdm │ │ └── rdfbuilders │ │ ├── AbstractObjectBuilder.java │ │ ├── AcceptanceOfOfferBuilder.java │ │ ├── AcceptanceOfOfferForGoodsBuilder.java │ │ ├── ActivityBuilder.java │ │ ├── AggregationBuilder.java │ │ ├── AgreeContractBuilder.java │ │ ├── AgreementExecutionBuilder.java │ │ ├── AgreementProcessBuilder.java │ │ ├── AmountOfMoneyBuilder.java │ │ ├── AssetBuilder.java │ │ ├── AssociationBuilder.java │ │ ├── BeginningOfOwnershipBuilder.java │ │ ├── BiologicalObjectBuilder.java │ │ ├── BiologicalSystemBuilder.java │ │ ├── BiologicalSystemComponentBuilder.java │ │ ├── ClassBuilder.java │ │ ├── ClassOfAbstractObjectBuilder.java │ │ ├── ClassOfActivityBuilder.java │ │ ├── ClassOfAgreeContractBuilder.java │ │ ├── ClassOfAgreementExecutionBuilder.java │ │ ├── ClassOfAgreementProcessBuilder.java │ │ ├── ClassOfAmountOfMoneyBuilder.java │ │ ├── ClassOfAssociationBuilder.java │ │ ├── ClassOfBiologicalObjectBuilder.java │ │ ├── ClassOfBiologicalSystemBuilder.java │ │ ├── ClassOfBiologicalSystemComponentBuilder.java │ │ ├── ClassOfClassBuilder.java │ │ ├── ClassOfClassOfSpatioTemporalExtentBuilder.java │ │ ├── ClassOfContractExecutionBuilder.java │ │ ├── ClassOfContractProcessBuilder.java │ │ ├── ClassOfEventBuilder.java │ │ ├── ClassOfFunctionalObjectBuilder.java │ │ ├── ClassOfFunctionalSystemBuilder.java │ │ ├── ClassOfFunctionalSystemComponentBuilder.java │ │ ├── ClassOfInPlaceBiologicalComponentBuilder.java │ │ ├── ClassOfIndividualBuilder.java │ │ ├── ClassOfInstalledFunctionalSystemComponentBuilder.java │ │ ├── ClassOfInstalledObjectBuilder.java │ │ ├── ClassOfIntentionallyConstructedObjectBuilder.java │ │ ├── ClassOfOfferBuilder.java │ │ ├── ClassOfOrdinaryBiologicalObjectBuilder.java │ │ ├── ClassOfOrdinaryFunctionalObjectBuilder.java │ │ ├── ClassOfOrdinaryPhysicalObjectBuilder.java │ │ ├── ClassOfOrganizationBuilder.java │ │ ├── ClassOfOrganizationComponentBuilder.java │ │ ├── ClassOfParticipantBuilder.java │ │ ├── ClassOfPartyBuilder.java │ │ ├── ClassOfPeriodOfTimeBuilder.java │ │ ├── ClassOfPersonBuilder.java │ │ ├── ClassOfPersonInPositionBuilder.java │ │ ├── ClassOfPhysicalObjectBuilder.java │ │ ├── ClassOfPhysicalPropertyBuilder.java │ │ ├── ClassOfPhysicalQuantityBuilder.java │ │ ├── ClassOfPointInTimeBuilder.java │ │ ├── ClassOfPositionBuilder.java │ │ ├── ClassOfPossibleWorldBuilder.java │ │ ├── ClassOfReachingAgreementBuilder.java │ │ ├── ClassOfRelationshipBuilder.java │ │ ├── ClassOfRepresentationBuilder.java │ │ ├── ClassOfSalesProductInstanceBuilder.java │ │ ├── ClassOfSignBuilder.java │ │ ├── ClassOfSociallyConstructedActivityBuilder.java │ │ ├── ClassOfSociallyConstructedObjectBuilder.java │ │ ├── ClassOfSpatioTemporalExtentBuilder.java │ │ ├── ClassOfStateBuilder.java │ │ ├── ClassOfStateOfActivityBuilder.java │ │ ├── ClassOfStateOfAmountOfMoneyBuilder.java │ │ ├── ClassOfStateOfAssociationBuilder.java │ │ ├── ClassOfStateOfBiologicalObjectBuilder.java │ │ ├── ClassOfStateOfBiologicalSystemBuilder.java │ │ ├── ClassOfStateOfBiologicalSystemComponentBuilder.java │ │ ├── ClassOfStateOfFunctionalObjectBuilder.java │ │ ├── ClassOfStateOfFunctionalSystemBuilder.java │ │ ├── ClassOfStateOfFunctionalSystemComponentBuilder.java │ │ ├── ClassOfStateOfIntentionallyConstructedObjectBuilder.java │ │ ├── ClassOfStateOfOrdinaryBiologicalObjectBuilder.java │ │ ├── ClassOfStateOfOrdinaryFunctionalObjectBuilder.java │ │ ├── ClassOfStateOfOrdinaryPhysicalObjectBuilder.java │ │ ├── ClassOfStateOfOrganizationBuilder.java │ │ ├── ClassOfStateOfOrganizationComponentBuilder.java │ │ ├── ClassOfStateOfPartyBuilder.java │ │ ├── ClassOfStateOfPersonBuilder.java │ │ ├── ClassOfStateOfPhysicalObjectBuilder.java │ │ ├── ClassOfStateOfPositionBuilder.java │ │ ├── ClassOfStateOfSalesProductInstanceBuilder.java │ │ ├── ClassOfStateOfSignBuilder.java │ │ ├── ClassOfStateOfSociallyConstructedActivityBuilder.java │ │ ├── ClassOfStateOfSociallyConstructedObjectBuilder.java │ │ ├── ClassOfStateOfSystemBuilder.java │ │ ├── ClassOfStateOfSystemComponentBuilder.java │ │ ├── ClassOfSystemBuilder.java │ │ ├── ClassOfSystemComponentBuilder.java │ │ ├── ClassificationBuilder.java │ │ ├── CompositionBuilder.java │ │ ├── ContractExecutionBuilder.java │ │ ├── ContractProcessBuilder.java │ │ ├── CurrencyBuilder.java │ │ ├── DefinedRelationshipBuilder.java │ │ ├── DefinitionBuilder.java │ │ ├── DescriptionBuilder.java │ │ ├── EmployeeBuilder.java │ │ ├── EmployerBuilder.java │ │ ├── EmploymentBuilder.java │ │ ├── EndingOfOwnershipBuilder.java │ │ ├── EnumeratedClassBuilder.java │ │ ├── EventBuilder.java │ │ ├── ExchangeOfGoodsAndMoneyBuilder.java │ │ ├── FunctionBuilder.java │ │ ├── FunctionalObjectBuilder.java │ │ ├── FunctionalSystemBuilder.java │ │ ├── FunctionalSystemComponentBuilder.java │ │ ├── IdentificationBuilder.java │ │ ├── IdentificationOfPhysicalQuantityBuilder.java │ │ ├── InPlaceBiologicalComponentBuilder.java │ │ ├── IndividualBuilder.java │ │ ├── InstalledFunctionalSystemComponentBuilder.java │ │ ├── InstalledObjectBuilder.java │ │ ├── IntentionallyConstructedObjectBuilder.java │ │ ├── KindOfActivityBuilder.java │ │ ├── KindOfAssociationBuilder.java │ │ ├── KindOfBiologicalObjectBuilder.java │ │ ├── KindOfBiologicalSystemBuilder.java │ │ ├── KindOfBiologicalSystemComponentBuilder.java │ │ ├── KindOfFunctionalObjectBuilder.java │ │ ├── KindOfFunctionalSystemBuilder.java │ │ ├── KindOfFunctionalSystemComponentBuilder.java │ │ ├── KindOfIndividualBuilder.java │ │ ├── KindOfIntentionallyConstructedObjectBuilder.java │ │ ├── KindOfOrdinaryBiologicalObjectBuilder.java │ │ ├── KindOfOrdinaryFunctionalObjectBuilder.java │ │ ├── KindOfOrdinaryPhysicalObjectBuilder.java │ │ ├── KindOfOrganizationBuilder.java │ │ ├── KindOfOrganizationComponentBuilder.java │ │ ├── KindOfPartyBuilder.java │ │ ├── KindOfPersonBuilder.java │ │ ├── KindOfPhysicalObjectBuilder.java │ │ ├── KindOfPhysicalPropertyBuilder.java │ │ ├── KindOfPhysicalQuantityBuilder.java │ │ ├── KindOfPositionBuilder.java │ │ ├── KindOfRelationshipWithRestrictionBuilder.java │ │ ├── KindOfRelationshipWithSignatureBuilder.java │ │ ├── KindOfSociallyConstructedObjectBuilder.java │ │ ├── KindOfSystemBuilder.java │ │ ├── KindOfSystemComponentBuilder.java │ │ ├── LanguageCommunityBuilder.java │ │ ├── MoneyAssetBuilder.java │ │ ├── OfferAndAcceptanceForGoodsBuilder.java │ │ ├── OfferBuilder.java │ │ ├── OfferForGoodsBuilder.java │ │ ├── OfferingBuilder.java │ │ ├── OrdinaryBiologicalObjectBuilder.java │ │ ├── OrdinaryFunctionalObjectBuilder.java │ │ ├── OrdinaryPhysicalObjectBuilder.java │ │ ├── OrganizationBuilder.java │ │ ├── OrganizationComponentBuilder.java │ │ ├── OwnerBuilder.java │ │ ├── OwnershipBuilder.java │ │ ├── ParticipantBuilder.java │ │ ├── ParticipantInActivityOrAssociationBuilder.java │ │ ├── PartyBuilder.java │ │ ├── PatternBuilder.java │ │ ├── PeriodOfTimeBuilder.java │ │ ├── PersonBuilder.java │ │ ├── PersonInPositionBuilder.java │ │ ├── PhysicalObjectBuilder.java │ │ ├── PhysicalPropertyBuilder.java │ │ ├── PhysicalPropertyRangeBuilder.java │ │ ├── PhysicalQuantityBuilder.java │ │ ├── PhysicalQuantityRangeBuilder.java │ │ ├── PlanBuilder.java │ │ ├── PointInTimeBuilder.java │ │ ├── PositionBuilder.java │ │ ├── PossibleWorldBuilder.java │ │ ├── PriceBuilder.java │ │ ├── ProductBrandBuilder.java │ │ ├── ProductOfferingBuilder.java │ │ ├── ReachingAgreementBuilder.java │ │ ├── RecognizingLanguageCommunityBuilder.java │ │ ├── RelationshipBuilder.java │ │ ├── RepresentationByPatternBuilder.java │ │ ├── RepresentationBySignBuilder.java │ │ ├── RequirementBuilder.java │ │ ├── RequirementSpecificationBuilder.java │ │ ├── RoleBuilder.java │ │ ├── SaleOfGoodsBuilder.java │ │ ├── SalesProductBuilder.java │ │ ├── SalesProductInstanceBuilder.java │ │ ├── SalesProductVersionBuilder.java │ │ ├── ScaleBuilder.java │ │ ├── SignBuilder.java │ │ ├── SociallyConstructedActivityBuilder.java │ │ ├── SociallyConstructedObjectBuilder.java │ │ ├── SpatioTemporalExtentBuilder.java │ │ ├── SpecializationBuilder.java │ │ ├── StateBuilder.java │ │ ├── StateOfActivityBuilder.java │ │ ├── StateOfAmountOfMoneyBuilder.java │ │ ├── StateOfAssociationBuilder.java │ │ ├── StateOfBiologicalObjectBuilder.java │ │ ├── StateOfBiologicalSystemBuilder.java │ │ ├── StateOfBiologicalSystemComponentBuilder.java │ │ ├── StateOfFunctionalObjectBuilder.java │ │ ├── StateOfFunctionalSystemBuilder.java │ │ ├── StateOfFunctionalSystemComponentBuilder.java │ │ ├── StateOfIntentionallyConstructedObjectBuilder.java │ │ ├── StateOfLanguageCommunityBuilder.java │ │ ├── StateOfOrdinaryBiologicalObjectBuilder.java │ │ ├── StateOfOrdinaryFunctionalObjectBuilder.java │ │ ├── StateOfOrdinaryPhysicalObjectBuilder.java │ │ ├── StateOfOrganizationBuilder.java │ │ ├── StateOfOrganizationComponentBuilder.java │ │ ├── StateOfPartyBuilder.java │ │ ├── StateOfPersonBuilder.java │ │ ├── StateOfPhysicalObjectBuilder.java │ │ ├── StateOfPositionBuilder.java │ │ ├── StateOfSalesProductInstanceBuilder.java │ │ ├── StateOfSignBuilder.java │ │ ├── StateOfSociallyConstructedActivityBuilder.java │ │ ├── StateOfSociallyConstructedObjectBuilder.java │ │ ├── StateOfSystemBuilder.java │ │ ├── StateOfSystemComponentBuilder.java │ │ ├── SystemBuilder.java │ │ ├── SystemComponentBuilder.java │ │ ├── TemporalCompositionBuilder.java │ │ ├── ThingBuilder.java │ │ ├── TransferOfOwnershipBuilder.java │ │ ├── TransferOfOwnershipOfMoneyBuilder.java │ │ ├── TransfereeBuilder.java │ │ ├── TransferorBuilder.java │ │ ├── UnitOfMeasureBuilder.java │ │ └── package-info.java │ └── test │ └── java │ └── uk │ └── gov │ └── gchq │ └── magmacore │ └── hqdm │ └── rdfbuilders │ └── PersonBuilderTest.java ├── hqdm ├── pom.xml └── src │ ├── main │ └── java │ │ ├── module-info.java │ │ └── uk │ │ └── gov │ │ └── gchq │ │ └── magmacore │ │ └── hqdm │ │ ├── exception │ │ ├── HqdmException.java │ │ └── package-info.java │ │ ├── extensions │ │ ├── ExtensionService.java │ │ └── ExtensionServiceProvider.java │ │ ├── model │ │ ├── AbstractObject.java │ │ ├── AcceptanceOfOffer.java │ │ ├── AcceptanceOfOfferForGoods.java │ │ ├── Activity.java │ │ ├── Aggregation.java │ │ ├── AgreeContract.java │ │ ├── AgreementExecution.java │ │ ├── AgreementProcess.java │ │ ├── AmountOfMoney.java │ │ ├── Asset.java │ │ ├── Association.java │ │ ├── BeginningOfOwnership.java │ │ ├── BiologicalObject.java │ │ ├── BiologicalSystem.java │ │ ├── BiologicalSystemComponent.java │ │ ├── Class.java │ │ ├── ClassOfAbstractObject.java │ │ ├── ClassOfActivity.java │ │ ├── ClassOfAgreeContract.java │ │ ├── ClassOfAgreementExecution.java │ │ ├── ClassOfAgreementProcess.java │ │ ├── ClassOfAmountOfMoney.java │ │ ├── ClassOfAssociation.java │ │ ├── ClassOfBiologicalObject.java │ │ ├── ClassOfBiologicalSystem.java │ │ ├── ClassOfBiologicalSystemComponent.java │ │ ├── ClassOfClass.java │ │ ├── ClassOfClassOfSpatioTemporalExtent.java │ │ ├── ClassOfContractExecution.java │ │ ├── ClassOfContractProcess.java │ │ ├── ClassOfEvent.java │ │ ├── ClassOfFunctionalObject.java │ │ ├── ClassOfFunctionalSystem.java │ │ ├── ClassOfFunctionalSystemComponent.java │ │ ├── ClassOfInPlaceBiologicalComponent.java │ │ ├── ClassOfIndividual.java │ │ ├── ClassOfInstalledFunctionalSystemComponent.java │ │ ├── ClassOfInstalledObject.java │ │ ├── ClassOfIntentionallyConstructedObject.java │ │ ├── ClassOfOffer.java │ │ ├── ClassOfOrdinaryBiologicalObject.java │ │ ├── ClassOfOrdinaryFunctionalObject.java │ │ ├── ClassOfOrdinaryPhysicalObject.java │ │ ├── ClassOfOrganization.java │ │ ├── ClassOfOrganizationComponent.java │ │ ├── ClassOfParticipant.java │ │ ├── ClassOfParty.java │ │ ├── ClassOfPeriodOfTime.java │ │ ├── ClassOfPerson.java │ │ ├── ClassOfPersonInPosition.java │ │ ├── ClassOfPhysicalObject.java │ │ ├── ClassOfPhysicalProperty.java │ │ ├── ClassOfPhysicalQuantity.java │ │ ├── ClassOfPointInTime.java │ │ ├── ClassOfPosition.java │ │ ├── ClassOfPossibleWorld.java │ │ ├── ClassOfReachingAgreement.java │ │ ├── ClassOfRelationship.java │ │ ├── ClassOfRepresentation.java │ │ ├── ClassOfSalesProductInstance.java │ │ ├── ClassOfSign.java │ │ ├── ClassOfSociallyConstructedActivity.java │ │ ├── ClassOfSociallyConstructedObject.java │ │ ├── ClassOfSpatioTemporalExtent.java │ │ ├── ClassOfState.java │ │ ├── ClassOfStateOfActivity.java │ │ ├── ClassOfStateOfAmountOfMoney.java │ │ ├── ClassOfStateOfAssociation.java │ │ ├── ClassOfStateOfBiologicalObject.java │ │ ├── ClassOfStateOfBiologicalSystem.java │ │ ├── ClassOfStateOfBiologicalSystemComponent.java │ │ ├── ClassOfStateOfFunctionalObject.java │ │ ├── ClassOfStateOfFunctionalSystem.java │ │ ├── ClassOfStateOfFunctionalSystemComponent.java │ │ ├── ClassOfStateOfIntentionallyConstructedObject.java │ │ ├── ClassOfStateOfOrdinaryBiologicalObject.java │ │ ├── ClassOfStateOfOrdinaryFunctionalObject.java │ │ ├── ClassOfStateOfOrdinaryPhysicalObject.java │ │ ├── ClassOfStateOfOrganization.java │ │ ├── ClassOfStateOfOrganizationComponent.java │ │ ├── ClassOfStateOfParty.java │ │ ├── ClassOfStateOfPerson.java │ │ ├── ClassOfStateOfPhysicalObject.java │ │ ├── ClassOfStateOfPosition.java │ │ ├── ClassOfStateOfSalesProductInstance.java │ │ ├── ClassOfStateOfSign.java │ │ ├── ClassOfStateOfSociallyConstructedActivity.java │ │ ├── ClassOfStateOfSociallyConstructedObject.java │ │ ├── ClassOfStateOfSystem.java │ │ ├── ClassOfStateOfSystemComponent.java │ │ ├── ClassOfSystem.java │ │ ├── ClassOfSystemComponent.java │ │ ├── Classification.java │ │ ├── Composition.java │ │ ├── ContractExecution.java │ │ ├── ContractProcess.java │ │ ├── Currency.java │ │ ├── DefinedRelationship.java │ │ ├── Definition.java │ │ ├── Description.java │ │ ├── Employee.java │ │ ├── Employer.java │ │ ├── Employment.java │ │ ├── EndingOfOwnership.java │ │ ├── EnumeratedClass.java │ │ ├── Event.java │ │ ├── ExchangeOfGoodsAndMoney.java │ │ ├── Function_.java │ │ ├── FunctionalObject.java │ │ ├── FunctionalSystem.java │ │ ├── FunctionalSystemComponent.java │ │ ├── Identification.java │ │ ├── IdentificationOfPhysicalQuantity.java │ │ ├── InPlaceBiologicalComponent.java │ │ ├── Individual.java │ │ ├── InstalledFunctionalSystemComponent.java │ │ ├── InstalledObject.java │ │ ├── IntentionallyConstructedObject.java │ │ ├── KindOfActivity.java │ │ ├── KindOfAssociation.java │ │ ├── KindOfBiologicalObject.java │ │ ├── KindOfBiologicalSystem.java │ │ ├── KindOfBiologicalSystemComponent.java │ │ ├── KindOfFunctionalObject.java │ │ ├── KindOfFunctionalSystem.java │ │ ├── KindOfFunctionalSystemComponent.java │ │ ├── KindOfIndividual.java │ │ ├── KindOfIntentionallyConstructedObject.java │ │ ├── KindOfOrdinaryBiologicalObject.java │ │ ├── KindOfOrdinaryFunctionalObject.java │ │ ├── KindOfOrdinaryPhysicalObject.java │ │ ├── KindOfOrganization.java │ │ ├── KindOfOrganizationComponent.java │ │ ├── KindOfParty.java │ │ ├── KindOfPerson.java │ │ ├── KindOfPhysicalObject.java │ │ ├── KindOfPhysicalProperty.java │ │ ├── KindOfPhysicalQuantity.java │ │ ├── KindOfPosition.java │ │ ├── KindOfRelationshipWithRestriction.java │ │ ├── KindOfRelationshipWithSignature.java │ │ ├── KindOfSociallyConstructedObject.java │ │ ├── KindOfSystem.java │ │ ├── KindOfSystemComponent.java │ │ ├── LanguageCommunity.java │ │ ├── MoneyAsset.java │ │ ├── Offer.java │ │ ├── OfferAndAcceptanceForGoods.java │ │ ├── OfferForGoods.java │ │ ├── Offering.java │ │ ├── OrdinaryBiologicalObject.java │ │ ├── OrdinaryFunctionalObject.java │ │ ├── OrdinaryPhysicalObject.java │ │ ├── Organization.java │ │ ├── OrganizationComponent.java │ │ ├── Owner.java │ │ ├── Ownership.java │ │ ├── Participant.java │ │ ├── ParticipantInActivityOrAssociation.java │ │ ├── Party.java │ │ ├── Pattern.java │ │ ├── PeriodOfTime.java │ │ ├── Person.java │ │ ├── PersonInPosition.java │ │ ├── PhysicalObject.java │ │ ├── PhysicalProperty.java │ │ ├── PhysicalPropertyRange.java │ │ ├── PhysicalQuantity.java │ │ ├── PhysicalQuantityRange.java │ │ ├── Plan.java │ │ ├── PointInTime.java │ │ ├── Position.java │ │ ├── PossibleWorld.java │ │ ├── Price.java │ │ ├── ProductBrand.java │ │ ├── ProductOffering.java │ │ ├── ReachingAgreement.java │ │ ├── RecognizingLanguageCommunity.java │ │ ├── Relationship.java │ │ ├── RepresentationByPattern.java │ │ ├── RepresentationBySign.java │ │ ├── Requirement.java │ │ ├── RequirementSpecification.java │ │ ├── Role.java │ │ ├── SaleOfGoods.java │ │ ├── SalesProduct.java │ │ ├── SalesProductInstance.java │ │ ├── SalesProductVersion.java │ │ ├── Scale.java │ │ ├── Sign.java │ │ ├── SociallyConstructedActivity.java │ │ ├── SociallyConstructedObject.java │ │ ├── SpatioTemporalExtent.java │ │ ├── Specialization.java │ │ ├── State.java │ │ ├── StateOfActivity.java │ │ ├── StateOfAmountOfMoney.java │ │ ├── StateOfAssociation.java │ │ ├── StateOfBiologicalObject.java │ │ ├── StateOfBiologicalSystem.java │ │ ├── StateOfBiologicalSystemComponent.java │ │ ├── StateOfFunctionalObject.java │ │ ├── StateOfFunctionalSystem.java │ │ ├── StateOfFunctionalSystemComponent.java │ │ ├── StateOfIntentionallyConstructedObject.java │ │ ├── StateOfLanguageCommunity.java │ │ ├── StateOfOrdinaryBiologicalObject.java │ │ ├── StateOfOrdinaryFunctionalObject.java │ │ ├── StateOfOrdinaryPhysicalObject.java │ │ ├── StateOfOrganization.java │ │ ├── StateOfOrganizationComponent.java │ │ ├── StateOfParty.java │ │ ├── StateOfPerson.java │ │ ├── StateOfPhysicalObject.java │ │ ├── StateOfPosition.java │ │ ├── StateOfSalesProductInstance.java │ │ ├── StateOfSign.java │ │ ├── StateOfSociallyConstructedActivity.java │ │ ├── StateOfSociallyConstructedObject.java │ │ ├── StateOfSystem.java │ │ ├── StateOfSystemComponent.java │ │ ├── System.java │ │ ├── SystemComponent.java │ │ ├── TemporalComposition.java │ │ ├── Thing.java │ │ ├── TransferOfOwnership.java │ │ ├── TransferOfOwnershipOfMoney.java │ │ ├── Transferee.java │ │ ├── Transferor.java │ │ ├── UnitOfMeasure.java │ │ ├── impl │ │ │ ├── AbstractObjectImpl.java │ │ │ ├── AcceptanceOfOfferForGoodsImpl.java │ │ │ ├── AcceptanceOfOfferImpl.java │ │ │ ├── ActivityImpl.java │ │ │ ├── AggregationImpl.java │ │ │ ├── AgreeContractImpl.java │ │ │ ├── AgreementExecutionImpl.java │ │ │ ├── AgreementProcessImpl.java │ │ │ ├── AmountOfMoneyImpl.java │ │ │ ├── AssetImpl.java │ │ │ ├── AssociationImpl.java │ │ │ ├── BeginningOfOwnershipImpl.java │ │ │ ├── BiologicalObjectImpl.java │ │ │ ├── BiologicalSystemComponentImpl.java │ │ │ ├── BiologicalSystemImpl.java │ │ │ ├── ClassImpl.java │ │ │ ├── ClassOfAbstractObjectImpl.java │ │ │ ├── ClassOfActivityImpl.java │ │ │ ├── ClassOfAgreeContractImpl.java │ │ │ ├── ClassOfAgreementExecutionImpl.java │ │ │ ├── ClassOfAgreementProcessImpl.java │ │ │ ├── ClassOfAmountOfMoneyImpl.java │ │ │ ├── ClassOfAssociationImpl.java │ │ │ ├── ClassOfBiologicalObjectImpl.java │ │ │ ├── ClassOfBiologicalSystemComponentImpl.java │ │ │ ├── ClassOfBiologicalSystemImpl.java │ │ │ ├── ClassOfClassImpl.java │ │ │ ├── ClassOfClassOfSpatioTemporalExtentImpl.java │ │ │ ├── ClassOfContractExecutionImpl.java │ │ │ ├── ClassOfContractProcessImpl.java │ │ │ ├── ClassOfEventImpl.java │ │ │ ├── ClassOfFunctionalObjectImpl.java │ │ │ ├── ClassOfFunctionalSystemComponentImpl.java │ │ │ ├── ClassOfFunctionalSystemImpl.java │ │ │ ├── ClassOfInPlaceBiologicalComponentImpl.java │ │ │ ├── ClassOfIndividualImpl.java │ │ │ ├── ClassOfInstalledFunctionalSystemComponentImpl.java │ │ │ ├── ClassOfInstalledObjectImpl.java │ │ │ ├── ClassOfIntentionallyConstructedObjectImpl.java │ │ │ ├── ClassOfOfferImpl.java │ │ │ ├── ClassOfOrdinaryBiologicalObjectImpl.java │ │ │ ├── ClassOfOrdinaryFunctionalObjectImpl.java │ │ │ ├── ClassOfOrdinaryPhysicalObjectImpl.java │ │ │ ├── ClassOfOrganizationComponentImpl.java │ │ │ ├── ClassOfOrganizationImpl.java │ │ │ ├── ClassOfParticipantImpl.java │ │ │ ├── ClassOfPartyImpl.java │ │ │ ├── ClassOfPeriodOfTimeImpl.java │ │ │ ├── ClassOfPersonImpl.java │ │ │ ├── ClassOfPersonInPositionImpl.java │ │ │ ├── ClassOfPhysicalObjectImpl.java │ │ │ ├── ClassOfPhysicalPropertyImpl.java │ │ │ ├── ClassOfPhysicalQuantityImpl.java │ │ │ ├── ClassOfPointInTimeImpl.java │ │ │ ├── ClassOfPositionImpl.java │ │ │ ├── ClassOfPossibleWorldImpl.java │ │ │ ├── ClassOfReachingAgreementImpl.java │ │ │ ├── ClassOfRelationshipImpl.java │ │ │ ├── ClassOfRepresentationImpl.java │ │ │ ├── ClassOfSalesProductInstanceImpl.java │ │ │ ├── ClassOfSignImpl.java │ │ │ ├── ClassOfSociallyConstructedActivityImpl.java │ │ │ ├── ClassOfSociallyConstructedObjectImpl.java │ │ │ ├── ClassOfSpatioTemporalExtentImpl.java │ │ │ ├── ClassOfStateImpl.java │ │ │ ├── ClassOfStateOfActivityImpl.java │ │ │ ├── ClassOfStateOfAmountOfMoneyImpl.java │ │ │ ├── ClassOfStateOfAssociationImpl.java │ │ │ ├── ClassOfStateOfBiologicalObjectImpl.java │ │ │ ├── ClassOfStateOfBiologicalSystemComponentImpl.java │ │ │ ├── ClassOfStateOfBiologicalSystemImpl.java │ │ │ ├── ClassOfStateOfFunctionalObjectImpl.java │ │ │ ├── ClassOfStateOfFunctionalSystemComponentImpl.java │ │ │ ├── ClassOfStateOfFunctionalSystemImpl.java │ │ │ ├── ClassOfStateOfIntentionallyConstructedObjectImpl.java │ │ │ ├── ClassOfStateOfOrdinaryBiologicalObjectImpl.java │ │ │ ├── ClassOfStateOfOrdinaryFunctionalObjectImpl.java │ │ │ ├── ClassOfStateOfOrdinaryPhysicalObjectImpl.java │ │ │ ├── ClassOfStateOfOrganizationComponentImpl.java │ │ │ ├── ClassOfStateOfOrganizationImpl.java │ │ │ ├── ClassOfStateOfPartyImpl.java │ │ │ ├── ClassOfStateOfPersonImpl.java │ │ │ ├── ClassOfStateOfPhysicalObjectImpl.java │ │ │ ├── ClassOfStateOfPositionImpl.java │ │ │ ├── ClassOfStateOfSalesProductInstanceImpl.java │ │ │ ├── ClassOfStateOfSignImpl.java │ │ │ ├── ClassOfStateOfSociallyConstructedActivityImpl.java │ │ │ ├── ClassOfStateOfSociallyConstructedObjectImpl.java │ │ │ ├── ClassOfStateOfSystemComponentImpl.java │ │ │ ├── ClassOfStateOfSystemImpl.java │ │ │ ├── ClassOfSystemComponentImpl.java │ │ │ ├── ClassOfSystemImpl.java │ │ │ ├── ClassificationImpl.java │ │ │ ├── CompositionImpl.java │ │ │ ├── ContractExecutionImpl.java │ │ │ ├── ContractProcessImpl.java │ │ │ ├── CurrencyImpl.java │ │ │ ├── DefinedRelationshipImpl.java │ │ │ ├── DefinitionImpl.java │ │ │ ├── DescriptionImpl.java │ │ │ ├── EmployeeImpl.java │ │ │ ├── EmployerImpl.java │ │ │ ├── EmploymentImpl.java │ │ │ ├── EndingOfOwnershipImpl.java │ │ │ ├── EnumeratedClassImpl.java │ │ │ ├── EventImpl.java │ │ │ ├── ExchangeOfGoodsAndMoneyImpl.java │ │ │ ├── FunctionImpl.java │ │ │ ├── FunctionalObjectImpl.java │ │ │ ├── FunctionalSystemComponentImpl.java │ │ │ ├── FunctionalSystemImpl.java │ │ │ ├── IdentificationImpl.java │ │ │ ├── IdentificationOfPhysicalQuantityImpl.java │ │ │ ├── InPlaceBiologicalComponentImpl.java │ │ │ ├── IndividualImpl.java │ │ │ ├── InstalledFunctionalSystemComponentImpl.java │ │ │ ├── InstalledObjectImpl.java │ │ │ ├── IntentionallyConstructedObjectImpl.java │ │ │ ├── KindOfActivityImpl.java │ │ │ ├── KindOfAssociationImpl.java │ │ │ ├── KindOfBiologicalObjectImpl.java │ │ │ ├── KindOfBiologicalSystemComponentImpl.java │ │ │ ├── KindOfBiologicalSystemImpl.java │ │ │ ├── KindOfFunctionalObjectImpl.java │ │ │ ├── KindOfFunctionalSystemComponentImpl.java │ │ │ ├── KindOfFunctionalSystemImpl.java │ │ │ ├── KindOfIndividualImpl.java │ │ │ ├── KindOfIntentionallyConstructedObjectImpl.java │ │ │ ├── KindOfOrdinaryBiologicalObjectImpl.java │ │ │ ├── KindOfOrdinaryFunctionalObjectImpl.java │ │ │ ├── KindOfOrdinaryPhysicalObjectImpl.java │ │ │ ├── KindOfOrganizationComponentImpl.java │ │ │ ├── KindOfOrganizationImpl.java │ │ │ ├── KindOfPartyImpl.java │ │ │ ├── KindOfPersonImpl.java │ │ │ ├── KindOfPhysicalObjectImpl.java │ │ │ ├── KindOfPhysicalPropertyImpl.java │ │ │ ├── KindOfPhysicalQuantityImpl.java │ │ │ ├── KindOfPositionImpl.java │ │ │ ├── KindOfRelationshipWithRestrictionImpl.java │ │ │ ├── KindOfRelationshipWithSignatureImpl.java │ │ │ ├── KindOfSociallyConstructedObjectImpl.java │ │ │ ├── KindOfSystemComponentImpl.java │ │ │ ├── KindOfSystemImpl.java │ │ │ ├── LanguageCommunityImpl.java │ │ │ ├── MoneyAssetImpl.java │ │ │ ├── OfferAndAcceptanceForGoodsImpl.java │ │ │ ├── OfferForGoodsImpl.java │ │ │ ├── OfferImpl.java │ │ │ ├── OfferingImpl.java │ │ │ ├── OrdinaryBiologicalObjectImpl.java │ │ │ ├── OrdinaryFunctionalObjectImpl.java │ │ │ ├── OrdinaryPhysicalObjectImpl.java │ │ │ ├── OrganizationComponentImpl.java │ │ │ ├── OrganizationImpl.java │ │ │ ├── OwnerImpl.java │ │ │ ├── OwnershipImpl.java │ │ │ ├── ParticipantImpl.java │ │ │ ├── ParticipantInActivityOrAssociationImpl.java │ │ │ ├── PartyImpl.java │ │ │ ├── PatternImpl.java │ │ │ ├── PeriodOfTimeImpl.java │ │ │ ├── PersonImpl.java │ │ │ ├── PersonInPositionImpl.java │ │ │ ├── PhysicalObjectImpl.java │ │ │ ├── PhysicalPropertyImpl.java │ │ │ ├── PhysicalPropertyRangeImpl.java │ │ │ ├── PhysicalQuantityImpl.java │ │ │ ├── PhysicalQuantityRangeImpl.java │ │ │ ├── PlanImpl.java │ │ │ ├── PointInTimeImpl.java │ │ │ ├── PositionImpl.java │ │ │ ├── PossibleWorldImpl.java │ │ │ ├── PriceImpl.java │ │ │ ├── ProductBrandImpl.java │ │ │ ├── ProductOfferingImpl.java │ │ │ ├── ReachingAgreementImpl.java │ │ │ ├── RecognizingLanguageCommunityImpl.java │ │ │ ├── RelationshipImpl.java │ │ │ ├── RepresentationByPatternImpl.java │ │ │ ├── RepresentationBySignImpl.java │ │ │ ├── RequirementImpl.java │ │ │ ├── RequirementSpecificationImpl.java │ │ │ ├── RoleImpl.java │ │ │ ├── SaleOfGoodsImpl.java │ │ │ ├── SalesProductImpl.java │ │ │ ├── SalesProductInstanceImpl.java │ │ │ ├── SalesProductVersionImpl.java │ │ │ ├── ScaleImpl.java │ │ │ ├── SignImpl.java │ │ │ ├── SociallyConstructedActivityImpl.java │ │ │ ├── SociallyConstructedObjectImpl.java │ │ │ ├── SpatioTemporalExtentImpl.java │ │ │ ├── SpecializationImpl.java │ │ │ ├── StateImpl.java │ │ │ ├── StateOfActivityImpl.java │ │ │ ├── StateOfAmountOfMoneyImpl.java │ │ │ ├── StateOfAssociationImpl.java │ │ │ ├── StateOfBiologicalObjectImpl.java │ │ │ ├── StateOfBiologicalSystemComponentImpl.java │ │ │ ├── StateOfBiologicalSystemImpl.java │ │ │ ├── StateOfFunctionalObjectImpl.java │ │ │ ├── StateOfFunctionalSystemComponentImpl.java │ │ │ ├── StateOfFunctionalSystemImpl.java │ │ │ ├── StateOfIntentionallyConstructedObjectImpl.java │ │ │ ├── StateOfLanguageCommunityImpl.java │ │ │ ├── StateOfOrdinaryBiologicalObjectImpl.java │ │ │ ├── StateOfOrdinaryFunctionalObjectImpl.java │ │ │ ├── StateOfOrdinaryPhysicalObjectImpl.java │ │ │ ├── StateOfOrganizationComponentImpl.java │ │ │ ├── StateOfOrganizationImpl.java │ │ │ ├── StateOfPartyImpl.java │ │ │ ├── StateOfPersonImpl.java │ │ │ ├── StateOfPhysicalObjectImpl.java │ │ │ ├── StateOfPositionImpl.java │ │ │ ├── StateOfSalesProductInstanceImpl.java │ │ │ ├── StateOfSignImpl.java │ │ │ ├── StateOfSociallyConstructedActivityImpl.java │ │ │ ├── StateOfSociallyConstructedObjectImpl.java │ │ │ ├── StateOfSystemComponentImpl.java │ │ │ ├── StateOfSystemImpl.java │ │ │ ├── SystemComponentImpl.java │ │ │ ├── SystemImpl.java │ │ │ ├── TemporalCompositionImpl.java │ │ │ ├── ThingImpl.java │ │ │ ├── TransferOfOwnershipImpl.java │ │ │ ├── TransferOfOwnershipOfMoneyImpl.java │ │ │ ├── TransfereeImpl.java │ │ │ ├── TransferorImpl.java │ │ │ ├── UnitOfMeasureImpl.java │ │ │ └── package-info.java │ │ └── package-info.java │ │ ├── pojo │ │ ├── HqdmObject.java │ │ ├── Top.java │ │ └── package-info.java │ │ ├── rdf │ │ ├── HqdmObjectFactory.java │ │ ├── exception │ │ │ ├── IriException.java │ │ │ └── package-info.java │ │ ├── iri │ │ │ ├── HQDM.java │ │ │ ├── HqdmIri.java │ │ │ ├── IRI.java │ │ │ ├── IriBase.java │ │ │ ├── RDFS.java │ │ │ └── package-info.java │ │ ├── package-info.java │ │ └── util │ │ │ ├── Pair.java │ │ │ ├── Triples.java │ │ │ └── package-info.java │ │ └── services │ │ ├── ClassServices.java │ │ ├── DynamicObjects.java │ │ ├── RelationshipServices.java │ │ ├── SpatioTemporalExtentServices.java │ │ └── package-info.java │ └── test │ └── java │ └── uk │ └── gov │ └── gchq │ └── magmacore │ └── hqdm │ ├── pojo │ └── HqdmObjectTest.java │ └── services │ └── DynamicObjectsTest.java ├── java-formatter.xml ├── model-extension-example ├── README.md ├── pom.xml └── src │ └── main │ ├── java │ ├── module-info.java │ └── uk │ │ └── gov │ │ └── gchq │ │ └── magmacore │ │ └── examples │ │ └── extensions │ │ ├── ext │ │ ├── HqdmExtensionService.java │ │ └── HqdmExtensionServiceProvider.java │ │ └── model │ │ ├── Child.java │ │ ├── ChildImpl.java │ │ ├── Constants.java │ │ ├── Parent.java │ │ ├── ParentChildAssociation.java │ │ ├── ParentChildAssociationImpl.java │ │ ├── ParentImpl.java │ │ ├── UkLimitedCompany.java │ │ ├── UkLimitedCompanyImpl.java │ │ ├── UkSoftwareDevelopmentCompany.java │ │ └── UkSoftwareDevelopmentCompanyImpl.java │ └── resources │ └── META-INF │ └── services │ └── uk.gov.gchq.magmacore.hqdm.extensions.ExtensionServiceProvider └── pom.xml /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # To get started with Dependabot version updates, you'll need to specify which 2 | # package ecosystems to update and where the package manifests are located. 3 | # Please see the documentation for all configuration options: 4 | # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 5 | 6 | version: 2 7 | updates: 8 | - package-ecosystem: "maven" # See documentation for possible values 9 | directory: "/" # Location of package manifests 10 | schedule: 11 | interval: "weekly" 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | .vscode 3 | .project 4 | .settings/ 5 | .classpath 6 | target/ 7 | bin/ 8 | tdb/ 9 | out 10 | *.code-workspace 11 | *.iml 12 | .DS_Store 13 | .factorypath 14 | .devcontainer 15 | 16 | 17 | # Compiled class file 18 | *.class 19 | 20 | # Log file 21 | *.log 22 | 23 | # BlueJ files 24 | *.ctxt 25 | 26 | # Mobile Tools for Java (J2ME) 27 | .mtj.tmp/ 28 | 29 | # Package Files 30 | *.jar 31 | *.war 32 | *.nar 33 | *.ear 34 | *.zip 35 | *.tar.gz 36 | *.rar 37 | 38 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 39 | hs_err_pid* 40 | 41 | # Vim files 42 | *.swp 43 | tags 44 | .vim/ 45 | -------------------------------------------------------------------------------- /checkstyle-suppressions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /core/src/main/java/uk/gov/gchq/magmacore/database/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | /** 16 | * Provides means of storing and interacting with Magma Core databases, either as in-memory object 17 | * collections, or persistent RDF triplestores. 18 | */ 19 | package uk.gov.gchq.magmacore.database; 20 | -------------------------------------------------------------------------------- /core/src/main/java/uk/gov/gchq/magmacore/database/query/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | /** 16 | * Provides classes for building and performing SPARQL queries. 17 | */ 18 | package uk.gov.gchq.magmacore.database.query; 19 | -------------------------------------------------------------------------------- /core/src/main/java/uk/gov/gchq/magmacore/database/validation/ValidationReportEntry.java: -------------------------------------------------------------------------------- 1 | package uk.gov.gchq.magmacore.database.validation; 2 | 3 | /** 4 | * An implementation agnostic model validation report entry. 5 | */ 6 | public record ValidationReportEntry(String type, Object additionalInformation, String description) { 7 | } 8 | -------------------------------------------------------------------------------- /core/src/main/java/uk/gov/gchq/magmacore/exception/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | /** 16 | * Exceptions arising from Magma Core code. 17 | */ 18 | package uk.gov.gchq.magmacore.exception; 19 | -------------------------------------------------------------------------------- /core/src/main/java/uk/gov/gchq/magmacore/service/dto/SignPatternDto.java: -------------------------------------------------------------------------------- 1 | package uk.gov.gchq.magmacore.service.dto; 2 | 3 | /** 4 | * A Data Transfer Object for sign and pattern data. 5 | * 6 | * @param sign Some sign. 7 | * @param pattern Some pattern. 8 | * @param representationByPattern Some representationByPattern. 9 | */ 10 | public record SignPatternDto(String sign, String pattern, String representationByPattern) { 11 | } 12 | -------------------------------------------------------------------------------- /core/src/main/java/uk/gov/gchq/magmacore/service/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | /** 16 | * Services for interacting with Magma Core Databases. 17 | */ 18 | package uk.gov.gchq.magmacore.service; 19 | -------------------------------------------------------------------------------- /core/src/main/java/uk/gov/gchq/magmacore/service/transformation/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | /** 16 | * Transformations that can be applied to a {@link uk.gov.gchq.magmacore.service.MagmaCoreService}. 17 | */ 18 | package uk.gov.gchq.magmacore.service.transformation; 19 | -------------------------------------------------------------------------------- /core/src/main/java/uk/gov/gchq/magmacore/util/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | /** 16 | * Utilities for Magma Core. 17 | */ 18 | package uk.gov.gchq.magmacore.util; 19 | -------------------------------------------------------------------------------- /examples/src/main/java/uk/gov/gchq/magmacore/examples/data/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | /** 16 | * Example data sets for demonstrating building and using HQDM models with Magma Core. 17 | */ 18 | package uk.gov.gchq.magmacore.examples.data; 19 | -------------------------------------------------------------------------------- /examples/src/main/java/uk/gov/gchq/magmacore/examples/service/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | /** 16 | * Services for creating and interacting with Magma Core databases. 17 | */ 18 | package uk.gov.gchq.magmacore.examples.service; 19 | -------------------------------------------------------------------------------- /examples/src/main/java/uk/gov/gchq/magmacore/examples/util/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | /** 16 | * Utilities for Magma Core examples classes. 17 | */ 18 | package uk.gov.gchq.magmacore.examples.util; 19 | -------------------------------------------------------------------------------- /examples/src/test/java/uk/gov/gchq/magmacore/examples/functional/FunctionalProgrammingExampleTest.java: -------------------------------------------------------------------------------- 1 | package uk.gov.gchq.magmacore.examples.functional; 2 | 3 | import org.junit.Test; 4 | 5 | /** 6 | * Execute the Functional Programming example for using MagmaCore. 7 | */ 8 | public class FunctionalProgrammingExampleTest { 9 | 10 | /** 11 | * A unit test to ensure that the FunctionalProgrammingExample code is executed as part of a build. 12 | */ 13 | @Test 14 | public void test() { 15 | FunctionalProgrammingExample.main(null); 16 | } 17 | } 18 | 19 | -------------------------------------------------------------------------------- /hqdm-canonical/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | /** 16 | * Classes for constructing HQDM objects as RDF triples. 17 | */ 18 | module uk.gov.gchq.magmacore.hqdm.canonical { 19 | requires transitive uk.gov.gchq.magmacore; 20 | 21 | exports uk.gov.gchq.magmacore.hqdm.rdfbuilders; 22 | } 23 | -------------------------------------------------------------------------------- /hqdm-canonical/src/main/java/uk/gov/gchq/magmacore/hqdm/rdfbuilders/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | /** 16 | * Builders for HQDM entities. 17 | */ 18 | package uk.gov.gchq.magmacore.hqdm.rdfbuilders; 19 | -------------------------------------------------------------------------------- /hqdm/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | uk.gov.gchq.magma-core 6 | magma-core 7 | 4.0.1-SNAPSHOT 8 | 9 | 10 | uk.gov.gchq.magma-core 11 | hqdm 12 | 4.0.1-SNAPSHOT 13 | 14 | hqdm 15 | 16 | 17 | UTF-8 18 | 17 19 | 20 | 21 | 22 | 23 | junit 24 | junit 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/exception/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | /** 16 | * Exceptions arising from HQDM code. 17 | */ 18 | package uk.gov.gchq.magmacore.hqdm.exception; 19 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/extensions/ExtensionService.java: -------------------------------------------------------------------------------- 1 | package uk.gov.gchq.magmacore.hqdm.extensions; 2 | 3 | import uk.gov.gchq.magmacore.hqdm.model.Thing; 4 | import uk.gov.gchq.magmacore.hqdm.rdf.iri.IRI; 5 | 6 | /** 7 | * An SPI interface for extending HQDM. 8 | * 9 | *

10 | * See: HQDM Model Extension 11 | * Example for an example of how to write an extension module. 12 | *

13 | */ 14 | public interface ExtensionService { 15 | /** 16 | * Create and entity with the given typeName, or return null if the typeName is not recognised by 17 | * the ExtensionService. 18 | * 19 | * @param typeName A String with the required type to be created. 20 | * @param iri The IRI to use when creating the instance. 21 | * @return A Thing if the typeName is recognised, null otherwise. 22 | */ 23 | T createEntity(final String typeName, final IRI iri); 24 | } 25 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/extensions/ExtensionServiceProvider.java: -------------------------------------------------------------------------------- 1 | package uk.gov.gchq.magmacore.hqdm.extensions; 2 | 3 | import java.util.Map; 4 | 5 | import uk.gov.gchq.magmacore.hqdm.model.Thing; 6 | import uk.gov.gchq.magmacore.hqdm.rdf.iri.IRI; 7 | 8 | /** 9 | * An SPI interface for extending HQDM. 10 | * 11 | *

12 | * See: HQDM Model Extension 13 | * Example for an example of how to write an extension module. 14 | *

15 | */ 16 | public interface ExtensionServiceProvider { 17 | /** 18 | * Create an instance of the extension service and ask it to register any new HQDM types in the Map. 19 | * 20 | * @param map a Map of IRI to Class so that MagmaCore can dynamically create Entities when found in 21 | * a database. 22 | * @return ExtensionService instance. 23 | */ 24 | ExtensionService createService(final Map> map); 25 | } 26 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/AbstractObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link Thing} that does not exist in space or time. 19 | */ 20 | public interface AbstractObject extends Thing { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/AcceptanceOfOffer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link SociallyConstructedActivity} that is the acceptance of an {@link Offer} as 19 | * {@code part_of} an {@link AgreeContract}. 20 | */ 21 | public interface AcceptanceOfOffer extends SociallyConstructedActivity { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/AcceptanceOfOfferForGoods.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ReachingAgreement} that consists of one or more {@link Offer}s of a 19 | * {@link TransferOfOwnershipOfMoney} for a {@link TransferOfOwnership} of goods where one 20 | * {@link Offer} is accepted. 21 | */ 22 | public interface AcceptanceOfOfferForGoods extends AcceptanceOfOffer { 23 | } 24 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Activity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * An {@link Individual} that consists of its {@link Participant}s and causes some {@link Event}. 19 | */ 20 | public interface Activity extends Individual, StateOfActivity, ParticipantInActivityOrAssociation { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Aggregation.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link Relationship} where the whole is at least the sum of the parts. 19 | */ 20 | public interface Aggregation extends Relationship { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/AgreeContract.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ReachingAgreement} that consists of an {@link Offer} of some {@link Thing} in exchange 19 | * for some consideration, and an {@link AcceptanceOfOffer}. 20 | */ 21 | public interface AgreeContract extends ReachingAgreement { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/AgreementExecution.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link SociallyConstructedActivity} where two or more parties carry out a course of action 19 | * previously agreed upon. 20 | */ 21 | public interface AgreementExecution extends SociallyConstructedActivity { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/AmountOfMoney.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfAmountOfMoney}, that is also a {@link SociallyConstructedObject}, and a 19 | * {@link PhysicalObject} that is intended and accepted for use as a means of exchange. 20 | */ 21 | public interface AmountOfMoney extends StateOfAmountOfMoney, SociallyConstructedObject, PhysicalObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Asset.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfPhysicalObject} that is also a {@link Participant} that is the 19 | * {@code participant_in} an {@link Ownership} that is owned. 20 | */ 21 | public interface Asset extends Participant { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Association.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * An {@link Individual} that {@code consists_of} the {@link Participant}s that are associated, and 19 | * where the {@link Participant}s are {@code part_of} the same {@link PeriodOfTime}. 20 | */ 21 | public interface Association extends Individual, StateOfAssociation, ParticipantInActivityOrAssociation { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/BeginningOfOwnership.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * An {@link Event} that is the {@code beginning} of an {@link Ownership}. 19 | */ 20 | public interface BeginningOfOwnership extends Event { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/BiologicalObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfBiologicalObject} that is also a {@link PhysicalObject} that sustains itself and 19 | * reproduces. 20 | */ 21 | public interface BiologicalObject extends StateOfBiologicalObject, PhysicalObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/BiologicalSystem.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * Any {@link System} that is also an {@link OrdinaryBiologicalObject} and a 19 | * {@link StateOfBiologicalSystem}. 20 | */ 21 | public interface BiologicalSystem extends OrdinaryBiologicalObject, StateOfBiologicalSystem, System { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Class.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * An {@link AbstractObject} that has members and whose identity is defined by its membership. 19 | */ 20 | public interface Class extends AbstractObject { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfAbstractObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link Class} that is {@link AbstractObject} or any its subsets. 19 | */ 20 | public interface ClassOfAbstractObject extends Class { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfIndividual} and a {@link ClassOfStateOfActivity} that is {@link Activity} or any 19 | * of its possible subsets. 20 | */ 21 | public interface ClassOfActivity extends ClassOfIndividual, ClassOfStateOfActivity { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfAgreeContract.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfReachingAgreement} that is {@link AgreeContract} or any of its subsets. 19 | */ 20 | public interface ClassOfAgreeContract extends ClassOfReachingAgreement { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfAgreementExecution.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfSociallyConstructedActivity} that is {@link AgreementExecution} or any of its 19 | * subsets. 20 | */ 21 | public interface ClassOfAgreementExecution extends ClassOfSociallyConstructedActivity { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfAgreementProcess.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfSociallyConstructedActivity} that is {@link AgreementProcess} or any of its 19 | * subsets. 20 | */ 21 | public interface ClassOfAgreementProcess extends ClassOfSociallyConstructedActivity { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfAssociation.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfStateOfAssociation} that is also a {@link ClassOfIndividual} that is 19 | * {@link Association} or any of its subsets. 20 | */ 21 | public interface ClassOfAssociation extends ClassOfIndividual, ClassOfStateOfAssociation { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfBiologicalObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfStateOfBiologicalObject} and {@link ClassOfPhysicalObject} that is 19 | * {@link BiologicalObject} or any of its subsets. 20 | */ 21 | public interface ClassOfBiologicalObject extends ClassOfStateOfBiologicalObject, ClassOfPhysicalObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfClassOfSpatioTemporalExtent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfClass} that is {@link ClassOfSpatioTemporalExtent} or any of its subsets. 19 | */ 20 | public interface ClassOfClassOfSpatioTemporalExtent extends ClassOfClass { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfContractExecution.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfAgreementExecution} that is {@link ContractExecution} or any of its subsets. 19 | */ 20 | public interface ClassOfContractExecution extends ClassOfAgreementExecution { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfContractProcess.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfAgreementProcess} that is {@link ContractProcess} or any of its subsets. 19 | */ 20 | public interface ClassOfContractProcess extends ClassOfAgreementProcess { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfSpatioTemporalExtent} that is {@link Event} or any of its possible subsets. 19 | */ 20 | public interface ClassOfEvent extends ClassOfSpatioTemporalExtent { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfOffer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfSociallyConstructedActivity} that is {@link Offer} or any of its subsets. 19 | */ 20 | public interface ClassOfOffer extends ClassOfSociallyConstructedActivity { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfOrdinaryPhysicalObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfStateOfOrdinaryPhysicalObject} that is also a {@link ClassOfPhysicalObject} that 19 | * is {@link OrdinaryPhysicalObject} or any of its subsets. 20 | */ 21 | public interface ClassOfOrdinaryPhysicalObject extends ClassOfStateOfOrdinaryPhysicalObject, ClassOfPhysicalObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfParticipant.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfStateOfPhysicalObject} that is {@link Participant} or any of its subsets. 19 | */ 20 | public interface ClassOfParticipant extends ClassOfStateOfPhysicalObject { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfParty.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfSystem} that is {@link Party} or any of its subtypes. 19 | */ 20 | public interface ClassOfParty extends ClassOfSystem, ClassOfStateOfParty { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfPeriodOfTime.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfState} that is {@link PeriodOfTime} or any of its subsets. 19 | */ 20 | public interface ClassOfPeriodOfTime extends ClassOfState { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfPerson.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfBiologicalSystem}, {@link ClassOfStateOfPerson} and {@link ClassOfParty} that is 19 | * {@link Person} or any of its subsets. 20 | */ 21 | public interface ClassOfPerson extends ClassOfBiologicalSystem, ClassOfStateOfPerson, ClassOfParty { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfPersonInPosition.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfInstalledObject} that is also a {@link ClassOfStateOfPosition} that is 19 | * {@link PersonInPosition} or any of its subsets. 20 | */ 21 | public interface ClassOfPersonInPosition extends ClassOfInstalledObject, ClassOfStateOfPosition { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfPhysicalObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfIndividual} and a {@link ClassOfStateOfPhysicalObject} that is 19 | * {@link PhysicalObject} or any of its subsets. 20 | */ 21 | public interface ClassOfPhysicalObject extends ClassOfIndividual, ClassOfStateOfPhysicalObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfPhysicalProperty.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfClassOfSpatioTemporalExtent} that is {@link PhysicalProperty} or any of its 19 | * subsets. 20 | */ 21 | public interface ClassOfPhysicalProperty extends ClassOfClassOfSpatioTemporalExtent { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfPhysicalQuantity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfPhysicalProperty} that is {@link PhysicalQuantity} or any of its subsets. 19 | */ 20 | public interface ClassOfPhysicalQuantity extends ClassOfPhysicalProperty { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfPointInTime.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfEvent} that is {@link PointInTime} or any of its subsets. 19 | */ 20 | public interface ClassOfPointInTime extends ClassOfEvent { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfPosition.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfStateOfPosition} that is also a {@link ClassOfOrganizationComponent} that is 19 | * {@link Position} or any of its subsets. 20 | */ 21 | public interface ClassOfPosition extends ClassOfStateOfPosition, ClassOfOrganizationComponent { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfPossibleWorld.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfIndividual} that is also a {@link ClassOfPeriodOfTime} that is 19 | * {@link PossibleWorld} or any of its subsets. 20 | */ 21 | public interface ClassOfPossibleWorld extends ClassOfIndividual, ClassOfPeriodOfTime { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfReachingAgreement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfSociallyConstructedActivity} that is {@link ReachingAgreement} or any of its 19 | * subsets. 20 | */ 21 | public interface ClassOfReachingAgreement extends ClassOfSociallyConstructedActivity { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfRelationship.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link Class} that is {@link Relationship} or any of its subsets. 19 | */ 20 | public interface ClassOfRelationship extends ClassOfAbstractObject { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfRepresentation.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfAssociation} that is {@link ClassOfRepresentation} or any of its subsets. This is 19 | * omitted, in error, in the original HQDM documentation. 20 | */ 21 | public interface ClassOfRepresentation extends ClassOfAssociation { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfSign.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfStateOfSign} that is also a {@link ClassOfSociallyConstructedObject} that is 19 | * {@link Sign} or any of its subsets. 20 | */ 21 | public interface ClassOfSign extends ClassOfStateOfSign, ClassOfSociallyConstructedObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfSociallyConstructedActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfSociallyConstructedObject} and {@link ClassOfActivity} that is 19 | * {@link SociallyConstructedObject} or any of its subsets. 20 | */ 21 | public interface ClassOfSociallyConstructedActivity extends ClassOfActivity, ClassOfSociallyConstructedObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfSociallyConstructedObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfIntentionallyConstructedObject} that is {@link SociallyConstructedObject} or any 19 | * of its subsets. 20 | */ 21 | public interface ClassOfSociallyConstructedObject 22 | extends ClassOfIntentionallyConstructedObject, ClassOfStateOfSociallyConstructedObject { 23 | } 24 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfSpatioTemporalExtent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link Class} that is {@link SpatioTemporalExtent} or any of its subsets. 19 | */ 20 | public interface ClassOfSpatioTemporalExtent extends Class { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfState.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfSpatioTemporalExtent} that is {@link State} or any of its subsets. 19 | */ 20 | public interface ClassOfState extends ClassOfSpatioTemporalExtent { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfStateOfActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfState} that is {@link StateOfActivity} or any of its subsets. 19 | */ 20 | public interface ClassOfStateOfActivity extends ClassOfState { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfStateOfAssociation.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfState} that is {@link StateOfAssociation} or any of its subsets. 19 | */ 20 | public interface ClassOfStateOfAssociation extends ClassOfState { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfStateOfBiologicalObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfStateOfPhysicalObject} that is {@link StateOfBiologicalObject} or any of its 19 | * subsets. 20 | */ 21 | public interface ClassOfStateOfBiologicalObject extends ClassOfStateOfPhysicalObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfStateOfBiologicalSystem.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfStateOfOrdinaryBiologicalObject} and {@link ClassOfStateOfSystem} that is 19 | * {@link StateOfBiologicalSystem} or any of its subsets. 20 | */ 21 | public interface ClassOfStateOfBiologicalSystem extends ClassOfStateOfOrdinaryBiologicalObject, ClassOfStateOfSystem { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfStateOfIntentionallyConstructedObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfState} that is {@link StateOfIntentionallyConstructedObject} or any of its 19 | * subsets. 20 | */ 21 | public interface ClassOfStateOfIntentionallyConstructedObject extends ClassOfState { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfStateOfOrdinaryPhysicalObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfStateOfPhysicalObject} that is {@link StateOfOrdinaryPhysicalObject} or any of 19 | * its subsets. 20 | */ 21 | public interface ClassOfStateOfOrdinaryPhysicalObject extends ClassOfStateOfPhysicalObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfStateOfOrganization.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfStateOfSociallyConstructedObject} that is also a {@link ClassOfStateOfParty} that 19 | * is {@link StateOfOrganization} or any of its subsets. 20 | */ 21 | public interface ClassOfStateOfOrganization extends ClassOfStateOfSociallyConstructedObject, ClassOfStateOfParty { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfStateOfParty.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfStateOfSystem} that is {@link StateOfParty} or any of its subtypes. 19 | */ 20 | public interface ClassOfStateOfParty extends ClassOfStateOfSystem { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfStateOfPerson.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfStateOfBiologicalSystem} and {@link ClassOfStateOfParty} that is 19 | * {@link StateOfPerson} or any of its subsets. 20 | */ 21 | public interface ClassOfStateOfPerson extends ClassOfStateOfBiologicalSystem, ClassOfStateOfParty { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfStateOfPhysicalObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfState} that is {@link StateOfPhysicalObject} or any of its subsets. 19 | */ 20 | public interface ClassOfStateOfPhysicalObject extends ClassOfState { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfStateOfPosition.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfStateOfOrganizationComponent} that is {@link StateOfPosition} and any of its 19 | * subsets. 20 | */ 21 | public interface ClassOfStateOfPosition extends ClassOfStateOfOrganizationComponent { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfStateOfSalesProductInstance.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfStateOfOrdinaryFunctionalObject} that is {@link StateOfSalesProductInstance} or 19 | * any of its subsets. 20 | */ 21 | public interface ClassOfStateOfSalesProductInstance extends ClassOfStateOfOrdinaryFunctionalObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfStateOfSign.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfStateOfSociallyConstructedObject} that is {@link StateOfSign} or any of its 19 | * subsets. 20 | */ 21 | public interface ClassOfStateOfSign extends ClassOfStateOfSociallyConstructedObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfStateOfSociallyConstructedObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfStateOfIntentionallyConstructedObject} that is 19 | * {@link StateOfSociallyConstructedObject} or one of its subsets. 20 | */ 21 | public interface ClassOfStateOfSociallyConstructedObject extends ClassOfStateOfIntentionallyConstructedObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfStateOfSystem.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfStateOfOrdinaryPhysicalObject} that is {@link StateOfSystem} or any of its 19 | * subsets. 20 | */ 21 | public interface ClassOfStateOfSystem extends ClassOfStateOfOrdinaryPhysicalObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfStateOfSystemComponent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfStateOfPhysicalObject} that is {@link StateOfSystemComponent} or any of its 19 | * subsets. 20 | */ 21 | public interface ClassOfStateOfSystemComponent extends ClassOfStateOfPhysicalObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfSystem.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfStateOfSystem} that is also a {@link ClassOfOrdinaryPhysicalObject} that is 19 | * {@link System} or any of its subsets. 20 | */ 21 | public interface ClassOfSystem extends ClassOfStateOfSystem, ClassOfOrdinaryPhysicalObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ClassOfSystemComponent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfStateOfSystemComponent} that is also a {@link ClassOfPhysicalObject} that is 19 | * {@link SystemComponent} or any of its subsets. 20 | */ 21 | public interface ClassOfSystemComponent extends ClassOfStateOfSystemComponent, ClassOfPhysicalObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Classification.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link Relationship} where a {@link Thing} is a member of a class{@link Class}. 19 | * 20 | *

21 | * Note: This entity type is replicated as the {@code member__of} relationship. 22 | *

23 | */ 24 | public interface Classification extends Relationship { 25 | } 26 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Composition.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * An {@link Aggregation} where the {@code whole} is an arrangement of the parts that results in 19 | * emergent properties. 20 | */ 21 | public interface Composition extends Aggregation { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ContractExecution.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * An {@link AgreementExecution} that is the provision of some {@link Thing} in exchange for some 19 | * consideration. 20 | */ 21 | public interface ContractExecution extends AgreementExecution { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ContractProcess.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * An {@link AgreementProcess} that consists of an {@link AgreeContract} and a 19 | * {@link ContractExecution}. 20 | */ 21 | public interface ContractProcess extends AgreementProcess { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Currency.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfAmountOfMoney} that is the subset of {@link AmountOfMoney} that has as members 19 | * all the money issued by an issuing authority. 20 | */ 21 | public interface Currency extends ClassOfAmountOfMoney { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/DefinedRelationship.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link Relationship} that is defined by a {@link KindOfRelationshipWithSignature}. 19 | */ 20 | public interface DefinedRelationship extends Relationship { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Definition.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link RepresentationByPattern} that defines a {@link Class}. 19 | */ 20 | public interface Definition extends RepresentationByPattern { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Description.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link RepresentationByPattern} that describes some {@link Thing}. 19 | */ 20 | public interface Description extends RepresentationByPattern { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Employee.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfPerson} that is a {@code participant_in} an {@link Employment}. 19 | */ 20 | public interface Employee extends StateOfPerson, Participant { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Employer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfParty} that is a {@code participant_in} an {@link Employment}. 19 | */ 20 | public interface Employer extends StateOfParty, Participant { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Employment.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * An {@link Association} that consists of an {@link Employer} and an {@link Employee} where the 19 | * {@link Employer} pays the {@link Employee} to work for them. 20 | */ 21 | public interface Employment extends Association { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/EndingOfOwnership.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * An {@link Event} that is the {@code ending} of an {@link Ownership}. 19 | */ 20 | public interface EndingOfOwnership extends Event { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/EnumeratedClass.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link Class} where each {@code member__of} the {@link Class} is known. 19 | */ 20 | public interface EnumeratedClass extends Class { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Event.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link SpatioTemporalExtent} that has zero temporal thickness and may bound some 19 | * {@link SpatioTemporalExtent}. 20 | */ 21 | public interface Event extends SpatioTemporalExtent { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ExchangeOfGoodsAndMoney.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * An {@link AgreementExecution} that consists of a {@link TransferOfOwnership} of goods and a 19 | * {@link TransferOfOwnershipOfMoney}. 20 | */ 21 | public interface ExchangeOfGoodsAndMoney extends ContractExecution { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Function_.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A one-to-many {@link Relationship}. 19 | */ 20 | public interface Function_ extends Relationship { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/FunctionalObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * An {@link IntentionallyConstructedObject} that is also a {@link PhysicalObject} that has an 19 | * {@code intended_role}. 20 | */ 21 | public interface FunctionalObject extends IntentionallyConstructedObject, StateOfFunctionalObject, PhysicalObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/FunctionalSystem.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * Any {@link StateOfFunctionalSystem} that is also an {@link OrdinaryFunctionalObject} and a 19 | * {@link System}. 20 | */ 21 | public interface FunctionalSystem extends System, StateOfFunctionalSystem, OrdinaryFunctionalObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/FunctionalSystemComponent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * An {@link IntentionallyConstructedObject} that is a replaceable {@code component_of} a 19 | * {@link FunctionalSystem}. 20 | */ 21 | public interface FunctionalSystemComponent extends FunctionalObject, StateOfFunctionalSystemComponent, SystemComponent { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Identification.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link RepresentationByPattern} that is a surrogate for the {@link Thing} {@code represented}. 19 | */ 20 | public interface Identification extends RepresentationByPattern { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/InPlaceBiologicalComponent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * An {@link InstalledObject} that is also a {@link StateOfOrdinaryBiologicalObject} and a 19 | * {@link StateOfSystemComponent}. 20 | */ 21 | public interface InPlaceBiologicalComponent 22 | extends StateOfBiologicalSystemComponent, InstalledObject, StateOfOrdinaryBiologicalObject { 23 | } 24 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/KindOfActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfActivity} all of whose members are of the same kind. 19 | */ 20 | public interface KindOfActivity extends ClassOfActivity { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/KindOfAssociation.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfAssociation} where all the members are of the same kind. 19 | */ 20 | public interface KindOfAssociation extends ClassOfAssociation { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/KindOfBiologicalObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfBiologicalObject} and a {@link KindOfPhysicalObject} where each {@code member_of} 19 | * a {@link KindOfBiologicalObject} is of the same kind. 20 | */ 21 | public interface KindOfBiologicalObject extends ClassOfBiologicalObject, KindOfPhysicalObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/KindOfBiologicalSystem.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfBiologicalSystem} that is also a {@link KindOfSystem} all of whose members have a 19 | * natural {@link Role} that they play. 20 | */ 21 | public interface KindOfBiologicalSystem extends ClassOfBiologicalSystem, KindOfSystem { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/KindOfFunctionalSystem.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfFunctionalSystem} that is also a {@link KindOfSystem} where each 19 | * {@link KindOfFunctionalSystem} has members that are of the same kind. 20 | */ 21 | public interface KindOfFunctionalSystem extends ClassOfFunctionalSystem, KindOfSystem { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/KindOfIndividual.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfIndividual} where all the members possess attributes in common. 19 | */ 20 | public interface KindOfIndividual extends ClassOfIndividual { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/KindOfOrdinaryPhysicalObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfOrdinaryPhysicalObject} that is also a {@link KindOfPhysicalObject} where each 19 | * {@link OrdinaryPhysicalObject} has members that are of the same kind. 20 | */ 21 | public interface KindOfOrdinaryPhysicalObject extends ClassOfOrdinaryPhysicalObject, KindOfPhysicalObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/KindOfOrganization.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfOrdinaryPhysicalObject} that is also a {@link KindOfPhysicalObject} where each 19 | * {@link OrdinaryPhysicalObject} has members that are of the same kind. 20 | */ 21 | public interface KindOfOrganization extends ClassOfOrganization, KindOfParty, KindOfSociallyConstructedObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/KindOfParty.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfParty} that is also a {@link KindOfSystem} where all the members are of the same 19 | * kind. 20 | */ 21 | public interface KindOfParty extends ClassOfParty, KindOfSystem { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/KindOfPerson.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfPerson} that is also a {@link KindOfParty} whose members are all of the same 19 | * kind. 20 | */ 21 | public interface KindOfPerson extends KindOfParty, ClassOfPerson { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/KindOfPhysicalObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfPhysicalObject} that is also a {@link KindOfIndividual} where each 19 | * {@link PhysicalObject} has members that are of the same kind. 20 | */ 21 | public interface KindOfPhysicalObject extends ClassOfPhysicalObject, KindOfIndividual { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/KindOfPhysicalProperty.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfPhysicalProperty} where each {@code member_of} a {@link KindOfPhysicalProperty} 19 | * is of the same kind. 20 | */ 21 | public interface KindOfPhysicalProperty extends ClassOfPhysicalProperty { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/KindOfPosition.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfPosition} that is also a {@link KindOfOrganizationComponent} where all the 19 | * members are of the same kind. 20 | */ 21 | public interface KindOfPosition extends ClassOfPosition, KindOfOrganizationComponent { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/KindOfRelationshipWithRestriction.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link KindOfRelationshipWithSignature} where one or more {@code roles} have fixed players. 19 | */ 20 | public interface KindOfRelationshipWithRestriction extends KindOfRelationshipWithSignature { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/KindOfSystem.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfSystem} that is also a {@link KindOfOrdinaryPhysicalObject} where each 19 | * {@code member_of} a {@link KindOfSystem} is of the same kind. 20 | */ 21 | public interface KindOfSystem extends ClassOfSystem, KindOfOrdinaryPhysicalObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/KindOfSystemComponent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfSystemComponent} that is also a {@link KindOfPhysicalObject} where all the 19 | * members are of the same kind. 20 | */ 21 | public interface KindOfSystemComponent extends ClassOfSystemComponent, KindOfPhysicalObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/MoneyAsset.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * An {@link Asset} that is a {@link StateOfAmountOfMoney}. 19 | */ 20 | public interface MoneyAsset extends Asset, StateOfAmountOfMoney { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Offer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link SociallyConstructedActivity} that proposes an exchange of some {@link Thing} for some 19 | * consideration. 20 | */ 21 | public interface Offer extends SociallyConstructedActivity { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/OfferAndAcceptanceForGoods.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ReachingAgreement} that {@code consists_of} exactly one {@link Offer} of a 19 | * {@link TransferOfOwnershipOfMoney} for exactly one {@link TransferOfOwnership} that is accepted. 20 | */ 21 | public interface OfferAndAcceptanceForGoods extends AgreeContract { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/OfferForGoods.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * An {@link Offer} of an {@link ExchangeOfGoodsAndMoney}. 19 | */ 20 | public interface OfferForGoods extends Offer { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Offering.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfOffer} that is for a {@link ClassOfIndividual}, at a {@link Price}, by a 19 | * {@link Party}, for a {@link PeriodOfTime}. 20 | */ 21 | public interface Offering extends ClassOfOffer { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/OrdinaryFunctionalObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * Any {@link StateOfOrdinaryFunctionalObject} and {@link OrdinaryPhysicalObject} that is a 19 | * {@link FunctionalObject}. 20 | */ 21 | public interface OrdinaryFunctionalObject 22 | extends FunctionalObject, StateOfOrdinaryFunctionalObject, OrdinaryPhysicalObject { 23 | } 24 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/OrdinaryPhysicalObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link PhysicalObject} that does not survive changing all its parts at once. 19 | */ 20 | public interface OrdinaryPhysicalObject extends PhysicalObject, StateOfOrdinaryPhysicalObject { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Organization.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfOrganization}, that is also a {@link Party}, and a 19 | * {@link SociallyConstructedObject} that is an organized body of people. 20 | */ 21 | public interface Organization extends StateOfOrganization, Party, SociallyConstructedObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Owner.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfParty} that is also a {@link Participant} that is a {@code participant_in} an 19 | * {@link Ownership}. 20 | */ 21 | public interface Owner extends StateOfParty, Participant { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Ownership.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * An {@link Association} that {@code consists_of} an {@link Owner} and an {@link Asset} where the 19 | * {@link Owner} owns the {@link Asset}. 20 | */ 21 | public interface Ownership extends Association { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Participant.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link State} that is a {@code participant_in} an {@link Activity} or {@link Association}. 19 | */ 20 | public interface Participant extends StateOfPhysicalObject { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ParticipantInActivityOrAssociation.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | import uk.gov.gchq.magmacore.hqdm.pojo.Top; 18 | 19 | /** 20 | * A SELECT where a {@link Participant} may be a {@code participant_in} an {@link Activity} or an 21 | * {@link Association}. 22 | */ 23 | public interface ParticipantInActivityOrAssociation extends Top { 24 | } 25 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Party.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfParty} that is also a {@link System} that is a {@link Person} or an 19 | * {@link Organization}. 20 | */ 21 | public interface Party extends StateOfParty, System { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Pattern.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfSign} where all the {@link Sign}s are of the same {@link Pattern}. 19 | */ 20 | public interface Pattern extends ClassOfSign { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/PeriodOfTime.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link State} that is a {@code temporal_part_of} some {@link PossibleWorld}. 19 | */ 20 | public interface PeriodOfTime extends State { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Person.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link BiologicalSystem} that is also, a {@link StateOfPerson}, and a {@link Party} that is a 19 | * human being. 20 | */ 21 | public interface Person extends BiologicalSystem, StateOfPerson, Party { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/PhysicalObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * An {@link Individual} that consists of a distribution of matter and/or energy. 19 | */ 20 | public interface PhysicalObject extends Individual, StateOfPhysicalObject { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/PhysicalProperty.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfState} that is some characteristic that is the same for each {@link State} that 19 | * possesses it (is a {@code member_of} it). 20 | */ 21 | public interface PhysicalProperty extends ClassOfState { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/PhysicalQuantity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link PhysicalQuantity} is a {@link PhysicalProperty} that is a measurable quantity of a 19 | * {@link KindOfPhysicalProperty}. 20 | */ 21 | public interface PhysicalQuantity extends PhysicalProperty { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/PhysicalQuantityRange.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link PhysicalPropertyRange} that ranges over {@link PhysicalQuantity} values. 19 | */ 20 | public interface PhysicalQuantityRange extends PhysicalPropertyRange { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Plan.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link PossibleWorld} that some party would like to bring about. 19 | */ 20 | public interface Plan extends PossibleWorld { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/PointInTime.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * An {@link Event} that is all of space at an instant from some viewpoint. 19 | */ 20 | public interface PointInTime extends Event { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/PossibleWorld.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * An {@link Individual} that is a complete spatio-temporal history of some possible world. 19 | */ 20 | public interface PossibleWorld extends Individual, PeriodOfTime { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Price.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfAmountOfMoney} that is the {@code consideration_by_class} in an {@link Offering}. 19 | */ 20 | public interface Price extends ClassOfAmountOfMoney { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ProductBrand.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfSalesProductInstance} that is a set of {@link SalesProductInstance} sold under a 19 | * brand name. 20 | */ 21 | public interface ProductBrand extends ClassOfSalesProductInstance { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ProductOffering.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * An {@link Offering} that is for a {@link SalesProduct}. 19 | */ 20 | public interface ProductOffering extends Offering { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/ReachingAgreement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link SociallyConstructedActivity} where two or more parties determine a course of action. 19 | */ 20 | public interface ReachingAgreement extends SociallyConstructedActivity { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/RecognizingLanguageCommunity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfLanguageCommunity} that recognizes what a {@link Pattern} is intended to 19 | * represent. 20 | */ 21 | public interface RecognizingLanguageCommunity extends StateOfLanguageCommunity, Participant { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Relationship.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * An {@link AbstractObject} that is what one {@link Thing} has to do with one or more others. 19 | */ 20 | public interface Relationship extends AbstractObject { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/RepresentationByPattern.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfRepresentation} where the {@link Sign} in all the members are members of the 19 | * {@link Pattern} specified. 20 | */ 21 | public interface RepresentationByPattern extends ClassOfRepresentation { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/RepresentationBySign.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * An {@link Association} of a {@link Sign} and a {@link RecognizingLanguageCommunity} that 19 | * recognizes the {@link Sign} as representing some {@link Thing}. 20 | */ 21 | public interface RepresentationBySign extends Association { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Requirement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link SpatioTemporalExtent} that is {@code part_of_plan} at least one {@link Plan} and is 19 | * {@code defined_by} exactly one {@link RequirementSpecification}. 20 | */ 21 | public interface Requirement extends SpatioTemporalExtent { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/RequirementSpecification.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfSpatioTemporalExtent} that is the {@code intersection_of} one or more 19 | * {@link ClassOfState}. 20 | */ 21 | public interface RequirementSpecification extends ClassOfSpatioTemporalExtent { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Role.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfParticipant} where each member participates in the same way in an 19 | * {@link Activity} or {@link Association}. 20 | */ 21 | public interface Role extends ClassOfParticipant { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/SaleOfGoods.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * An {@link AgreementProcess} that consists of an {@link OfferAndAcceptanceForGoods} and an 19 | * {@link ExchangeOfGoodsAndMoney}. 20 | */ 21 | public interface SaleOfGoods extends ContractProcess { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/SalesProduct.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfSalesProductInstance} that is a set of {@link SalesProductInstance} sold under 19 | * the same product name. 20 | */ 21 | public interface SalesProduct extends ClassOfSalesProductInstance { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/SalesProductInstance.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * An {@link OrdinaryFunctionalObject} that is produced in order to be sold. 19 | */ 20 | public interface SalesProductInstance extends StateOfSalesProductInstance, OrdinaryFunctionalObject { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/SalesProductVersion.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link ClassOfSalesProductInstance} that is the customer facing specification of a version of a 19 | * {@link SalesProduct}. 20 | */ 21 | public interface SalesProductVersion extends ClassOfSalesProductInstance { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Scale.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A scale is a function from {@link KindOfPhysicalQuantity} to the real numbers. 19 | */ 20 | public interface Scale extends Function_ { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Sign.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfSign}, that is also a {@link SociallyConstructedObject}, and a 19 | * {@link Participant} that represents some {@link Thing} for some community in one or more 20 | * {@code representation_by_sign}. 21 | */ 22 | public interface Sign extends SociallyConstructedObject, StateOfSign, Participant { 23 | } 24 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/SociallyConstructedActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * Any {@link SociallyConstructedObject} that is also an {@link Activity}. 19 | */ 20 | public interface SociallyConstructedActivity extends Activity, SociallyConstructedObject { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/SociallyConstructedObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * An {@link IntentionallyConstructedObject} that is necessarily constructed by agreement or at 19 | * least acquiescence of many people. 20 | */ 21 | public interface SociallyConstructedObject extends IntentionallyConstructedObject, StateOfSociallyConstructedObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/SpatioTemporalExtent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link Thing} that exists in time and space. 19 | */ 20 | public interface SpatioTemporalExtent extends Thing { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Specialization.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link Relationship} where each {@code member__of} the {@code subclass} is a {@code member__of} 19 | * the {@code superclass}. 20 | */ 21 | public interface Specialization extends Relationship { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/State.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link SpatioTemporalExtent} that is an {@link Individual} or a {@code temporal_part_of} some 19 | * {@link Individual}. 20 | */ 21 | public interface State extends SpatioTemporalExtent { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/StateOfActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A state that is an {@link Activity} or a {@code temporal_part_of} an {@link Activity}. 19 | */ 20 | public interface StateOfActivity extends State { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/StateOfAmountOfMoney.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link SociallyConstructedObject} that is also a {@link StateOfPhysicalObject} that is a 19 | * {@code temporal_part_of} an {@link AmountOfMoney}. 20 | */ 21 | public interface StateOfAmountOfMoney extends StateOfSociallyConstructedObject, StateOfPhysicalObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/StateOfAssociation.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link State} that is an {@link Association} or a {@code temporal_part_of} an 19 | * {@link Association}. 20 | */ 21 | public interface StateOfAssociation extends State { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/StateOfBiologicalObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfPhysicalObject} that is a {@link BiologicalObject} or a {@code temporal_part_of} 19 | * a {@link BiologicalObject}. 20 | */ 21 | public interface StateOfBiologicalObject extends StateOfPhysicalObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/StateOfBiologicalSystem.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfOrdinaryBiologicalObject} and {@link StateOfSystem} that is 19 | * {@link BiologicalSystem} or a {@code temporal_part_of} a {@link BiologicalSystem}. 20 | */ 21 | public interface StateOfBiologicalSystem extends StateOfOrdinaryBiologicalObject, StateOfSystem { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/StateOfFunctionalSystem.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * Any {@link StateOfOrdinaryFunctionalObject} that is also a {@link StateOfSystem}. 19 | */ 20 | public interface StateOfFunctionalSystem extends StateOfSystem, StateOfOrdinaryFunctionalObject { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/StateOfFunctionalSystemComponent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfIntentionallyConstructedObject} that is a {@link SystemComponent} or a 19 | * {@code temporal_part_of} a {@link SystemComponent}. 20 | */ 21 | public interface StateOfFunctionalSystemComponent extends StateOfFunctionalObject, StateOfSystemComponent { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/StateOfIntentionallyConstructedObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A state that is an {@link IntentionallyConstructedObject} or a {@code temporal_part_of} an 19 | * {@link IntentionallyConstructedObject}. 20 | */ 21 | public interface StateOfIntentionallyConstructedObject extends State { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/StateOfLanguageCommunity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfOrganization} that is a {@code temporal_part_of} a {@link LanguageCommunity}. 19 | */ 20 | public interface StateOfLanguageCommunity extends StateOfOrganization { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/StateOfOrdinaryFunctionalObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * Any {@link StateOfFunctionalObject} that is also a {@link StateOfOrdinaryPhysicalObject}. 19 | */ 20 | public interface StateOfOrdinaryFunctionalObject extends StateOfFunctionalObject, StateOfOrdinaryPhysicalObject { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/StateOfOrdinaryPhysicalObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfPhysicalObject} that is an {@link OrdinaryPhysicalObject} or a 19 | * {@code temporal_part_of} one. 20 | */ 21 | public interface StateOfOrdinaryPhysicalObject extends StateOfPhysicalObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/StateOfOrganization.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfParty} that is also a {@link StateOfSociallyConstructedObject} that is an 19 | * {@link Organization} or a {@code temporal_part_of} an {@link Organization}. 20 | */ 21 | public interface StateOfOrganization extends StateOfParty, StateOfSociallyConstructedObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/StateOfOrganizationComponent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfSystemComponent} that is also a {@link StateOfSociallyConstructedObject} that is 19 | * a {@code temporal_part_of} an {@link OrganizationComponent}. 20 | */ 21 | public interface StateOfOrganizationComponent extends StateOfSystemComponent, StateOfSociallyConstructedObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/StateOfParty.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfSystem} that is a {@link Party} or a {@code temporal_part_of} a {@link Party}. 19 | */ 20 | public interface StateOfParty extends StateOfSystem { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/StateOfPerson.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfBiologicalSystem} and {@link StateOfParty} that is a {@link Person} or a 19 | * {@code temporal_part_of} a {@link Person}. 20 | */ 21 | public interface StateOfPerson extends StateOfBiologicalSystem, StateOfParty { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/StateOfPhysicalObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link State} that is a {@link PhysicalObject} or a {@code temporal_part_of} a 19 | * {@link PhysicalObject}. 20 | */ 21 | public interface StateOfPhysicalObject extends State { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/StateOfPosition.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfOrganizationComponent} that is a {@link Position} or a {@code temporal_part_of} a 19 | * {@link Position}. 20 | */ 21 | public interface StateOfPosition extends StateOfOrganizationComponent { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/StateOfSalesProductInstance.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfOrdinaryFunctionalObject} that is a {@link SalesProductInstance} or a 19 | * {@code temporal_part_of} one. 20 | */ 21 | public interface StateOfSalesProductInstance extends StateOfOrdinaryFunctionalObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/StateOfSign.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfSociallyConstructedObject} that is a {@link Sign} or a {@code temporal_part_of} a 19 | * {@link Sign}. 20 | */ 21 | public interface StateOfSign extends StateOfSociallyConstructedObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/StateOfSociallyConstructedActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * Any {@link StateOfSociallyConstructedObject} that is also a {@link StateOfActivity}. 19 | */ 20 | public interface StateOfSociallyConstructedActivity extends StateOfSociallyConstructedObject, StateOfActivity { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/StateOfSociallyConstructedObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfIntentionallyConstructedObject} that is a {@link SociallyConstructedObject} or a 19 | * {@code temporal_part_of} a {@link SociallyConstructedObject}. 20 | */ 21 | public interface StateOfSociallyConstructedObject extends StateOfIntentionallyConstructedObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/StateOfSystem.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfOrdinaryPhysicalObject} that is a {@link System} or a {@code temporal_part_of} a 19 | * {@link System}. 20 | */ 21 | public interface StateOfSystem extends StateOfOrdinaryPhysicalObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/StateOfSystemComponent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfPhysicalObject} that is a {@link SystemComponent} or a {@code temporal_part_of} a 19 | * {@link SystemComponent}. 20 | */ 21 | public interface StateOfSystemComponent extends StateOfPhysicalObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/System.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * An {@link OrdinaryPhysicalObject} that is an organized or connected group of 19 | * {@link PhysicalObject}. 20 | */ 21 | public interface System extends StateOfSystem, OrdinaryPhysicalObject { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/TemporalComposition.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link Composition} where the part is the entire {@code whole} spatially, but part of the 19 | * {@code whole} temporally. 20 | */ 21 | public interface TemporalComposition extends Composition { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/TransferOfOwnership.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link SociallyConstructedActivity} that ends one {@link Ownership} and begins another for 19 | * {@link Asset}s that are a {@code temporal_part_of} the same {@link PhysicalObject}. 20 | */ 21 | public interface TransferOfOwnership extends SociallyConstructedActivity { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/TransferOfOwnershipOfMoney.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link TransferOfOwnership} where the {@link Asset} is a {@link MoneyAsset}. 19 | */ 20 | public interface TransferOfOwnershipOfMoney extends TransferOfOwnership { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Transferee.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfParty} and {@link Participant} receiving {@link Ownership} in a 19 | * {@link TransferOfOwnership}. 20 | */ 21 | public interface Transferee extends StateOfParty, Participant { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/Transferor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A {@link StateOfParty} that is also a {@link Participant} that is a {@code temporal_part_of} an 19 | * {@link Owner} that is a {@code participant_in} one or more {@link TransferOfOwnership}. 20 | */ 21 | public interface Transferor extends StateOfParty, Participant { 22 | } 23 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/UnitOfMeasure.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | package uk.gov.gchq.magmacore.hqdm.model; 16 | 17 | /** 18 | * A plus one {@link Function_} for a {@link Scale}. 19 | */ 20 | public interface UnitOfMeasure extends Function_ { 21 | } 22 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/impl/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | /** 16 | * Basic implementations for HQDM Java objects defined in {@code uk.gov.gchq.magmacore.hqdm.model}. 17 | */ 18 | package uk.gov.gchq.magmacore.hqdm.model.impl; 19 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/model/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | /** 16 | * HQDM object interfaces defining HQDM class inheritance. 17 | */ 18 | package uk.gov.gchq.magmacore.hqdm.model; 19 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/pojo/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | /** 16 | * Classes for constructing HQDM entities as Java objects. 17 | */ 18 | package uk.gov.gchq.magmacore.hqdm.pojo; 19 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/rdf/exception/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | /** 16 | * RDF Exceptions arising from HQDM code. 17 | */ 18 | package uk.gov.gchq.magmacore.hqdm.rdf.exception; 19 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/rdf/iri/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | /** 16 | * Classes for constructing and using Internationalized Resource Identifiers (IRIs) with HQDM 17 | * objects. 18 | */ 19 | package uk.gov.gchq.magmacore.hqdm.rdf.iri; 20 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/rdf/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | /** 16 | * Classes for constructing HQDM entities as Java objects. 17 | */ 18 | package uk.gov.gchq.magmacore.hqdm.rdf; 19 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/rdf/util/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | /** 16 | * RDF utility classes for hqdm. 17 | */ 18 | package uk.gov.gchq.magmacore.hqdm.rdf.util; 19 | -------------------------------------------------------------------------------- /hqdm/src/main/java/uk/gov/gchq/magmacore/hqdm/services/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Crown Copyright 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 | * in compliance with the License. You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License 10 | * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 | * or implied. See the License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | 15 | /** 16 | * Services for creating HQDM objects and relationships. 17 | */ 18 | package uk.gov.gchq.magmacore.hqdm.services; 19 | -------------------------------------------------------------------------------- /model-extension-example/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Example module for extension of MagmaCore HQDM classes. 3 | */ 4 | module uk.gov.gchq.magmacore.examples.extensions { 5 | exports uk.gov.gchq.magmacore.examples.extensions.ext; 6 | exports uk.gov.gchq.magmacore.examples.extensions.model; 7 | 8 | requires transitive uk.gov.gchq.magmacore.hqdm; 9 | 10 | provides uk.gov.gchq.magmacore.hqdm.extensions.ExtensionServiceProvider 11 | with uk.gov.gchq.magmacore.examples.extensions.ext.HqdmExtensionServiceProvider; 12 | } 13 | -------------------------------------------------------------------------------- /model-extension-example/src/main/java/uk/gov/gchq/magmacore/examples/extensions/model/Child.java: -------------------------------------------------------------------------------- 1 | package uk.gov.gchq.magmacore.examples.extensions.model; 2 | 3 | import uk.gov.gchq.magmacore.hqdm.model.StateOfPerson; 4 | 5 | /** 6 | * A Person in the role of a Child in a Parent/Child relationship. 7 | */ 8 | public interface Child extends StateOfPerson { 9 | } 10 | -------------------------------------------------------------------------------- /model-extension-example/src/main/java/uk/gov/gchq/magmacore/examples/extensions/model/ChildImpl.java: -------------------------------------------------------------------------------- 1 | package uk.gov.gchq.magmacore.examples.extensions.model; 2 | 3 | import uk.gov.gchq.magmacore.hqdm.pojo.HqdmObject; 4 | import uk.gov.gchq.magmacore.hqdm.rdf.iri.IRI; 5 | import uk.gov.gchq.magmacore.hqdm.rdf.iri.RDFS; 6 | 7 | /** 8 | * An implementation of the Child interface. 9 | */ 10 | public class ChildImpl extends HqdmObject implements Child { 11 | /** 12 | * Constructor. 13 | * 14 | * @param id {@link IRI} 15 | */ 16 | public ChildImpl(final IRI id) { 17 | super(id); 18 | addValue(RDFS.RDF_TYPE, Constants.CHILD_IRI); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /model-extension-example/src/main/java/uk/gov/gchq/magmacore/examples/extensions/model/Parent.java: -------------------------------------------------------------------------------- 1 | package uk.gov.gchq.magmacore.examples.extensions.model; 2 | 3 | import uk.gov.gchq.magmacore.hqdm.model.StateOfPerson; 4 | 5 | /** 6 | * A Person in the role of a Parent. 7 | */ 8 | public interface Parent extends StateOfPerson { 9 | } 10 | -------------------------------------------------------------------------------- /model-extension-example/src/main/java/uk/gov/gchq/magmacore/examples/extensions/model/ParentChildAssociation.java: -------------------------------------------------------------------------------- 1 | package uk.gov.gchq.magmacore.examples.extensions.model; 2 | 3 | import uk.gov.gchq.magmacore.hqdm.model.Association; 4 | import uk.gov.gchq.magmacore.hqdm.rdf.iri.IRI; 5 | 6 | /** 7 | * A specialized Association representing human parent/child relationships. This association has 8 | * relations to it's participants for convenience. 9 | */ 10 | public interface ParentChildAssociation extends Association { 11 | /** 12 | * Mutator method. 13 | * 14 | * @param iri {@link IRI} 15 | */ 16 | void setParentIri(final IRI iri); 17 | 18 | IRI getParentIri(); 19 | 20 | /** 21 | * Mutator method. 22 | * 23 | * @param iri {@link IRI} 24 | */ 25 | void setChildIri(final IRI iri); 26 | 27 | IRI getChildIri(); 28 | } 29 | -------------------------------------------------------------------------------- /model-extension-example/src/main/java/uk/gov/gchq/magmacore/examples/extensions/model/ParentImpl.java: -------------------------------------------------------------------------------- 1 | package uk.gov.gchq.magmacore.examples.extensions.model; 2 | 3 | import uk.gov.gchq.magmacore.hqdm.pojo.HqdmObject; 4 | import uk.gov.gchq.magmacore.hqdm.rdf.iri.IRI; 5 | import uk.gov.gchq.magmacore.hqdm.rdf.iri.RDFS; 6 | 7 | /** 8 | * An implementation of the Parent interface. 9 | */ 10 | public class ParentImpl extends HqdmObject implements Parent { 11 | /** 12 | * Constructor. 13 | * 14 | * @param id {@link IRI} 15 | */ 16 | public ParentImpl(final IRI id) { 17 | super(id); 18 | addValue(RDFS.RDF_TYPE, Constants.PARENT_IRI); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /model-extension-example/src/main/java/uk/gov/gchq/magmacore/examples/extensions/model/UkLimitedCompany.java: -------------------------------------------------------------------------------- 1 | package uk.gov.gchq.magmacore.examples.extensions.model; 2 | 3 | import uk.gov.gchq.magmacore.hqdm.model.Organization; 4 | 5 | /** 6 | * An HQDM Extension interface to add a new entity type to MagmaCore. 7 | */ 8 | public interface UkLimitedCompany extends Organization { 9 | } 10 | -------------------------------------------------------------------------------- /model-extension-example/src/main/java/uk/gov/gchq/magmacore/examples/extensions/model/UkLimitedCompanyImpl.java: -------------------------------------------------------------------------------- 1 | package uk.gov.gchq.magmacore.examples.extensions.model; 2 | 3 | import uk.gov.gchq.magmacore.hqdm.pojo.HqdmObject; 4 | import uk.gov.gchq.magmacore.hqdm.rdf.iri.IRI; 5 | import uk.gov.gchq.magmacore.hqdm.rdf.iri.RDFS; 6 | 7 | /** 8 | * An HQDM Extension class to add a new entity type to MagmaCore. 9 | */ 10 | public class UkLimitedCompanyImpl extends HqdmObject implements UkLimitedCompany { 11 | /** 12 | * {@code UkLimitedCompany} constructor. 13 | * 14 | * @param id ID for the UkLimitedCompany. 15 | */ 16 | public UkLimitedCompanyImpl(final IRI id) { 17 | super(id); 18 | addValue(RDFS.RDF_TYPE, Constants.UK_LIMITED_COMPANY_IRI); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /model-extension-example/src/main/java/uk/gov/gchq/magmacore/examples/extensions/model/UkSoftwareDevelopmentCompany.java: -------------------------------------------------------------------------------- 1 | package uk.gov.gchq.magmacore.examples.extensions.model; 2 | 3 | /** 4 | * An HQDM Extension interface to add a new entity type to MagmaCore. 5 | */ 6 | public interface UkSoftwareDevelopmentCompany extends UkLimitedCompany { 7 | } 8 | -------------------------------------------------------------------------------- /model-extension-example/src/main/java/uk/gov/gchq/magmacore/examples/extensions/model/UkSoftwareDevelopmentCompanyImpl.java: -------------------------------------------------------------------------------- 1 | package uk.gov.gchq.magmacore.examples.extensions.model; 2 | 3 | import uk.gov.gchq.magmacore.hqdm.pojo.HqdmObject; 4 | import uk.gov.gchq.magmacore.hqdm.rdf.iri.IRI; 5 | import uk.gov.gchq.magmacore.hqdm.rdf.iri.RDFS; 6 | 7 | /** 8 | * An HQDM Extension class to add a new entity type to MagmaCore. 9 | */ 10 | public class UkSoftwareDevelopmentCompanyImpl extends HqdmObject implements UkLimitedCompany { 11 | /** 12 | * {@code UkSoftwareDevelopmentCompanyImpl} constructor. 13 | * 14 | * @param id ID for the {@code UkSoftwareDevelopmentCompany}. 15 | */ 16 | public UkSoftwareDevelopmentCompanyImpl(final IRI id) { 17 | super(id); 18 | addValue(RDFS.RDF_TYPE, Constants.UK_SOFTWARE_DEVELOPMENT_COMPANY_IRI); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /model-extension-example/src/main/resources/META-INF/services/uk.gov.gchq.magmacore.hqdm.extensions.ExtensionServiceProvider: -------------------------------------------------------------------------------- 1 | uk.gov.gchq.magmacore.examples.extensions.ext.HqdmExtensionServiceProvider 2 | --------------------------------------------------------------------------------