├── .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 |
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 |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 Map21 | * 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 | --------------------------------------------------------------------------------