From 5b9a60b0f15b113aa746b1ee52a3b5642bed69fc Mon Sep 17 00:00:00 2001 From: "Edward M. Kagan" Date: Sat, 27 Feb 2021 03:58:59 +0300 Subject: [PATCH] Json gen for universe --- .vscode/formatting.xml | 792 +++++++++--------- pom.xml | 3 +- .../main/java/link/pagan/traqtor/Traqtor.java | 54 ++ .../java/link/pagan/traqtor/Workspace.java | 2 +- ...DataTypeSchemaReferenceImplementation.java | 79 ++ .../link/pagan/traqtor/mapping/Mapping.java | 21 + .../pagan/traqtor/mapping/MappingEntry.java | 26 + .../pagan/traqtor/mapping/MappingSchema.java | 10 + .../traqtor/mapping/MappingSchemaImpl.java | 77 ++ .../mapping/backend/BackendMapping.java | 14 + .../mapping/frontend/FrontendMapping.java | 14 + .../traqtor/outdated/_api/BinaryCommand.java | 26 - .../traqtor/outdated/_api/Commanded.java | 9 - .../pagan/traqtor/outdated/_api/Executor.java | 33 - .../traqtor/outdated/_api/UnaryCommand.java | 77 -- .../_api/result/CommandExecResult.java | 42 - .../_api/result/CommandExecResultStatus.java | 27 - .../result/message/CommandExecMessage.java | 33 - .../message/CommandExecMessageStatus.java | 28 - .../link/pagan/traqtor/outdated/api/API.java | 298 ------- .../pagan/traqtor/outdated/api/Traqtor.java | 63 -- .../traqtor/outdated/api/project/Project.java | 40 - .../outdated/api/project/ProjectType.java | 74 -- .../api/project/backend/BackendProject.java | 22 - .../api/project/database/DatabaseProject.java | 22 - .../api/project/frontend/FrontendProject.java | 22 - .../api/project/universe/UniverseProject.java | 22 - .../outdated/api/workspace/Workspace.java | 188 ----- .../framework/data/DatabaseDataObject.java | 15 - .../outdated/framework/logic/Registry.java | 14 - .../outdated/framework/logic/Resource.java | 14 - .../outdated/framework/logic/Service.java | 14 - .../pagan/traqtor/outdated/generator/R.java | 30 - .../generator/blueprint/ProjectBlueprint.java | 20 - .../blueprint/backend/BackendBlueprint.java | 14 - .../blueprint/database/ColumnBlueprint.java | 27 - .../blueprint/database/DatabaseBlueprint.java | 19 - .../blueprint/database/SchemeBlueprint.java | 14 - .../blueprint/database/TableBlueprint.java | 19 - .../builder/ColumnBlueprintBuilder.java | 55 -- .../builder/DatabaseBlueprintBuilder.java | 57 -- .../builder/SchemeBlueprintBuilder.java | 46 - .../builder/TableBlueprintBuilder.java | 46 - .../blueprint/frontend/FrontendBlueprint.java | 14 - .../mdl/logic/EndpointBlueprint.java | 20 - .../mdl/logic/RegistryBlueprint.java | 18 - .../mdl/logic/ResourceBlueprint.java | 19 - .../blueprint/mdl/logic/ServiceBlueprint.java | 14 - .../permission/PermissionBlueprint.java | 16 - .../permission/PermissionDomainBlueprint.java | 20 - .../mdl/security/role/RoleBlueprint.java | 14 - .../blueprint/universe/AtomBlueprint.java | 57 -- .../blueprint/universe/LinkBlueprint.java | 54 -- .../blueprint/universe/LinkType.java | 41 - .../blueprint/universe/ParticleBlueprint.java | 53 -- .../blueprint/universe/UniverseBlueprint.java | 57 -- .../universe/build/AtomBlueprintBuilder.java | 57 -- .../universe/build/LinkBlueprintBuilder.java | 55 -- .../build/ParticleBlueprintBuilder.java | 40 - .../build/UniverseBlueprintBuilder.java | 73 -- .../schema/basic/EndpointSchemaImpl.java | 25 - ...DataTypeSchemaReferenceImplementation.java | 79 -- .../basic/data/mapping/MappingSchemaImpl.java | 59 -- .../outdated/schema/data/DataType.java | 19 - .../outdated/schema/data/DataTypeSchema.java | 17 - .../outdated/schema/data/mapping/Mapping.java | 27 - .../schema/data/mapping/MappingEntry.java | 35 - .../schema/data/mapping/MappingSchema.java | 14 - .../data/mapping/backend/BackendMapping.java | 17 - .../mapping/frontend/FrontendMapping.java | 17 - .../outdated/schema/logic/EndpointSchema.java | 18 - .../schema/logic/EndpointTemplate.java | 16 - .../pagan/traqtor/outdated/util/Name.java | 135 --- .../pagan/traqtor/outdated/util/Named.java | 11 - .../traqtor/outdated/util/Registrable.java | 11 - .../link/pagan/traqtor/project/Project.java | 15 +- .../backend/mapping/JavaBackendMapping.java | 91 +- .../project/database/DatabaseProject.java | 5 +- .../project/database/DatabaseSchema.java | 2 +- .../database/mapping/DatabaseAdapter.java | 38 +- .../database/mapping/DatabaseMapping.java | 4 +- .../mapping/impl/PostgresDatabaseAdapter.java | 64 +- .../mapping/impl/PostgresDatabaseMapping.java | 91 +- .../mapping/JavaScriptFrontendMapping.java | 91 +- .../project/universe/UniverseProject.java | 43 +- .../universe/UniverseProjectSerializer.java | 46 + .../project/universe/element/Atom.java | 2 +- .../project/universe/element/Element.java | 36 +- .../universe/element/ElementSerializer.java | 39 + .../project/universe/element/Isotope.java | 8 +- .../project/universe/element/Particle.java | 46 +- .../project/universe/element/PaticleInfo.java | 24 + .../element/PaticleInfoSerializer.java | 37 + .../traqtor/project/universe/link/Link.java | 32 +- .../project/universe/link/LinkSerializer.java | 32 + .../project/universe/link/LinkType.java | 20 + .../project/universe/link/ManyToManyLink.java | 7 +- .../project/universe/link/OneToManyLink.java | 7 +- .../project/universe/link/OneToOneLink.java | 7 +- .../project/universe/schema/Constraint.java | 23 +- .../universe/schema/ConstraintInfo.java | 17 + .../schema/ConstraintInfoSerializer.java | 29 + .../project/universe/schema/DataType.java | 18 +- .../universe/schema/DatatypeSchema.java | 17 +- .../schema/impl/LiteralDataTypeSchema.java | 7 + .../schema/impl/LogicDatatypeSchema.java | 7 + .../schema/impl/NumericDatatypeSchema.java | 21 +- .../schema/impl/TemporalDatatypeSchema.java | 7 + .../schema/impl/data/LiteralDataType.java | 5 +- .../schema/impl/data/LogicDataType.java | 5 +- .../schema/impl/data/NumericDataType.java | 5 +- .../schema/impl/data/TemporalDataType.java | 5 +- .../impl/data/literal/StringDataType.java | 3 +- .../constraints/LiteralMaxConstraint.java | 11 +- .../constraints/LiteralMinConstraint.java | 11 +- .../constraints/LiteralRegExpConstraint.java | 9 +- .../impl/data/logic/BooleanDataType.java | 3 +- .../impl/data/numeric/IntegerDataType.java | 15 +- .../impl/data/numeric/RationalDataType.java | 5 +- .../data/numeric/integer/ByteDataType.java | 17 +- .../data/numeric/integer/IntDataType.java | 7 +- .../data/numeric/integer/LongDataType.java | 3 +- .../data/numeric/integer/ShortDataType.java | 7 +- .../constraints/IntegerMaxConstraint.java | 7 +- .../constraints/IntegerMinConstraint.java | 7 +- .../data/numeric/real/DoubleDataType.java | 18 +- .../impl/data/numeric/real/FloatDataType.java | 7 +- .../constraints/RationalMaxConstraint.java | 7 +- .../constraints/RationalMinConstraint.java | 7 +- .../impl/data/temporal/DateDataType.java | 3 +- .../impl/data/temporal/TimeDataType.java | 3 +- .../impl/data/temporal/TimestampDataType.java | 3 +- .../link/pagan/traqtor/util/FileHandle.java | 36 + .../java/link/pagan/traqtor/util/Name.java | 26 +- .../pagan/traqtor/util/NameSerializer.java | 26 + .../java/link/pagan/traqtor/EndToEndTest.java | 205 +++-- .../link/pagan/z_old/TraqtorApiTestUtils.java | 31 - .../java/link/pagan/z_old/TraqtorTest.java | 61 -- .../pagan/z_old/UniverseBlueprintTest.java | 91 -- .../java/link/pagan/z_old/WorkspaceTest.java | 37 - traqtor-json/pom.xml | 59 ++ traqtor.code-workspace | 5 +- 142 files changed, 1773 insertions(+), 3554 deletions(-) create mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/Traqtor.java create mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/mapping/DataTypeSchemaReferenceImplementation.java create mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/mapping/Mapping.java create mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/mapping/MappingEntry.java create mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/mapping/MappingSchema.java create mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/mapping/MappingSchemaImpl.java create mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/mapping/backend/BackendMapping.java create mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/mapping/frontend/FrontendMapping.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/BinaryCommand.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/Commanded.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/Executor.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/UnaryCommand.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/result/CommandExecResult.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/result/CommandExecResultStatus.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/result/message/CommandExecMessage.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/result/message/CommandExecMessageStatus.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/API.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/Traqtor.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/project/Project.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/project/ProjectType.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/project/backend/BackendProject.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/project/database/DatabaseProject.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/project/frontend/FrontendProject.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/project/universe/UniverseProject.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/workspace/Workspace.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/framework/data/DatabaseDataObject.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/framework/logic/Registry.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/framework/logic/Resource.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/framework/logic/Service.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/R.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/ProjectBlueprint.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/backend/BackendBlueprint.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/ColumnBlueprint.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/DatabaseBlueprint.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/SchemeBlueprint.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/TableBlueprint.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/builder/ColumnBlueprintBuilder.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/builder/DatabaseBlueprintBuilder.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/builder/SchemeBlueprintBuilder.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/builder/TableBlueprintBuilder.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/frontend/FrontendBlueprint.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/logic/EndpointBlueprint.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/logic/RegistryBlueprint.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/logic/ResourceBlueprint.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/logic/ServiceBlueprint.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/security/permission/PermissionBlueprint.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/security/permission/PermissionDomainBlueprint.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/security/role/RoleBlueprint.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/AtomBlueprint.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/LinkBlueprint.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/LinkType.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/ParticleBlueprint.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/UniverseBlueprint.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/build/AtomBlueprintBuilder.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/build/LinkBlueprintBuilder.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/build/ParticleBlueprintBuilder.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/build/UniverseBlueprintBuilder.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/basic/EndpointSchemaImpl.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/basic/data/DataTypeSchemaReferenceImplementation.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/basic/data/mapping/MappingSchemaImpl.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/DataType.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/DataTypeSchema.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/mapping/Mapping.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/mapping/MappingEntry.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/mapping/MappingSchema.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/mapping/backend/BackendMapping.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/mapping/frontend/FrontendMapping.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/logic/EndpointSchema.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/logic/EndpointTemplate.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/util/Name.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/util/Named.java delete mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/outdated/util/Registrable.java create mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/UniverseProjectSerializer.java create mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/ElementSerializer.java create mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/PaticleInfo.java create mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/PaticleInfoSerializer.java create mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/LinkSerializer.java create mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/LinkType.java create mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/ConstraintInfo.java create mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/ConstraintInfoSerializer.java create mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/util/FileHandle.java create mode 100644 traqtor-aio/src/main/java/link/pagan/traqtor/util/NameSerializer.java delete mode 100644 traqtor-aio/src/test/java/link/pagan/z_old/TraqtorApiTestUtils.java delete mode 100644 traqtor-aio/src/test/java/link/pagan/z_old/TraqtorTest.java delete mode 100644 traqtor-aio/src/test/java/link/pagan/z_old/UniverseBlueprintTest.java delete mode 100644 traqtor-aio/src/test/java/link/pagan/z_old/WorkspaceTest.java create mode 100644 traqtor-json/pom.xml diff --git a/.vscode/formatting.xml b/.vscode/formatting.xml index 43f7e6f..0200049 100644 --- a/.vscode/formatting.xml +++ b/.vscode/formatting.xml @@ -1,382 +1,420 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pom.xml b/pom.xml index 9f890f5..fd074c7 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,8 @@ traqtor-generator traqtor-schema traqtor-schema-ref - traqtor-api --> + traqtor-api + traqtor-json --> traqtor-aio diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/Traqtor.java b/traqtor-aio/src/main/java/link/pagan/traqtor/Traqtor.java new file mode 100644 index 0000000..52678c4 --- /dev/null +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/Traqtor.java @@ -0,0 +1,54 @@ +package link.pagan.traqtor; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.databind.module.SimpleModule; +import link.pagan.traqtor.util.FileHandle; +import link.pagan.traqtor.project.Project; +import link.pagan.traqtor.project.universe.UniverseProject; +import link.pagan.traqtor.project.universe.UniverseProjectSerializer; +import link.pagan.traqtor.project.universe.element.Element; +import link.pagan.traqtor.project.universe.element.ElementSerializer; +import link.pagan.traqtor.project.universe.element.Particle; +import link.pagan.traqtor.project.universe.element.PaticleInfoSerializer; +import link.pagan.traqtor.project.universe.link.Link; +import link.pagan.traqtor.project.universe.link.LinkSerializer; +import link.pagan.traqtor.project.universe.schema.Constraint; +import link.pagan.traqtor.project.universe.schema.ConstraintInfoSerializer; +import link.pagan.traqtor.util.Name; +import link.pagan.traqtor.util.NameSerializer; + +/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +public class Traqtor { + + private static final Traqtor PROJECT_IO = new Traqtor(); + + private final ObjectMapper mapper; + + private Traqtor () { + mapper = new ObjectMapper().enable(SerializationFeature.INDENT_OUTPUT); + SimpleModule module = new SimpleModule(); + module.addSerializer(Name.class, new NameSerializer()); + module.addSerializer(UniverseProject.class, new UniverseProjectSerializer()); + module.addSerializer(Element.class, new ElementSerializer()); + module.addSerializer(Particle.class, new PaticleInfoSerializer()); + module.addSerializer(Constraint.class, new ConstraintInfoSerializer()); + module.addSerializer(Link.class, new LinkSerializer()); + mapper.registerModule(module); + } + + public static Traqtor io () { + return PROJECT_IO; + } + + public FileHandle toFileHandle (Project project) throws JsonProcessingException { + + if (project.getClass().equals(UniverseProject.class)) { + String json = mapper.writeValueAsString((UniverseProject) project); + return new FileHandle(project.name().asDotted(), "uni", json); + } + return null; + } + +} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/Workspace.java b/traqtor-aio/src/main/java/link/pagan/traqtor/Workspace.java index 6236dd5..c09c827 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/Workspace.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/Workspace.java @@ -1,7 +1,7 @@ package link.pagan.traqtor; import link.pagan.traqtor.project.Project; -import link.pagan.traqtor.outdated.util.Name; +import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ class Workspace { diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/mapping/DataTypeSchemaReferenceImplementation.java b/traqtor-aio/src/main/java/link/pagan/traqtor/mapping/DataTypeSchemaReferenceImplementation.java new file mode 100644 index 0000000..bb4ecbf --- /dev/null +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/mapping/DataTypeSchemaReferenceImplementation.java @@ -0,0 +1,79 @@ +//package link.pagan.traqtor.mapping; +// +// +// +//import java.util.List; +//import link.pagan.traqtor.outdated.schema.basic.data.mapping.MappingSchemaImpl; +//import link.pagan.traqtor.project.universe.schema.DataType; +//import link.pagan.traqtor.util.Name; +// +// +///** +// * +// * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} +// */ +//public class DataTypeSchemaReferenceImplementation implements DataTypeSchema { +// +// private static final Name name = Name.of("traqtor", "basic"); +// +// // ARRAY(""), +// // LIST(""), +// // SET(""), +//// // MAP(""), +//// public static final DataType BOOLEAN = new DataType("boolean"); +//// public static final DataType BYTE = new DataType("byte"); +//// public static final DataType SHORT = new DataType("short"); +//// public static final DataType INTEGER = new DataType("int"); +//// public static final DataType LONG = new DataType("long"); +//// public static final DataType FLOAT = new DataType("float"); +//// public static final DataType DOUBLE = new DataType("double"); +//// public static final DataType STRING = new DataType("string"); +//// public static final DataType DATE = new DataType("date"); +//// public static final DataType TIME = new DataType("time"); +//// public static final DataType TIMESTAMP = new DataType("timestamp"); +//// public static final DataType ID = new DataType("id"); +//// public static final DataType UUID = new DataType("uuid"); +//// +//// private static final List dataTypes = List.of(BOOLEAN, BYTE, SHORT, INTEGER, LONG, FLOAT, DOUBLE, STRING, +//// DATE, TIME, TIMESTAMP, ID, UUID); +// +//// private static final List mappingSchemas = List.of(new MappingSchemaImpl()); +// +//// @Override +//// public List getDataTypes() { +//// return dataTypes; +//// } +//// +//// @Override +//// public Name getName() { +//// return name; +//// } +//// +//// @Override +//// public List getMappingSchema() { +//// return mappingSchemas; +//// } +// +//// @Override +//// public Map register() { +//// return new HashMap(){ +//// private static final long serialVersionUID = 1L; +//// { +//// put(BOOLEAN.getName(), BOOLEAN); +//// put(BYTE.getName(), BYTE); +//// put(SHORT.getName(), SHORT); +//// put(INTEGER.getName(), INTEGER); +//// put(LONG.getName(), LONG); +//// put(FLOAT.getName(), FLOAT); +//// put(DOUBLE.getName(), DOUBLE); +//// put(STRING.getName(), STRING); +//// put(BOOLEAN.getName(), BOOLEAN); +//// put(DATE.getName(), DATE); +//// put(TIME.getName(), TIME); +//// put(TIMESTAMP.getName(), TIMESTAMP); +//// put(ID.getName(), ID); +//// put(UUID.getName(), UUID); +//// }}; +//// } +// +//} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/mapping/Mapping.java b/traqtor-aio/src/main/java/link/pagan/traqtor/mapping/Mapping.java new file mode 100644 index 0000000..8db101b --- /dev/null +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/mapping/Mapping.java @@ -0,0 +1,21 @@ +package link.pagan.traqtor.mapping; + +import java.util.HashMap; + +/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +public abstract class Mapping { + + private final String name; + + private final HashMap mapping; + + protected Mapping (String name, HashMap mapping) { + this.mapping = mapping; + this.name = name; + } + + public String getName () { return name; } + + public HashMap getMapping () { return mapping; } + +} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/mapping/MappingEntry.java b/traqtor-aio/src/main/java/link/pagan/traqtor/mapping/MappingEntry.java new file mode 100644 index 0000000..5a83ebf --- /dev/null +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/mapping/MappingEntry.java @@ -0,0 +1,26 @@ +package link.pagan.traqtor.mapping; + +import link.pagan.traqtor.project.universe.schema.DataType; + +/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +public class MappingEntry { + + private final DataType dataType; + + private final boolean nullable; + + private final boolean keyable; + + public MappingEntry (DataType dataType, boolean nullable, boolean keyable) { + this.dataType = dataType; + this.nullable = nullable; + this.keyable = keyable; + } + + public DataType getDataType () { return dataType; } + + public boolean isNullable () { return nullable; } + + public boolean isKeyable () { return keyable; } + +} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/mapping/MappingSchema.java b/traqtor-aio/src/main/java/link/pagan/traqtor/mapping/MappingSchema.java new file mode 100644 index 0000000..1af58ae --- /dev/null +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/mapping/MappingSchema.java @@ -0,0 +1,10 @@ +package link.pagan.traqtor.mapping; + +import java.util.List; + +/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +public interface MappingSchema { + + public List getMappings (); + +} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/mapping/MappingSchemaImpl.java b/traqtor-aio/src/main/java/link/pagan/traqtor/mapping/MappingSchemaImpl.java new file mode 100644 index 0000000..cf51b62 --- /dev/null +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/mapping/MappingSchemaImpl.java @@ -0,0 +1,77 @@ +// package link.pagan.traqtor.mapping; +// +// +// import java.util.List; +// import link.pagan.traqtor.util.Name; +// +// +/// ** +// * +// * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} +// */ +// public class MappingSchemaImpl implements MappingSchema { +// +// private static final Name name = Name.of("traqtor", "basic", "default"); +//// +//// public static final MappingEntry NULLABLE_BOOLEAN = new MappingEntry(DataTypeSchemaReferenceImplementation.BOOLEAN +// , true , false ); +//// public static final MappingEntry BOOLEAN = new MappingEntry(DataTypeSchemaReferenceImplementation.BOOLEAN , false , +// true ); +//// public static final MappingEntry NULLABLE_BYTE = new MappingEntry(DataTypeSchemaReferenceImplementation.BYTE , true +// , false ); +//// public static final MappingEntry BYTE = new MappingEntry(DataTypeSchemaReferenceImplementation.BYTE , false , true +// ); +//// public static final MappingEntry NULLABLE_SHORT = new MappingEntry(DataTypeSchemaReferenceImplementation.SHORT , +// true , false ); +//// public static final MappingEntry SHORT = new MappingEntry(DataTypeSchemaReferenceImplementation.SHORT , false , +// true ); +//// public static final MappingEntry NULLABLE_INTEGER = new MappingEntry(DataTypeSchemaReferenceImplementation.INTEGER +// , true , false ); +//// public static final MappingEntry INTEGER = new MappingEntry(DataTypeSchemaReferenceImplementation.INTEGER , false , +// true ); +//// public static final MappingEntry NULLABLE_LONG = new MappingEntry(DataTypeSchemaReferenceImplementation.LONG , true +// , false ); +//// public static final MappingEntry LONG = new MappingEntry(DataTypeSchemaReferenceImplementation.LONG , false , true +// ); +//// public static final MappingEntry NULLABLE_FLOAT = new MappingEntry(DataTypeSchemaReferenceImplementation.FLOAT , +// true , false ); +//// public static final MappingEntry FLOAT = new MappingEntry(DataTypeSchemaReferenceImplementation.FLOAT , false , +// false ); +//// public static final MappingEntry NULLABLE_DOUBLE = new MappingEntry(DataTypeSchemaReferenceImplementation.DOUBLE , +// true , false ); +//// public static final MappingEntry DOUBLE = new MappingEntry(DataTypeSchemaReferenceImplementation.DOUBLE , false , +// false ); +//// public static final MappingEntry STRING = new MappingEntry(DataTypeSchemaReferenceImplementation.STRING , true , +// false ); +//// public static final MappingEntry DATE = new MappingEntry(DataTypeSchemaReferenceImplementation.DATE , true , false +// ); +//// public static final MappingEntry TIME = new MappingEntry(DataTypeSchemaReferenceImplementation.TIME , true , false +// ); +//// public static final MappingEntry TIMESTAMP = new MappingEntry(DataTypeSchemaReferenceImplementation.TIMESTAMP , +// true , false ); +//// public static final MappingEntry ID = new MappingEntry(DataTypeSchemaReferenceImplementation.ID , true , true ); +//// public static final MappingEntry UUID = new MappingEntry(DataTypeSchemaReferenceImplementation.UUID , true , true +// ); +//// +//// private static final List mappings = List.of(NULLABLE_BOOLEAN, BOOLEAN, +//// NULLABLE_BYTE, BYTE, +//// NULLABLE_SHORT, SHORT, +//// NULLABLE_INTEGER, INTEGER, +//// NULLABLE_LONG, LONG, +//// NULLABLE_FLOAT, FLOAT, +//// NULLABLE_DOUBLE, DOUBLE, +//// STRING, +//// DATE, TIME, TIMESTAMP, +//// ID, UUID); +//// +//// @Override +//// public List getMappings() { +//// return mappings; +//// } +//// +//// @Override +//// public Name getName() { +//// return name; +//// } +// +// } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/mapping/backend/BackendMapping.java b/traqtor-aio/src/main/java/link/pagan/traqtor/mapping/backend/BackendMapping.java new file mode 100644 index 0000000..62c037f --- /dev/null +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/mapping/backend/BackendMapping.java @@ -0,0 +1,14 @@ +package link.pagan.traqtor.mapping.backend; + +import java.util.HashMap; +import link.pagan.traqtor.mapping.Mapping; +import link.pagan.traqtor.mapping.MappingEntry; + +/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +public class BackendMapping extends Mapping { + + public BackendMapping (String name, HashMap mapping) { + super(name, mapping); + } + +} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/mapping/frontend/FrontendMapping.java b/traqtor-aio/src/main/java/link/pagan/traqtor/mapping/frontend/FrontendMapping.java new file mode 100644 index 0000000..d6a918a --- /dev/null +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/mapping/frontend/FrontendMapping.java @@ -0,0 +1,14 @@ +package link.pagan.traqtor.mapping.frontend; + +import java.util.HashMap; +import link.pagan.traqtor.mapping.Mapping; +import link.pagan.traqtor.mapping.MappingEntry; + +/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +public class FrontendMapping extends Mapping { + + public FrontendMapping (String name, HashMap mapping) { + super(name, mapping); + } + +} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/BinaryCommand.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/BinaryCommand.java deleted file mode 100644 index f84db3c..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/BinaryCommand.java +++ /dev/null @@ -1,26 +0,0 @@ -package link.pagan.traqtor.outdated._api; - -// package link.pagan.traqtor._api; - -// import link.pagan.traqtor._api.result.CommandExecResult; - -// /** -// * -// * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} -// */ -// public abstract class BinaryCommand extends UnaryCommand { - -// protected R arg2; - -// public CommandExecResult subexec(BinaryCommand subcommand) { -// subcommand.setResultHolder(result); -// subcommand.setArg(arg); -// subcommand.setArg2(arg2); -// return subcommand.exec(); -// } - -// public void setArg2(R arg2) { -// this.arg2 = arg2; -// } - -// } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/Commanded.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/Commanded.java deleted file mode 100644 index e7adae6..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/Commanded.java +++ /dev/null @@ -1,9 +0,0 @@ -package link.pagan.traqtor.outdated._api; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public interface Commanded { - -} \ No newline at end of file diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/Executor.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/Executor.java deleted file mode 100644 index 6353118..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/Executor.java +++ /dev/null @@ -1,33 +0,0 @@ -package link.pagan.traqtor.outdated._api; - -//package link.pagan.traqtor._api; -// -//import link.pagan.traqtor._api.result.CommandExecResult; -//import link.pagan.traqtor._api.result.CommandExecResultStatus; -// -///** -// * -// * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} -// */ -//public abstract class Executor> extends Commanded { -// -// -// -// @SuppressWarnings("unchecked") -// public CommandExecResult execute(Command command) { -// CommandExecResult result = new CommandExecResult(); -// command.setResultHolder(result); -// command.exec((T) this); -// if (!mute) { -// if (paranoindLoggin) { -// result.print(); -// } else { -// if (result.getStatus() != CommandExecResultStatus.DONE) { -// result.print(); -// } -// } -// } -// return result; -// } -// -//} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/UnaryCommand.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/UnaryCommand.java deleted file mode 100644 index 394a025..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/UnaryCommand.java +++ /dev/null @@ -1,77 +0,0 @@ -package link.pagan.traqtor.outdated._api; - -import link.pagan.traqtor.outdated._api.result.CommandExecResult; -import link.pagan.traqtor.outdated._api.result.message.CommandExecMessage; -import link.pagan.traqtor.outdated._api.result.message.CommandExecMessageStatus; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public abstract class UnaryCommand { - - private static boolean paranoindLoggin = false; - private static boolean mute = true; - - public static void enableParanoindLoggin() { - enableLog(); - paranoindLoggin = true; - } - - public static void enableLog() { - mute = false; - } - - protected CommandExecResult result; - protected T arg; - - public abstract CommandExecResult exec(); - - public CommandExecResult subexec(UnaryCommand subcommand) { - subcommand.setResultHolder(result); - subcommand.setArg(arg); - return subcommand.exec(); - } - - protected CommandExecResult fail(String message) { - result.add(new CommandExecMessage(CommandExecMessageStatus.FAIL, message)); - return result; - } - - protected CommandExecResult info(String message) { - result.add(new CommandExecMessage(CommandExecMessageStatus.INFO, message)); - return result; - } - - protected CommandExecResult warn(String message) { - result.add(new CommandExecMessage(CommandExecMessageStatus.WARN, message)); - return result; - } - - protected CommandExecResult done(String message) { - result.add(new CommandExecMessage(CommandExecMessageStatus.DONE, message)); - return result; - } - - protected CommandExecResult done() { - result.add(new CommandExecMessage(CommandExecMessageStatus.DONE, "OK")); - return result; - } - - public void setResultHolder(CommandExecResult result) { - this.result = result; - } - - public void setArg(T arg) { - this.arg = arg; - } - - public static boolean paranoidLoggingEnabled() { - return paranoindLoggin; - } - - public static boolean mute() { - return mute; - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/result/CommandExecResult.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/result/CommandExecResult.java deleted file mode 100644 index ae02ad1..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/result/CommandExecResult.java +++ /dev/null @@ -1,42 +0,0 @@ -package link.pagan.traqtor.outdated._api.result; - -import java.util.ArrayList; -import link.pagan.traqtor.outdated._api.result.message.CommandExecMessage; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class CommandExecResult { - - final ArrayList messages; - - public CommandExecResult() { - this.messages = new ArrayList(); - } - - public void add(CommandExecMessage message) { - this.messages.add(message); - } - - public boolean OK () { - return this.getStatus() != CommandExecResultStatus.FAIL; - } - - public CommandExecResultStatus getStatus() { - int status = 100; - for (CommandExecMessage message : messages) { - if (status > message.getStatus().getCode()) { - status = message.getStatus().getCode(); - } - } - return CommandExecResultStatus.ofCode(status); - } - - public void print() { - for (CommandExecMessage message : messages) { - message.print(); - } - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/result/CommandExecResultStatus.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/result/CommandExecResultStatus.java deleted file mode 100644 index e4c648d..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/result/CommandExecResultStatus.java +++ /dev/null @@ -1,27 +0,0 @@ -package link.pagan.traqtor.outdated._api.result; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public enum CommandExecResultStatus { - DONE(0), - WARN(-1), - FAIL(-2); - - int code; - - private CommandExecResultStatus(int code) { - this.code = code; - } - - public int getCode() { - return code; - } - - public static CommandExecResultStatus ofCode (int code) { - if (code < -1) return FAIL; - if (code == -1) return WARN; - return DONE; - } -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/result/message/CommandExecMessage.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/result/message/CommandExecMessage.java deleted file mode 100644 index 3973783..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/result/message/CommandExecMessage.java +++ /dev/null @@ -1,33 +0,0 @@ -package link.pagan.traqtor.outdated._api.result.message; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class CommandExecMessage { - - final CommandExecMessageStatus status; - final String message; - - public CommandExecMessage(CommandExecMessageStatus status, String message) { - this.status = status; - this.message = message; - } - - public CommandExecMessageStatus getStatus() { - return status; - } - - public String getMessage() { - return message; - } - - public void print() { -// if (status.getCode() < 0) { - System.out.println(status.toString() + " : " + message); -// } else { -// System.out.println(status.toString() + " : " + message); -// } - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/result/message/CommandExecMessageStatus.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/result/message/CommandExecMessageStatus.java deleted file mode 100644 index b8f9ce0..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/_api/result/message/CommandExecMessageStatus.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package link.pagan.traqtor.outdated._api.result.message; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public enum CommandExecMessageStatus { - INFO(1), - DONE(0), - WARN(-1), - FAIL(-2); - - int code; - - private CommandExecMessageStatus(int code) { - this.code = code; - } - - public int getCode() { - return code; - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/API.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/API.java deleted file mode 100644 index 4c02dec..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/API.java +++ /dev/null @@ -1,298 +0,0 @@ -package link.pagan.traqtor.outdated.api; - -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.module.SimpleModule; -import java.io.File; -import java.io.IOException; -import java.util.HashMap; -import link.pagan.traqtor.outdated._api.UnaryCommand; -import link.pagan.traqtor.outdated._api.result.CommandExecResult; -import link.pagan.traqtor.outdated._api.result.message.CommandExecMessage; -import link.pagan.traqtor.outdated._api.result.message.CommandExecMessageStatus; -import link.pagan.traqtor.outdated.api.project.Project; -import link.pagan.traqtor.outdated.api.project.universe.UniverseProject; -import link.pagan.traqtor.outdated.api.workspace.Workspace; -import link.pagan.traqtor.outdated.schema.data.DataTypeSchema; -import link.pagan.traqtor.outdated.util.Name; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class API { - - private static boolean workspaceExists (CommandExecResult result, Traqtor traqtor) { - if (traqtor.workspace() == null) { - result.add(new CommandExecMessage(CommandExecMessageStatus.FAIL, "No workspace initialized")); - return false; - } - return true; - } - - public static class CreateWorkspace extends UnaryCommand { - - private final Name name; - private final String path; - - public CreateWorkspace() { - this(Workspace.DEFAULT_WORKSPACE_NAME); - } - - public CreateWorkspace(Name name) { - this(name, null); - } - - public CreateWorkspace(Name name, String path) { - this.name = name; - this.path = path; - } - - @Override - public CommandExecResult exec() { - if (arg.workspace() != null) { - return fail("There is an open workspace - please close this first, before creating new one"); - } - arg.workspace(new Workspace()); - arg.workspace().name(name); - subexec(new API.WorkspaceLoadDataTypeSchema(Name.of("traqtor", "basic"))); - if (!result.OK()) { - arg.workspace(null); - return result; - } - - if (path != null) { - subexec(new SaveAsWorkspace(path)); - if (!result.OK()) { - arg.workspace(null); - return result; - } - } - return done(); - } - - } - - public static class SaveAsWorkspace extends UnaryCommand { - - private final String workspacePath; - - public SaveAsWorkspace(String workspacePath) { - this.workspacePath = workspacePath; - } - - @Override - public CommandExecResult exec() { - File workspaceDir = new File(workspacePath); - if (!workspaceDir.exists()) { - if (!workspaceDir.mkdir()) { - return fail("Failed to create workspace root directory at " + workspacePath); - } else { - info("Workspace root directory created at " + workspacePath); - } - } else { - if (workspaceDir.listFiles().length > 0) { - return fail("Root directory is not empty, failed to assing " + workspacePath + " as root for workspace"); - } - } - File workspaceFile = new File(workspacePath, Workspace.JSON_FILENAME + ".json"); - if (!workspaceFile.exists()) { - try { - if (!workspaceFile.createNewFile()) { - return fail("Failed to create " + Workspace.JSON_FILENAME + ".json in workspace root directory"); - } - } catch (IOException ex) { - return fail("IO erorr while creating " + Workspace.JSON_FILENAME + ".json in workspace root directory"); - } - } - - String hold = arg.workspace().root(); - arg.workspace().root(workspacePath); - subexec(new SaveWorkspace()); - if (!result.OK()) { - arg.workspace().root(hold); - return result; - } - - return done(); - } - - } - - public static class SaveWorkspace extends UnaryCommand { - - @Override - public CommandExecResult exec() { - String workspacePath = arg.workspace().root(); - if (arg.workspace().root() == null) { - return fail("Workspace was not saved before - use \"save as\" command for the first save"); - } - File workspaceFile = new File(workspacePath, Workspace.JSON_FILENAME + ".json"); - - if (!workspaceFile.exists()) { - return fail("Failed to save, " + Workspace.JSON_FILENAME + ".json does not exist, workspace corrupted?"); - } - - if (!workspaceFile.canWrite()) { - return fail("Can not write " + Workspace.JSON_FILENAME + ".json - permission denied"); - } - - try { - arg.workspace().mapper().writeValue(workspaceFile, arg.workspace()); - } catch (IOException ex) { - System.err.println(ex); - return fail("Failed to write " + Workspace.JSON_FILENAME + ".json"); - } - - arg.workspace().dirty(false); - - return done(); - } - - } - - public static class LoadWorkspace extends UnaryCommand { - - private final String workspacePath; - - public LoadWorkspace(String workspacePath) { - this.workspacePath = workspacePath; - } - - @Override - public CommandExecResult exec() { - File workspaceFile = new File(workspacePath, Workspace.JSON_FILENAME + ".json"); - if (!workspaceFile.exists()) { - return fail("No " + Workspace.JSON_FILENAME + ".json file found in selected directory, missed?"); - } - - ObjectMapper mapper = new ObjectMapper(); - SimpleModule module = new SimpleModule(); - module.addDeserializer(Workspace.class, new Workspace.WorkspaceDeserializer()); - mapper.registerModule(module); - - Workspace workspace = null; - try { - workspace = mapper.readValue(workspaceFile, Workspace.class); - } catch (IOException ex) { - System.err.println(ex); - return fail("Failed to read " + workspaceFile.getAbsolutePath()); - } - workspace.root(workspacePath); - HashMap schemas = workspace.dataTypeSchemas(); - for (Name name : schemas.keySet()) { - if (schemas.get(name) == null) { - DataTypeSchema loaded = arg.dataTypeSchemas.get(name); - if (loaded == null) { - warn("Shema with name " + name.asDotted() + " was not found in system. Preload or give up"); - } else { - schemas.put(name, loaded); - info("Shema " + name.asDotted() + " was found and loaded into workspace on load"); - } - } - } - - arg.workspace(workspace); - return done(); - } - } - - public static class WorkspaceLoadDataTypeSchema extends UnaryCommand { - - private final Name name; - - public WorkspaceLoadDataTypeSchema(Name name) { - this.name = name; - } - - @Override - public CommandExecResult exec() { - if (!workspaceExists(result, arg)) { - return result; - } - DataTypeSchema schema = arg.dataTypeSchemas.get(this.name); - if (schema == null) { - return fail("Unable to load data type schema by name " + name.asDotted()); - } - arg.workspace().dataTypeSchemas().put(schema.getName(), schema); - return done(); - } - - } - - public static class WorkspaceCreateUniverseProject extends UnaryCommand { - - private final Name name; - private final Name schema; - - public WorkspaceCreateUniverseProject(Name name, Name schema) { - this.name = name; - this.schema = schema; - } - - @Override - public CommandExecResult exec() { - if (!workspaceExists(result, arg)) { - return result; - } - Workspace workspace = arg.workspace(); - DataTypeSchema dataTypeSchema = workspace.dataTypeSchemas().get(schema); - if (dataTypeSchema == null) { - return fail("Data type schema with name " + schema.asDotted() + " was not found"); - } - if (workspace.projects().containsKey(this.name)) { - return fail("Project with name " + this.name + " already exists"); - } - - Project project = new UniverseProject(name, dataTypeSchema); - workspace.projects().put(project.name(), project); - workspace.dirty(true); - - CommandExecResult saveResult = arg.execute(new API.SaveWorkspace()); - if (!saveResult.OK()) { - return fail("Failed to save workspace, after project addition"); - } - - return done(); - } - - } - - public static class ProjectSave extends UnaryCommand { - - private final Name name; - private final Name schema; - - public ProjectSave(Name name, Name schema) { - this.name = name; - this.schema = schema; - } - - @Override - public CommandExecResult exec() { - if (!workspaceExists(result, arg)) { - return result; - } - Workspace workspace = arg.workspace(); - DataTypeSchema dataTypeSchema = workspace.dataTypeSchemas().get(schema); - if (dataTypeSchema == null) { - return fail("Data type schema with name " + schema.asDotted() + " was not found"); - } - if (workspace.projects().containsKey(this.name)) { - return fail("Project with name " + this.name + " already exists"); - } - - Project project = new UniverseProject(name, dataTypeSchema); - workspace.projects().put(project.name(), project); - workspace.dirty(true); - - CommandExecResult saveResult = arg.execute(new API.SaveWorkspace()); - if (!saveResult.OK()) { - return fail("Failed to save workspace, after project addition"); - } - - return done(); - } - - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/Traqtor.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/Traqtor.java deleted file mode 100644 index d19af01..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/Traqtor.java +++ /dev/null @@ -1,63 +0,0 @@ -package link.pagan.traqtor.outdated.api; - -import java.util.HashMap; -import java.util.Map; -import link.pagan.traqtor.outdated._api.UnaryCommand; -import link.pagan.traqtor.outdated._api.Commanded; -import link.pagan.traqtor.outdated._api.result.CommandExecResult; -import link.pagan.traqtor.outdated._api.result.CommandExecResultStatus; -import link.pagan.traqtor.outdated.api.workspace.Workspace; -import link.pagan.traqtor.outdated.schema.basic.data.DataTypeSchemaReferenceImplementation; -import link.pagan.traqtor.outdated.schema.data.DataTypeSchema; -import link.pagan.traqtor.outdated.util.Name; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class Traqtor implements Commanded { - - private Workspace workspace; - - Map dataTypeSchemas; - - public static Traqtor init() { - Traqtor traqtor = new Traqtor(); - traqtor.registerDataTypeSchema(new DataTypeSchemaReferenceImplementation()); - return traqtor; - } - - private void registerDataTypeSchema(DataTypeSchema schema) { - this.dataTypeSchemas.put(schema.getName(), schema); - } - - private Traqtor() { - this.dataTypeSchemas = new HashMap<>(); - } - - public Workspace workspace() { - return workspace; - } - - public void workspace(Workspace workspace) { - this.workspace = workspace; - } - - public CommandExecResult execute(UnaryCommand command) { - CommandExecResult result = new CommandExecResult(); - command.setResultHolder(result); - command.setArg(this); - command.exec(); - if (!UnaryCommand.mute()) { - if (UnaryCommand.paranoidLoggingEnabled()) { - result.print(); - } else { - if (result.getStatus() != CommandExecResultStatus.DONE) { - result.print(); - } - } - } - return result; - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/project/Project.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/project/Project.java deleted file mode 100644 index 68da4a4..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/project/Project.java +++ /dev/null @@ -1,40 +0,0 @@ -package link.pagan.traqtor.outdated.api.project; - -import link.pagan.traqtor.outdated._api.Commanded; -import link.pagan.traqtor.outdated.util.Name; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public abstract class Project implements Commanded { - - private final ProjectType type; - private Name name; - private boolean dirty; - - public Project(ProjectType type, Name name) { - this.type = type; - this.name = name; - this.dirty = true; - } - - public ProjectType type() { - return type; - } - - public Name name() { - return name; - } - - - - public boolean dirty() { - return dirty; - } - - public void dirty(boolean dirty) { - this.dirty = dirty; - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/project/ProjectType.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/project/ProjectType.java deleted file mode 100644 index 16eeffd..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/project/ProjectType.java +++ /dev/null @@ -1,74 +0,0 @@ -package link.pagan.traqtor.outdated.api.project; - -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.SerializerProvider; -import com.fasterxml.jackson.databind.deser.std.StdDeserializer; -import com.fasterxml.jackson.databind.ser.std.StdSerializer; -import java.io.IOException; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public enum ProjectType { - UNIVERSE("universe"), - DATABASE("database"), - FRONTEND("frontend"), - BACKEND("backend"); - - String jsonValue; - - private ProjectType(String jsonValue) { - this.jsonValue = jsonValue; - } - - public static final class ProjectTypeSerializer extends StdSerializer { - - private static final long serialVersionUID = 1L; - - public ProjectTypeSerializer() { - this(null); - } - - public ProjectTypeSerializer(Class t) { - super(t); - } - - @Override - public void serialize(ProjectType value, JsonGenerator gen, SerializerProvider provider) throws IOException { - gen.writeString(value.jsonValue); - } - - } - - public static final class ProjectTypeDeserializer extends StdDeserializer { - - private static final long serialVersionUID = 1L; - - public ProjectTypeDeserializer() { - this(null); - } - - public ProjectTypeDeserializer(Class t) { - super(t); - } - - @Override - public ProjectType deserialize(JsonParser parser, DeserializationContext ctxt) throws IOException, JsonProcessingException { - JsonNode stringType = parser.getCodec().readTree(parser); - String type = stringType.asText(); - for (ProjectType pt : values()) { - if (pt.jsonValue.equals(type)) { - return pt; - } - } - return null; - } - - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/project/backend/BackendProject.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/project/backend/BackendProject.java deleted file mode 100644 index c02a368..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/project/backend/BackendProject.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package link.pagan.traqtor.outdated.api.project.backend; - -import link.pagan.traqtor.outdated.api.project.Project; -import link.pagan.traqtor.outdated.api.project.ProjectType; -import link.pagan.traqtor.outdated.util.Name; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class BackendProject extends Project { - - public BackendProject(Name name) { - super(ProjectType.BACKEND, name); - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/project/database/DatabaseProject.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/project/database/DatabaseProject.java deleted file mode 100644 index fbd3068..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/project/database/DatabaseProject.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package link.pagan.traqtor.outdated.api.project.database; - -import link.pagan.traqtor.outdated.api.project.Project; -import link.pagan.traqtor.outdated.api.project.ProjectType; -import link.pagan.traqtor.outdated.util.Name; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class DatabaseProject extends Project { - - public DatabaseProject(Name name) { - super(ProjectType.DATABASE, name); - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/project/frontend/FrontendProject.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/project/frontend/FrontendProject.java deleted file mode 100644 index b1b75e8..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/project/frontend/FrontendProject.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package link.pagan.traqtor.outdated.api.project.frontend; - -import link.pagan.traqtor.outdated.api.project.Project; -import link.pagan.traqtor.outdated.api.project.ProjectType; -import link.pagan.traqtor.outdated.util.Name; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class FrontendProject extends Project { - - public FrontendProject(Name name) { - super(ProjectType.FRONTEND, name); - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/project/universe/UniverseProject.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/project/universe/UniverseProject.java deleted file mode 100644 index ff7e30c..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/project/universe/UniverseProject.java +++ /dev/null @@ -1,22 +0,0 @@ -package link.pagan.traqtor.outdated.api.project.universe; - -import link.pagan.traqtor.outdated.api.project.Project; -import link.pagan.traqtor.outdated.api.project.ProjectType; -import link.pagan.traqtor.outdated.schema.data.DataTypeSchema; -import link.pagan.traqtor.outdated.util.Name; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class UniverseProject extends Project { - - DataTypeSchema dataTypeSchema; - - public UniverseProject(Name name, DataTypeSchema dataTypeSchema) { - super(ProjectType.UNIVERSE, name); - this.dataTypeSchema = dataTypeSchema; - - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/workspace/Workspace.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/workspace/Workspace.java deleted file mode 100644 index 8e8c19c..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/api/workspace/Workspace.java +++ /dev/null @@ -1,188 +0,0 @@ -package link.pagan.traqtor.outdated.api.workspace; - -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; -import com.fasterxml.jackson.databind.SerializerProvider; -import com.fasterxml.jackson.databind.deser.std.StdDeserializer; -import com.fasterxml.jackson.databind.module.SimpleModule; -import com.fasterxml.jackson.databind.ser.std.StdSerializer; -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import link.pagan.traqtor.outdated._api.Commanded; -import link.pagan.traqtor.outdated.api.project.Project; -import link.pagan.traqtor.outdated.generator.blueprint.universe.AtomBlueprint; -import link.pagan.traqtor.outdated.generator.blueprint.universe.LinkBlueprint; -import link.pagan.traqtor.outdated.generator.blueprint.universe.LinkType; -import link.pagan.traqtor.outdated.generator.blueprint.universe.ParticleBlueprint; -import link.pagan.traqtor.outdated.generator.blueprint.universe.UniverseBlueprint; -import link.pagan.traqtor.outdated.schema.data.DataTypeSchema; -import link.pagan.traqtor.outdated.util.Name; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class Workspace implements Commanded { - - public static final String JSON_FILENAME = "workspace"; - public static final Name DEFAULT_WORKSPACE_NAME = Name.of("workspace"); - - private final ObjectMapper mapper; - - private boolean dirty; - - private String root; - - private Name name; - private HashMap schemas; - private HashMap projects; - - public Workspace() { - this.mapper = new ObjectMapper().enable(SerializationFeature.INDENT_OUTPUT); - - SimpleModule module = new SimpleModule(); - module.addSerializer(Workspace.class, new Workspace.WorkspaceSerializer()); - - module.addSerializer(UniverseBlueprint.class, new UniverseBlueprint.UniverseBlueprintSerializer()); - module.addSerializer(Name.class, new Name.NameSerializer()); - module.addDeserializer(Name.class, new Name.NameDeserializer()); - module.addSerializer(ParticleBlueprint.class, new ParticleBlueprint.ParticleBlueprintSerializer()); - module.addSerializer(AtomBlueprint.class, new AtomBlueprint.AtomBlueprintSerializer()); - module.addSerializer(LinkBlueprint.class, new LinkBlueprint.LinkBlueprintSerializer()); - module.addSerializer(LinkType.class, new LinkType.LinkTypeSerializer()); - mapper.registerModule(module); - this.dirty = true; - this.projects = new HashMap<>(); - this.schemas = new HashMap<>(); - } - - public Name name() { - return name; - } - - public String root() { - return root; - } - - public void root(String root) { - this.root = root; - } - - public void name(Name name) { - this.name = name; - } - - public ObjectMapper mapper() { - return mapper; - } - - public boolean dirty() { - return dirty; - } - - public void dirty(boolean dirty) { - this.dirty = dirty; - } - - public HashMap dataTypeSchemas() { - return schemas; - } - - public HashMap projects() { - return projects; - } - - public static final class WorkspaceSerializer extends StdSerializer { - - private static final long serialVersionUID = 1L; - - public WorkspaceSerializer() { - this(null); - } - - public WorkspaceSerializer(Class t) { - super(t); - } - - @Override - public void serialize(Workspace value, JsonGenerator gen, SerializerProvider provider) throws IOException { - gen.writeStartObject(); - gen.writeObjectField("name", value.name); - gen.writeBooleanField("pretty", value.mapper.isEnabled(SerializationFeature.INDENT_OUTPUT)); - gen.writeArrayFieldStart("schemas"); - ArrayList schemaNames = new ArrayList<>(); - for (Name schemaName : value.schemas.keySet()) { - schemaNames.add(schemaName); - } - schemaNames.sort(Name.COMPARATOR); - for (Name name : schemaNames) { - gen.writeObject(name); - } - gen.writeEndArray(); - - gen.writeArrayFieldStart("projects"); - ArrayList projectNames = new ArrayList<>(); - for (Name projectName : value.projects.keySet()) { - projectNames.add(projectName); - } - projectNames.sort(Name.COMPARATOR); - for (Name name : projectNames) { - gen.writeObject(name); - } - gen.writeEndArray(); - - gen.writeEndObject(); - } - - } - - public static final class WorkspaceDeserializer extends StdDeserializer { - - private static final long serialVersionUID = 1L; - - public WorkspaceDeserializer() { - this(null); - } - - public WorkspaceDeserializer(Class t) { - super(t); - } - - @Override - public Workspace deserialize(JsonParser parser, DeserializationContext context) throws IOException, JsonProcessingException { - Workspace workspace = new Workspace(); - - JsonNode node = parser.getCodec().readTree(parser); - boolean pretty = node.get("pretty").asBoolean(false); - - if (pretty) { - workspace.mapper.enable(SerializationFeature.INDENT_OUTPUT); - } else { - workspace.mapper.disable(SerializationFeature.INDENT_OUTPUT); - } - - Name name = workspace.mapper.treeToValue(node.get("name"), Name.class); - workspace.name(name); - - for (JsonNode schema : node.get("schemas")) { - Name readValue = workspace.mapper.readValue(schema.toString(), Name.class); - workspace.schemas.put(readValue, null); - } - - for (JsonNode project : node.get("projects")) { - workspace.projects.put(workspace.mapper.readValue(project.asText(), Name.class), null); - } - - workspace.dirty = false; - return workspace; - } - - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/framework/data/DatabaseDataObject.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/framework/data/DatabaseDataObject.java deleted file mode 100644 index 8010450..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/framework/data/DatabaseDataObject.java +++ /dev/null @@ -1,15 +0,0 @@ -package link.pagan.traqtor.outdated.framework.data; - -//package link.pagan.traqtor.framework.data; -// -//import org.apache.cayenne.BaseDataObject; -// -///** -// * -// * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} -// */ -//public class DatabaseDataObject extends BaseDataObject { -// -// private static final long serialVersionUID = 1448137394405559485L; -// -//} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/framework/logic/Registry.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/framework/logic/Registry.java deleted file mode 100644 index 1eef90a..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/framework/logic/Registry.java +++ /dev/null @@ -1,14 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package link.pagan.traqtor.outdated.framework.logic; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class Registry { - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/framework/logic/Resource.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/framework/logic/Resource.java deleted file mode 100644 index 75578d7..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/framework/logic/Resource.java +++ /dev/null @@ -1,14 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package link.pagan.traqtor.outdated.framework.logic; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class Resource { - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/framework/logic/Service.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/framework/logic/Service.java deleted file mode 100644 index 61a41b1..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/framework/logic/Service.java +++ /dev/null @@ -1,14 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package link.pagan.traqtor.outdated.framework.logic; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class Service { - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/R.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/R.java deleted file mode 100644 index 38945f2..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/R.java +++ /dev/null @@ -1,30 +0,0 @@ -package link.pagan.traqtor.outdated.generator; - -import link.pagan.traqtor.outdated.generator.blueprint.database.builder.ColumnBlueprintBuilder; -//import link.pagan.traqtor.outdated.generator.blueprint.database.builder.DatabaseBlueprintBuilder; -import link.pagan.traqtor.outdated.generator.blueprint.database.builder.SchemeBlueprintBuilder; -import link.pagan.traqtor.outdated.generator.blueprint.database.builder.TableBlueprintBuilder; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class R { - -// public static DatabaseBlueprintBuilder database() { -// return new DatabaseBlueprintBuilder(); -// } - - public static SchemeBlueprintBuilder schema() { - return new SchemeBlueprintBuilder(); - } - - public static TableBlueprintBuilder table() { - return new TableBlueprintBuilder(); - } - - public static ColumnBlueprintBuilder column() { - return new ColumnBlueprintBuilder(); - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/ProjectBlueprint.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/ProjectBlueprint.java deleted file mode 100644 index de8d3c5..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/ProjectBlueprint.java +++ /dev/null @@ -1,20 +0,0 @@ -package link.pagan.traqtor.outdated.generator.blueprint; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public abstract class ProjectBlueprint { - - - -// String name; -// Name rootPackage; -// String description; - -// -// public void assemble() { -// -// } -// -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/backend/BackendBlueprint.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/backend/BackendBlueprint.java deleted file mode 100644 index eefb1be..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/backend/BackendBlueprint.java +++ /dev/null @@ -1,14 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package link.pagan.traqtor.outdated.generator.blueprint.backend; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class BackendBlueprint { - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/ColumnBlueprint.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/ColumnBlueprint.java deleted file mode 100644 index 6d39218..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/ColumnBlueprint.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package link.pagan.traqtor.outdated.generator.blueprint.database; - -import link.pagan.traqtor.outdated.util.Name; -import link.pagan.traqtor.outdated.schema.data.DataType; - - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class ColumnBlueprint { - - Name name; - DataType dataType; - - public ColumnBlueprint(Name name) { - this.name = name; - } - - - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/DatabaseBlueprint.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/DatabaseBlueprint.java deleted file mode 100644 index ba8d94a..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/DatabaseBlueprint.java +++ /dev/null @@ -1,19 +0,0 @@ -package link.pagan.traqtor.outdated.generator.blueprint.database; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class DatabaseBlueprint { - - String name; - // private List schemas; - // private DatabaseAdapter databaseAdapter; - - public DatabaseBlueprint(String name) { - this.name = name; - } - - - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/SchemeBlueprint.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/SchemeBlueprint.java deleted file mode 100644 index d2ff2bc..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/SchemeBlueprint.java +++ /dev/null @@ -1,14 +0,0 @@ -package link.pagan.traqtor.outdated.generator.blueprint.database; - -import java.util.ArrayList; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class SchemeBlueprint { - - String name; - ArrayList tables; - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/TableBlueprint.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/TableBlueprint.java deleted file mode 100644 index 1a23fc0..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/TableBlueprint.java +++ /dev/null @@ -1,19 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package link.pagan.traqtor.outdated.generator.blueprint.database; - -import java.util.ArrayList; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class TableBlueprint { - - String name; - ArrayList columns; - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/builder/ColumnBlueprintBuilder.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/builder/ColumnBlueprintBuilder.java deleted file mode 100644 index 3822943..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/builder/ColumnBlueprintBuilder.java +++ /dev/null @@ -1,55 +0,0 @@ -package link.pagan.traqtor.outdated.generator.blueprint.database.builder; - -import link.pagan.traqtor.outdated.generator.blueprint.database.ColumnBlueprint; -import link.pagan.traqtor.outdated.util.Name; -import link.pagan.traqtor.outdated.schema.data.DataType; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class ColumnBlueprintBuilder { - - private Name name; - private boolean pk; - private DataType dataType; - - public ColumnBlueprintBuilder() { - this.pk = false; - } - - public boolean pk() { - return this.pk; - } - - public ColumnBlueprintBuilder pk(boolean pk) { - this.pk = pk; - return this; - } - - public ColumnBlueprintBuilder name(Name name) { - this.name = name; - return this; - } - - - public Name name() { - return name; - } - - public DataType dataType() { - return dataType; - } - - public ColumnBlueprintBuilder dataType(DataType dataType) { - this.dataType = dataType; - return this; - } - - public ColumnBlueprint build() { - return new ColumnBlueprint(name); - } - - - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/builder/DatabaseBlueprintBuilder.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/builder/DatabaseBlueprintBuilder.java deleted file mode 100644 index c6e7264..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/builder/DatabaseBlueprintBuilder.java +++ /dev/null @@ -1,57 +0,0 @@ -//package link.pagan.traqtor.outdated.generator.blueprint.database.builder; -// -//import java.util.ArrayList; -//import java.util.Collections; -//import java.util.List; -//import link.pagan.traqtor.outdated.util.Name; -////import link.pagan.traqtor.project.database.mapping.DatabaseAdapter; -// -///** -// * -// * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} -// */ -//public class DatabaseBlueprintBuilder { -// -// private Name name; -// private DatabaseAdapter adapter; -// private final List schemas; -// -// public DatabaseBlueprintBuilder() { -// this.schemas = new ArrayList(); -// } -// -// public Name name() { -// return name; -// } -// -// public DatabaseBlueprintBuilder name(Name name) { -// this.name = name; -// return this; -// } -// -// public DatabaseAdapter adapter() { -// return adapter; -// } -// -// public DatabaseBlueprintBuilder adapter(DatabaseAdapter adapter) { -// this.adapter = adapter; -// return this; -// } -// -// public DatabaseBlueprintBuilder schemas(SchemeBlueprintBuilder... schemas) { -// if (schemas != null) { -// Collections.addAll(this.schemas, schemas); -// } -// return this; -// } -// -// public SchemeBlueprintBuilder scheme(Name name) { -// for (SchemeBlueprintBuilder sbb : schemas) { -// if (sbb.name().equals(name)) { -// return sbb; -// } -// } -// return null; -// } -// -//} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/builder/SchemeBlueprintBuilder.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/builder/SchemeBlueprintBuilder.java deleted file mode 100644 index b5bdd7e..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/builder/SchemeBlueprintBuilder.java +++ /dev/null @@ -1,46 +0,0 @@ -package link.pagan.traqtor.outdated.generator.blueprint.database.builder; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import link.pagan.traqtor.outdated.util.Name; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class SchemeBlueprintBuilder { - - private Name name; - private final List tables; - - public SchemeBlueprintBuilder() { - this.tables = new ArrayList(); - } - - public Name name() { - return name; - } - - public SchemeBlueprintBuilder name(Name name) { - this.name = name; - return this; - } - - public SchemeBlueprintBuilder tables(TableBlueprintBuilder... tables) { - if (tables != null) { - Collections.addAll(this.tables, tables); - } - return this; - } - - public TableBlueprintBuilder table(Name name) { - for (TableBlueprintBuilder tbb : tables) { - if (tbb.name().equals(name)) { - return tbb; - } - } - return null; - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/builder/TableBlueprintBuilder.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/builder/TableBlueprintBuilder.java deleted file mode 100644 index 02fe5d0..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/database/builder/TableBlueprintBuilder.java +++ /dev/null @@ -1,46 +0,0 @@ -package link.pagan.traqtor.outdated.generator.blueprint.database.builder; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import link.pagan.traqtor.outdated.util.Name; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class TableBlueprintBuilder { - - private Name name; - private final List columns; - - public TableBlueprintBuilder() { - this.columns = new ArrayList(); - } - - public Name name() { - return name; - } - - public TableBlueprintBuilder name(Name name) { - this.name = name; - return this; - } - - public TableBlueprintBuilder columns(ColumnBlueprintBuilder... columns) { - if (columns != null) { - Collections.addAll(this.columns, columns); - } - return this; - } - - public ColumnBlueprintBuilder column(Name name) { - for (ColumnBlueprintBuilder cbb : columns) { - if (cbb.name().equals(name)) { - return cbb; - } - } - return null; - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/frontend/FrontendBlueprint.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/frontend/FrontendBlueprint.java deleted file mode 100644 index ab526ac..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/frontend/FrontendBlueprint.java +++ /dev/null @@ -1,14 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package link.pagan.traqtor.outdated.generator.blueprint.frontend; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class FrontendBlueprint { - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/logic/EndpointBlueprint.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/logic/EndpointBlueprint.java deleted file mode 100644 index db8e005..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/logic/EndpointBlueprint.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package link.pagan.traqtor.outdated.generator.blueprint.mdl.logic; - -import java.util.ArrayList; -import link.pagan.traqtor.outdated.generator.blueprint.mdl.security.permission.PermissionBlueprint; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class EndpointBlueprint { - - ArrayList permissions; - String name; - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/logic/RegistryBlueprint.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/logic/RegistryBlueprint.java deleted file mode 100644 index 9ec8957..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/logic/RegistryBlueprint.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package link.pagan.traqtor.outdated.generator.blueprint.mdl.logic; - -import java.util.ArrayList; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class RegistryBlueprint { - - ArrayList endpoints; - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/logic/ResourceBlueprint.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/logic/ResourceBlueprint.java deleted file mode 100644 index f6c1d1b..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/logic/ResourceBlueprint.java +++ /dev/null @@ -1,19 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package link.pagan.traqtor.outdated.generator.blueprint.mdl.logic; - -import java.util.ArrayList; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class ResourceBlueprint { - - String name; - ArrayList endpoints; - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/logic/ServiceBlueprint.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/logic/ServiceBlueprint.java deleted file mode 100644 index ab6d4f1..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/logic/ServiceBlueprint.java +++ /dev/null @@ -1,14 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package link.pagan.traqtor.outdated.generator.blueprint.mdl.logic; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class ServiceBlueprint { - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/security/permission/PermissionBlueprint.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/security/permission/PermissionBlueprint.java deleted file mode 100644 index c2f59b0..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/security/permission/PermissionBlueprint.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package link.pagan.traqtor.outdated.generator.blueprint.mdl.security.permission; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class PermissionBlueprint { - - String name; - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/security/permission/PermissionDomainBlueprint.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/security/permission/PermissionDomainBlueprint.java deleted file mode 100644 index 1c1c296..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/security/permission/PermissionDomainBlueprint.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package link.pagan.traqtor.outdated.generator.blueprint.mdl.security.permission; - -import java.util.ArrayList; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class PermissionDomainBlueprint { - - String name; - ArrayList permissions; - ArrayList subdomains; - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/security/role/RoleBlueprint.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/security/role/RoleBlueprint.java deleted file mode 100644 index 23631d4..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/mdl/security/role/RoleBlueprint.java +++ /dev/null @@ -1,14 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package link.pagan.traqtor.outdated.generator.blueprint.mdl.security.role; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class RoleBlueprint { - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/AtomBlueprint.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/AtomBlueprint.java deleted file mode 100644 index 428da2b..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/AtomBlueprint.java +++ /dev/null @@ -1,57 +0,0 @@ -package link.pagan.traqtor.outdated.generator.blueprint.universe; - -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.SerializerProvider; -import com.fasterxml.jackson.databind.ser.std.StdSerializer; -import java.io.IOException; -import java.util.List; -import link.pagan.traqtor.outdated.util.Name; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class AtomBlueprint { - - Name name; - String description; - List particles; - - public AtomBlueprint(Name name, String description, List particles) { - this.name = name; - this.description = description; - this.particles = particles; - } - - public Name name() { - return name; - } - - public static final class AtomBlueprintSerializer extends StdSerializer { - - private static final long serialVersionUID = 1L; - - public AtomBlueprintSerializer() { - this(null); - } - - public AtomBlueprintSerializer(Class t) { - super(t); - } - - @Override - public void serialize(AtomBlueprint value, JsonGenerator gen, SerializerProvider provider) throws IOException { - gen.writeStartObject(); - gen.writeObjectField("name", value.name); - gen.writeStringField("description", value.description); - gen.writeArrayFieldStart("particles"); - for (ParticleBlueprint ab : value.particles) { - gen.writeObject(ab); - } - gen.writeEndArray(); - gen.writeEndObject(); - } - - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/LinkBlueprint.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/LinkBlueprint.java deleted file mode 100644 index a2d0821..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/LinkBlueprint.java +++ /dev/null @@ -1,54 +0,0 @@ -package link.pagan.traqtor.outdated.generator.blueprint.universe; - -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.SerializerProvider; -import com.fasterxml.jackson.databind.ser.std.StdSerializer; -import java.io.IOException; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class LinkBlueprint { - - AtomBlueprint from; - AtomBlueprint to; - LinkType type; - - public LinkBlueprint(AtomBlueprint from, AtomBlueprint to, LinkType type) { - this.from = from; - this.to = to; - this.type = type; - } - - public AtomBlueprint from() { - return from; - } - - public AtomBlueprint to() { - return to; - } - - public static final class LinkBlueprintSerializer extends StdSerializer { - - private static final long serialVersionUID = 1L; - - public LinkBlueprintSerializer() { - this(null); - } - - public LinkBlueprintSerializer(Class t) { - super(t); - } - - @Override - public void serialize(LinkBlueprint value, JsonGenerator gen, SerializerProvider provider) throws IOException { - gen.writeStartObject(); - gen.writeObjectField("name", value.from.name); - gen.writeObjectField("to", value.to.name); - gen.writeObjectField("type", value.type); - gen.writeEndObject(); - } - - } -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/LinkType.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/LinkType.java deleted file mode 100644 index 834cbae..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/LinkType.java +++ /dev/null @@ -1,41 +0,0 @@ -package link.pagan.traqtor.outdated.generator.blueprint.universe; - -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.SerializerProvider; -import com.fasterxml.jackson.databind.ser.std.StdSerializer; -import java.io.IOException; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public enum LinkType { - MANY_TO_MANY, - ONE_TO_MANY, - ONE_TO_ONE; - - public static final class LinkTypeSerializer extends StdSerializer { - - private static final long serialVersionUID = 1L; - - public LinkTypeSerializer() { - this(null); - } - - public LinkTypeSerializer(Class t) { - super(t); - } - - @Override - public void serialize(LinkType value, JsonGenerator gen, SerializerProvider provider) throws IOException { - if (value.equals(MANY_TO_MANY)) { - gen.writeString("MANY_TO_MANY"); - } else if (value.equals(ONE_TO_MANY)) { - gen.writeString("ONE_TO_MANY"); - } else { - gen.writeString("ONE_TO_ONE"); - } - } - - } -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/ParticleBlueprint.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/ParticleBlueprint.java deleted file mode 100644 index 6ae56e8..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/ParticleBlueprint.java +++ /dev/null @@ -1,53 +0,0 @@ -package link.pagan.traqtor.outdated.generator.blueprint.universe; - -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.SerializerProvider; -import com.fasterxml.jackson.databind.ser.std.StdSerializer; -import java.io.IOException; -import link.pagan.traqtor.outdated.util.Name; -import link.pagan.traqtor.outdated.schema.data.DataType; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class ParticleBlueprint { - - Name name; - String description; - DataType type; - - public ParticleBlueprint(Name name, String description, DataType type) { - this.name = name; - this.description = description; - this.type = type; - } - - public Name name() { - return name; - } - - public static final class ParticleBlueprintSerializer extends StdSerializer { - - private static final long serialVersionUID = 1L; - - public ParticleBlueprintSerializer() { - this(null); - } - - public ParticleBlueprintSerializer(Class t) { - super(t); - } - - @Override - public void serialize(ParticleBlueprint value, JsonGenerator gen, SerializerProvider provider) throws IOException { - gen.writeStartObject(); - gen.writeObjectField("name", value.name); - gen.writeStringField("description", value.description); - gen.writeStringField("type", value.type.getName()); - gen.writeEndObject(); - } - - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/UniverseBlueprint.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/UniverseBlueprint.java deleted file mode 100644 index 578077b..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/UniverseBlueprint.java +++ /dev/null @@ -1,57 +0,0 @@ -package link.pagan.traqtor.outdated.generator.blueprint.universe; - -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.SerializerProvider; -import com.fasterxml.jackson.databind.ser.std.StdSerializer; -import java.io.IOException; -import java.util.List; -import link.pagan.traqtor.outdated.generator.blueprint.ProjectBlueprint; -import link.pagan.traqtor.outdated.schema.data.DataTypeSchema; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class UniverseBlueprint extends ProjectBlueprint { - - List atoms; - List links; - DataTypeSchema dataTypeSchema; - - public UniverseBlueprint(List atoms, List links, DataTypeSchema dataTypeSchema) { - this.atoms = atoms; - this.links = links; - this.dataTypeSchema = dataTypeSchema; - } - - public static final class UniverseBlueprintSerializer extends StdSerializer { - - private static final long serialVersionUID = 1L; - - public UniverseBlueprintSerializer() { - this(null); - } - - public UniverseBlueprintSerializer(Class t) { - super(t); - } - - @Override - public void serialize(UniverseBlueprint value, JsonGenerator gen, SerializerProvider provider) throws IOException { - gen.writeStartObject(); - gen.writeObjectField("schema", value.dataTypeSchema.getName()); - gen.writeArrayFieldStart("atoms"); - for (AtomBlueprint ab : value.atoms) { - gen.writeObject(ab); - } - gen.writeEndArray(); - gen.writeArrayFieldStart("links"); - for (LinkBlueprint lb : value.links) { - gen.writeObject(lb); - } - gen.writeEndArray(); - gen.writeEndObject(); - } - - } -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/build/AtomBlueprintBuilder.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/build/AtomBlueprintBuilder.java deleted file mode 100644 index ef14075..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/build/AtomBlueprintBuilder.java +++ /dev/null @@ -1,57 +0,0 @@ -package link.pagan.traqtor.outdated.generator.blueprint.universe.build; - -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; -import link.pagan.traqtor.outdated.generator.blueprint.universe.AtomBlueprint; -import link.pagan.traqtor.outdated.generator.blueprint.universe.ParticleBlueprint; -import link.pagan.traqtor.outdated.util.Name; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class AtomBlueprintBuilder { - - Name name; - String description; - List particleBuilders; - - public AtomBlueprintBuilder() { - this.particleBuilders = new ArrayList<>(); - } - - public AtomBlueprint build(UniverseBlueprintBuilder builder) { - List particles = new ArrayList<>(); - for (ParticleBlueprintBuilder pb : particleBuilders) { - particles.add(pb.build(builder)); - } - particles.sort(new Comparator() { - @Override - public int compare(ParticleBlueprint a, ParticleBlueprint b) { - return a.name().asDotted().compareTo(b.name().asDotted()); - } - }); - return new AtomBlueprint(name, description, particles); - } - - public Name name() { - return name; - } - - public AtomBlueprintBuilder name(Name name) { - this.name = name; - return this; - } - - public AtomBlueprintBuilder description(String description) { - this.description = description; - return this; - } - - public AtomBlueprintBuilder addParticle(ParticleBlueprintBuilder particle) { - this.particleBuilders.add(particle); - return this; - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/build/LinkBlueprintBuilder.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/build/LinkBlueprintBuilder.java deleted file mode 100644 index 07f6aa0..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/build/LinkBlueprintBuilder.java +++ /dev/null @@ -1,55 +0,0 @@ -package link.pagan.traqtor.outdated.generator.blueprint.universe.build; - -import java.util.ArrayList; -import link.pagan.traqtor.outdated.generator.blueprint.universe.AtomBlueprint; -import link.pagan.traqtor.outdated.generator.blueprint.universe.LinkBlueprint; -import link.pagan.traqtor.outdated.generator.blueprint.universe.LinkType; -import link.pagan.traqtor.outdated.util.Name; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class LinkBlueprintBuilder { - - Name from; - Name to; - LinkType type; - - public LinkBlueprint build(UniverseBlueprintBuilder builder, ArrayList atoms) { - AtomBlueprint fromAtom = getAtom(from, atoms); - if (fromAtom == null) { - throw new RuntimeException("Link from atom can not be null"); - } - AtomBlueprint toAtom = getAtom(to, atoms); - if (toAtom == null) { - throw new RuntimeException("Link to atom can not be null"); - } - return new LinkBlueprint(fromAtom, toAtom, type); - } - - public LinkBlueprintBuilder from(Name from) { - this.from = from; - return this; - } - - public LinkBlueprintBuilder to(Name to) { - this.to = to; - return this; - } - - public LinkBlueprintBuilder type(LinkType type) { - this.type = type; - return this; - } - - private static AtomBlueprint getAtom(Name name, ArrayList atoms) { - for (AtomBlueprint ab : atoms) { - if (ab.name().equals(name)) { - return ab; - } - } - return null; - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/build/ParticleBlueprintBuilder.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/build/ParticleBlueprintBuilder.java deleted file mode 100644 index 1dc6e2e..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/build/ParticleBlueprintBuilder.java +++ /dev/null @@ -1,40 +0,0 @@ -package link.pagan.traqtor.outdated.generator.blueprint.universe.build; - -import link.pagan.traqtor.outdated.generator.blueprint.universe.ParticleBlueprint; -import link.pagan.traqtor.outdated.util.Name; -import link.pagan.traqtor.outdated.schema.data.DataType; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class ParticleBlueprintBuilder { - - Name name; - String description; - String type; - - public ParticleBlueprint build(UniverseBlueprintBuilder builder) { - DataType dataType = builder.getType(type); - if (dataType == null) { - throw new RuntimeException("Particle type was not found on build"); - } - return new ParticleBlueprint(name, description, dataType); - } - - public ParticleBlueprintBuilder name(Name name) { - this.name = name; - return this; - } - - public ParticleBlueprintBuilder description(String description) { - this.description = description; - return this; - } - - public ParticleBlueprintBuilder type(String type) { - this.type = type; - return this; - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/build/UniverseBlueprintBuilder.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/build/UniverseBlueprintBuilder.java deleted file mode 100644 index 3942662..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/generator/blueprint/universe/build/UniverseBlueprintBuilder.java +++ /dev/null @@ -1,73 +0,0 @@ -package link.pagan.traqtor.outdated.generator.blueprint.universe.build; - -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; -import link.pagan.traqtor.outdated.generator.blueprint.universe.UniverseBlueprint; -import link.pagan.traqtor.outdated.generator.blueprint.universe.AtomBlueprint; -import link.pagan.traqtor.outdated.generator.blueprint.universe.LinkBlueprint; -import link.pagan.traqtor.outdated.schema.data.DataType; -import link.pagan.traqtor.outdated.schema.data.DataTypeSchema; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class UniverseBlueprintBuilder { - - List atomBuilders; - List linkBuilder; - DataTypeSchema dataTypeSchema; - - public UniverseBlueprintBuilder(DataTypeSchema dataTypeSchema) { - this.atomBuilders = new ArrayList<>(); - this.linkBuilder = new ArrayList<>(); - this.dataTypeSchema = dataTypeSchema; - } - - public UniverseBlueprintBuilder addAtom(AtomBlueprintBuilder atom) { - this.atomBuilders.add(atom); - return this; - } - - public UniverseBlueprintBuilder addLink(LinkBlueprintBuilder link) { - this.linkBuilder.add(link); - return this; - } - - public UniverseBlueprint build() { - ArrayList atoms = new ArrayList<>(); - for (AtomBlueprintBuilder ab : atomBuilders) { - atoms.add(ab.build(this)); - } - atoms.sort(new Comparator() { - @Override - public int compare(AtomBlueprint a, AtomBlueprint b) { - return a.name().asDotted().compareTo(b.name().asDotted()); - } - }); - - ArrayList links = new ArrayList<>(); - for (LinkBlueprintBuilder lb : linkBuilder) { - links.add(lb.build(this, atoms)); - } - links.sort(new Comparator() { - @Override - public int compare(LinkBlueprint a, LinkBlueprint b) { - return (a.from().name().asDotted() + "->" + a.to().name().asDotted()).compareTo( - (b.from().name().asDotted() + "->" + b.to().name().asDotted())); - } - }); - return new UniverseBlueprint(atoms, links, dataTypeSchema); - } - - DataType getType(String type) { - for (DataType dt : this.dataTypeSchema.getDataTypes()) { - if (dt.getName().equals(type)) { - return dt; - } - } - return null; - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/basic/EndpointSchemaImpl.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/basic/EndpointSchemaImpl.java deleted file mode 100644 index 455c754..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/basic/EndpointSchemaImpl.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package link.pagan.traqtor.outdated.schema.basic; - -import java.util.List; -import link.pagan.traqtor.outdated.schema.logic.EndpointSchema; -import link.pagan.traqtor.outdated.schema.logic.EndpointTemplate; - - - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class EndpointSchemaImpl implements EndpointSchema { - - @Override - public List getPatterns() { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/basic/data/DataTypeSchemaReferenceImplementation.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/basic/data/DataTypeSchemaReferenceImplementation.java deleted file mode 100644 index b7470c0..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/basic/data/DataTypeSchemaReferenceImplementation.java +++ /dev/null @@ -1,79 +0,0 @@ -package link.pagan.traqtor.outdated.schema.basic.data; - -import java.util.List; -import link.pagan.traqtor.outdated.schema.basic.data.mapping.MappingSchemaImpl; -import link.pagan.traqtor.outdated.schema.data.DataType; -import link.pagan.traqtor.outdated.schema.data.DataTypeSchema; -import link.pagan.traqtor.outdated.schema.data.mapping.MappingSchema; -import link.pagan.traqtor.outdated.util.Name; - - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class DataTypeSchemaReferenceImplementation implements DataTypeSchema { - - private static final Name name = Name.of("traqtor", "basic"); - - // ARRAY(""), - // LIST(""), - // SET(""), - // MAP(""), - public static final DataType BOOLEAN = new DataType("boolean"); - public static final DataType BYTE = new DataType("byte"); - public static final DataType SHORT = new DataType("short"); - public static final DataType INTEGER = new DataType("int"); - public static final DataType LONG = new DataType("long"); - public static final DataType FLOAT = new DataType("float"); - public static final DataType DOUBLE = new DataType("double"); - public static final DataType STRING = new DataType("string"); - public static final DataType DATE = new DataType("date"); - public static final DataType TIME = new DataType("time"); - public static final DataType TIMESTAMP = new DataType("timestamp"); - public static final DataType ID = new DataType("id"); - public static final DataType UUID = new DataType("uuid"); - - private static final List dataTypes = List.of(BOOLEAN, BYTE, SHORT, INTEGER, LONG, FLOAT, DOUBLE, STRING, - DATE, TIME, TIMESTAMP, ID, UUID); - - private static final List mappingSchemas = List.of(new MappingSchemaImpl()); - - @Override - public List getDataTypes() { - return dataTypes; - } - - @Override - public Name getName() { - return name; - } - - @Override - public List getMappingSchema() { - return mappingSchemas; - } - -// @Override -// public Map register() { -// return new HashMap(){ -// private static final long serialVersionUID = 1L; -// { -// put(BOOLEAN.getName(), BOOLEAN); -// put(BYTE.getName(), BYTE); -// put(SHORT.getName(), SHORT); -// put(INTEGER.getName(), INTEGER); -// put(LONG.getName(), LONG); -// put(FLOAT.getName(), FLOAT); -// put(DOUBLE.getName(), DOUBLE); -// put(STRING.getName(), STRING); -// put(BOOLEAN.getName(), BOOLEAN); -// put(DATE.getName(), DATE); -// put(TIME.getName(), TIME); -// put(TIMESTAMP.getName(), TIMESTAMP); -// put(ID.getName(), ID); -// put(UUID.getName(), UUID); -// }}; -// } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/basic/data/mapping/MappingSchemaImpl.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/basic/data/mapping/MappingSchemaImpl.java deleted file mode 100644 index c09e041..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/basic/data/mapping/MappingSchemaImpl.java +++ /dev/null @@ -1,59 +0,0 @@ -package link.pagan.traqtor.outdated.schema.basic.data.mapping; - -import java.util.List; -import link.pagan.traqtor.outdated.schema.basic.data.DataTypeSchemaReferenceImplementation; -import link.pagan.traqtor.outdated.schema.data.mapping.MappingEntry; -import link.pagan.traqtor.outdated.schema.data.mapping.MappingSchema; -import link.pagan.traqtor.outdated.util.Name; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class MappingSchemaImpl implements MappingSchema { - - private static final Name name = Name.of("traqtor", "basic", "default"); - - public static final MappingEntry NULLABLE_BOOLEAN = new MappingEntry(DataTypeSchemaReferenceImplementation.BOOLEAN , true , false ); - public static final MappingEntry BOOLEAN = new MappingEntry(DataTypeSchemaReferenceImplementation.BOOLEAN , false , true ); - public static final MappingEntry NULLABLE_BYTE = new MappingEntry(DataTypeSchemaReferenceImplementation.BYTE , true , false ); - public static final MappingEntry BYTE = new MappingEntry(DataTypeSchemaReferenceImplementation.BYTE , false , true ); - public static final MappingEntry NULLABLE_SHORT = new MappingEntry(DataTypeSchemaReferenceImplementation.SHORT , true , false ); - public static final MappingEntry SHORT = new MappingEntry(DataTypeSchemaReferenceImplementation.SHORT , false , true ); - public static final MappingEntry NULLABLE_INTEGER = new MappingEntry(DataTypeSchemaReferenceImplementation.INTEGER , true , false ); - public static final MappingEntry INTEGER = new MappingEntry(DataTypeSchemaReferenceImplementation.INTEGER , false , true ); - public static final MappingEntry NULLABLE_LONG = new MappingEntry(DataTypeSchemaReferenceImplementation.LONG , true , false ); - public static final MappingEntry LONG = new MappingEntry(DataTypeSchemaReferenceImplementation.LONG , false , true ); - public static final MappingEntry NULLABLE_FLOAT = new MappingEntry(DataTypeSchemaReferenceImplementation.FLOAT , true , false ); - public static final MappingEntry FLOAT = new MappingEntry(DataTypeSchemaReferenceImplementation.FLOAT , false , false ); - public static final MappingEntry NULLABLE_DOUBLE = new MappingEntry(DataTypeSchemaReferenceImplementation.DOUBLE , true , false ); - public static final MappingEntry DOUBLE = new MappingEntry(DataTypeSchemaReferenceImplementation.DOUBLE , false , false ); - public static final MappingEntry STRING = new MappingEntry(DataTypeSchemaReferenceImplementation.STRING , true , false ); - public static final MappingEntry DATE = new MappingEntry(DataTypeSchemaReferenceImplementation.DATE , true , false ); - public static final MappingEntry TIME = new MappingEntry(DataTypeSchemaReferenceImplementation.TIME , true , false ); - public static final MappingEntry TIMESTAMP = new MappingEntry(DataTypeSchemaReferenceImplementation.TIMESTAMP , true , false ); - public static final MappingEntry ID = new MappingEntry(DataTypeSchemaReferenceImplementation.ID , true , true ); - public static final MappingEntry UUID = new MappingEntry(DataTypeSchemaReferenceImplementation.UUID , true , true ); - - private static final List mappings = List.of(NULLABLE_BOOLEAN, BOOLEAN, - NULLABLE_BYTE, BYTE, - NULLABLE_SHORT, SHORT, - NULLABLE_INTEGER, INTEGER, - NULLABLE_LONG, LONG, - NULLABLE_FLOAT, FLOAT, - NULLABLE_DOUBLE, DOUBLE, - STRING, - DATE, TIME, TIMESTAMP, - ID, UUID); - - @Override - public List getMappings() { - return mappings; - } - - @Override - public Name getName() { - return name; - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/DataType.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/DataType.java deleted file mode 100644 index e85f2c0..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/DataType.java +++ /dev/null @@ -1,19 +0,0 @@ -package link.pagan.traqtor.outdated.schema.data; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class DataType { - - private final String name; - - public DataType(String name) { - this.name = name; - } - - public String getName() { - return name; - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/DataTypeSchema.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/DataTypeSchema.java deleted file mode 100644 index b167db2..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/DataTypeSchema.java +++ /dev/null @@ -1,17 +0,0 @@ -package link.pagan.traqtor.outdated.schema.data; - -import link.pagan.traqtor.outdated.schema.data.mapping.MappingSchema; -import link.pagan.traqtor.outdated.util.Named; -import java.util.List; -import link.pagan.traqtor.outdated.util.Registrable; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public interface DataTypeSchema extends Named, Registrable { - - public List getDataTypes(); - public List getMappingSchema(); - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/mapping/Mapping.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/mapping/Mapping.java deleted file mode 100644 index 2185659..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/mapping/Mapping.java +++ /dev/null @@ -1,27 +0,0 @@ -package link.pagan.traqtor.outdated.schema.data.mapping; - -import java.util.HashMap; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public abstract class Mapping { - - private final String name; - private final HashMap mapping; - - protected Mapping(String name, HashMap mapping) { - this.mapping = mapping; - this.name = name; - } - - public String getName() { - return name; - } - - public HashMap getMapping() { - return mapping; - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/mapping/MappingEntry.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/mapping/MappingEntry.java deleted file mode 100644 index 9fe0446..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/mapping/MappingEntry.java +++ /dev/null @@ -1,35 +0,0 @@ -package link.pagan.traqtor.outdated.schema.data.mapping; - -import link.pagan.traqtor.outdated.schema.data.DataType; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class MappingEntry { - - - - private final DataType dataType; - private final boolean nullable; - private final boolean keyable; - - public MappingEntry(DataType dataType, boolean nullable, boolean keyable) { - this.dataType = dataType; - this.nullable = nullable; - this.keyable = keyable; - } - - public DataType getDataType() { - return dataType; - } - - public boolean isNullable() { - return nullable; - } - - public boolean isKeyable() { - return keyable; - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/mapping/MappingSchema.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/mapping/MappingSchema.java deleted file mode 100644 index bb3491f..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/mapping/MappingSchema.java +++ /dev/null @@ -1,14 +0,0 @@ -package link.pagan.traqtor.outdated.schema.data.mapping; - -import link.pagan.traqtor.outdated.util.Named; -import java.util.List; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public interface MappingSchema extends Named { - - public List getMappings (); - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/mapping/backend/BackendMapping.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/mapping/backend/BackendMapping.java deleted file mode 100644 index cc00092..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/mapping/backend/BackendMapping.java +++ /dev/null @@ -1,17 +0,0 @@ -package link.pagan.traqtor.outdated.schema.data.mapping.backend; - -import java.util.HashMap; -import link.pagan.traqtor.outdated.schema.data.mapping.Mapping; -import link.pagan.traqtor.outdated.schema.data.mapping.MappingEntry; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class BackendMapping extends Mapping { - - public BackendMapping(String name, HashMap mapping) { - super(name, mapping); - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/mapping/frontend/FrontendMapping.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/mapping/frontend/FrontendMapping.java deleted file mode 100644 index 46fa7d8..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/data/mapping/frontend/FrontendMapping.java +++ /dev/null @@ -1,17 +0,0 @@ -package link.pagan.traqtor.outdated.schema.data.mapping.frontend; - -import java.util.HashMap; -import link.pagan.traqtor.outdated.schema.data.mapping.Mapping; -import link.pagan.traqtor.outdated.schema.data.mapping.MappingEntry; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class FrontendMapping extends Mapping { - - public FrontendMapping(String name, HashMap mapping) { - super(name, mapping); - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/logic/EndpointSchema.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/logic/EndpointSchema.java deleted file mode 100644 index d017dbd..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/logic/EndpointSchema.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package link.pagan.traqtor.outdated.schema.logic; - -import java.util.List; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public interface EndpointSchema { - - public List getPatterns(); - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/logic/EndpointTemplate.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/logic/EndpointTemplate.java deleted file mode 100644 index 56679c4..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/schema/logic/EndpointTemplate.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package link.pagan.traqtor.outdated.schema.logic; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class EndpointTemplate { - - - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/util/Name.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/util/Name.java deleted file mode 100644 index de49ec8..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/util/Name.java +++ /dev/null @@ -1,135 +0,0 @@ -package link.pagan.traqtor.outdated.util; - -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.SerializerProvider; -import com.fasterxml.jackson.databind.deser.std.StdDeserializer; -import com.fasterxml.jackson.databind.ser.std.StdSerializer; -import java.io.IOException; -import java.util.Arrays; -import java.util.Comparator; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public class Name { - - public static final Comparator COMPARATOR = new Comparator() { - @Override - public int compare(Name a, Name b) { - return a.asDotted().compareTo(b.asDotted()); - } - }; - - String[] parts; - - public Name(String[] parts) { - this.parts = parts; - } - - public static Name of(String... parts) { - if (parts == null) { - throw new NullPointerException("name can not be null"); - } - if (parts.length < 1) { - throw new IllegalArgumentException("name can not be empty"); - } - return new Name(parts); - } - - public String asDotted() { - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < this.parts.length; i++) { - sb.append(parts[i]); - if (i != this.parts.length - 1) { - sb.append('.'); - } - } - return sb.toString(); - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null) { - return false; - } - if (getClass() != o.getClass()) { - return false; - } - Name name = (Name) o; - if (name.parts == null) { - return false; - } - if (name.parts.length != this.parts.length) { - return false; - } - for (int i = 0; i < this.parts.length; i++) { - if (!this.parts[i].equals(name.parts[i])) { - return false; - } - } - return true; - } - - @Override - public int hashCode() { - int hash = 7; - hash = 43 * hash + Arrays.deepHashCode(this.parts); - return hash; - } - - public static final class NameSerializer extends StdSerializer { - - private static final long serialVersionUID = 1L; - - public NameSerializer() { - this(null); - } - - public NameSerializer(Class t) { - super(t); - } - - @Override - public void serialize(Name value, JsonGenerator gen, SerializerProvider provider) throws IOException { - gen.writeArray(value.parts, 0, value.parts.length); - } - - } - - public static final class NameDeserializer extends StdDeserializer { - - private static final long serialVersionUID = 1L; - - public NameDeserializer() { - this(null); - } - - public NameDeserializer(Class t) { - super(t); - } - - @Override - public Name deserialize(JsonParser parser, DeserializationContext context) throws IOException, JsonProcessingException { - - JsonNode partArray = parser.getCodec().readTree(parser); - String[] parts = new String[partArray.size()]; - int i = 0; - for (final JsonNode part : partArray) { - parts[i] = part.asText(); - i++; - } - - return new Name(parts); - } - - } - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/util/Named.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/util/Named.java deleted file mode 100644 index b6d2542..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/util/Named.java +++ /dev/null @@ -1,11 +0,0 @@ -package link.pagan.traqtor.outdated.util; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public interface Named { - - public Name getName(); - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/util/Registrable.java b/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/util/Registrable.java deleted file mode 100644 index ef76c50..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/outdated/util/Registrable.java +++ /dev/null @@ -1,11 +0,0 @@ -package link.pagan.traqtor.outdated.util; - -/** - * - * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} - */ -public interface Registrable { - -// public Map register(); - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/Project.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/Project.java index 30637ba..4ee132e 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/Project.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/Project.java @@ -1,8 +1,17 @@ package link.pagan.traqtor.project; -import link.pagan.traqtor.outdated.util.Name; +import link.pagan.traqtor.util.Name; -public class Project { +public abstract class Project { + + protected Name name; + + protected boolean dirty; + + public Name name () { + if (name == null) return Name.NO_NAME; + return this.name; + } public Project name (String... parts) { @@ -10,7 +19,7 @@ public class Project { } public Project name (Name name) { - + this.name = name; return this; } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/backend/mapping/JavaBackendMapping.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/backend/mapping/JavaBackendMapping.java index 687164b..fd84898 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/backend/mapping/JavaBackendMapping.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/backend/mapping/JavaBackendMapping.java @@ -1,46 +1,45 @@ -package link.pagan.traqtor.project.backend.mapping; - -import java.util.HashMap; -import link.pagan.traqtor.outdated.schema.basic.data.mapping.MappingSchemaImpl; -import link.pagan.traqtor.outdated.schema.data.mapping.backend.BackendMapping; -import link.pagan.traqtor.outdated.schema.data.mapping.MappingEntry; - -/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ -public class JavaBackendMapping extends BackendMapping { - - public JavaBackendMapping () { - super("Java", new HashMap() { - - private static final long serialVersionUID = 1L; - { - put(MappingSchemaImpl.NULLABLE_BOOLEAN, "Boolean"); - put(MappingSchemaImpl.NULLABLE_BYTE, "Byte"); - put(MappingSchemaImpl.NULLABLE_SHORT, "Short"); - put(MappingSchemaImpl.NULLABLE_INTEGER, "Integer"); - put(MappingSchemaImpl.NULLABLE_LONG, "Long"); - - put(MappingSchemaImpl.BOOLEAN, "boolean"); - put(MappingSchemaImpl.BYTE, "byte"); - put(MappingSchemaImpl.SHORT, "short"); - put(MappingSchemaImpl.INTEGER, "integer"); - put(MappingSchemaImpl.LONG, "long"); - - put(MappingSchemaImpl.NULLABLE_DOUBLE, "Double"); - put(MappingSchemaImpl.NULLABLE_FLOAT, "Float"); - - put(MappingSchemaImpl.DOUBLE, "double"); - put(MappingSchemaImpl.FLOAT, "float"); - - put(MappingSchemaImpl.ID, "long"); - put(MappingSchemaImpl.UUID, "String"); - - put(MappingSchemaImpl.STRING, "String"); - put(MappingSchemaImpl.DATE, "Date"); - put(MappingSchemaImpl.TIME, "Time"); - put(MappingSchemaImpl.TIMESTAMP, "Timestamp"); - } - - }); - } - -} +// package link.pagan.traqtor.project.backend.mapping; +// +// import java.util.HashMap; +// import link.pagan.traqtor.mapping.MappingEntry; +// import link.pagan.traqtor.mapping.backend.BackendMapping; +// +/// ** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +// public class JavaBackendMapping extends BackendMapping { +// +// public JavaBackendMapping () { +// super("Java", new HashMap() { +// +// private static final long serialVersionUID = 1L; +// { +// put(MappingSchemaImpl.NULLABLE_BOOLEAN, "Boolean"); +// put(MappingSchemaImpl.NULLABLE_BYTE, "Byte"); +// put(MappingSchemaImpl.NULLABLE_SHORT, "Short"); +// put(MappingSchemaImpl.NULLABLE_INTEGER, "Integer"); +// put(MappingSchemaImpl.NULLABLE_LONG, "Long"); +// +// put(MappingSchemaImpl.BOOLEAN, "boolean"); +// put(MappingSchemaImpl.BYTE, "byte"); +// put(MappingSchemaImpl.SHORT, "short"); +// put(MappingSchemaImpl.INTEGER, "integer"); +// put(MappingSchemaImpl.LONG, "long"); +// +// put(MappingSchemaImpl.NULLABLE_DOUBLE, "Double"); +// put(MappingSchemaImpl.NULLABLE_FLOAT, "Float"); +// +// put(MappingSchemaImpl.DOUBLE, "double"); +// put(MappingSchemaImpl.FLOAT, "float"); +// +// put(MappingSchemaImpl.ID, "long"); +// put(MappingSchemaImpl.UUID, "String"); +// +// put(MappingSchemaImpl.STRING, "String"); +// put(MappingSchemaImpl.DATE, "Date"); +// put(MappingSchemaImpl.TIME, "Time"); +// put(MappingSchemaImpl.TIMESTAMP, "Timestamp"); +// } +// +// }); +// } +// +// } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/DatabaseProject.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/DatabaseProject.java index b393dca..d57b56d 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/DatabaseProject.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/DatabaseProject.java @@ -2,7 +2,7 @@ package link.pagan.traqtor.project.database; import link.pagan.traqtor.project.universe.UniverseProject; import link.pagan.traqtor.project.Project; -import link.pagan.traqtor.outdated.util.Name; +import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public class DatabaseProject extends Project { @@ -11,8 +11,7 @@ public class DatabaseProject extends Project { @Override public DatabaseProject name (String... parts) { - super.name(parts); - return this; + return name(Name.of(parts)); } @Override diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/DatabaseSchema.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/DatabaseSchema.java index 8cd225f..ba47583 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/DatabaseSchema.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/DatabaseSchema.java @@ -5,7 +5,7 @@ */ package link.pagan.traqtor.project.database; -import link.pagan.traqtor.outdated.util.Name; +import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public class DatabaseSchema { diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/mapping/DatabaseAdapter.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/mapping/DatabaseAdapter.java index bd81ef8..488a276 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/mapping/DatabaseAdapter.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/mapping/DatabaseAdapter.java @@ -1,19 +1,19 @@ -package link.pagan.traqtor.project.database.mapping; - -import link.pagan.traqtor.outdated.util.Name; -import link.pagan.traqtor.outdated.util.Named; -import link.pagan.traqtor.outdated.util.Registrable; - -/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ -public abstract class DatabaseAdapter implements Named, Registrable { - - private final Name name; - - protected DatabaseAdapter (Name name) { - this.name = name; - } - - @Override - public Name getName () { return name; } - -} +// package link.pagan.traqtor.project.database.mapping; +// +// import link.pagan.traqtor.util.Name; +// import link.pagan.traqtor.util.Named; +// import link.pagan.traqtor.util.Registrable; +// +/// ** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +// public abstract class DatabaseAdapter implements Named, Registrable { +// +// private final Name name; +// +// protected DatabaseAdapter (Name name) { +// this.name = name; +// } +// +// @Override +// public Name getName () { return name; } +// +// } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/mapping/DatabaseMapping.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/mapping/DatabaseMapping.java index b0636bb..d6c55fd 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/mapping/DatabaseMapping.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/mapping/DatabaseMapping.java @@ -1,8 +1,8 @@ package link.pagan.traqtor.project.database.mapping; import java.util.HashMap; -import link.pagan.traqtor.outdated.schema.data.mapping.Mapping; -import link.pagan.traqtor.outdated.schema.data.mapping.MappingEntry; +import link.pagan.traqtor.mapping.Mapping; +import link.pagan.traqtor.mapping.MappingEntry; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public class DatabaseMapping extends Mapping { diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/mapping/impl/PostgresDatabaseAdapter.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/mapping/impl/PostgresDatabaseAdapter.java index f7bc720..30f9be6 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/mapping/impl/PostgresDatabaseAdapter.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/mapping/impl/PostgresDatabaseAdapter.java @@ -1,32 +1,32 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package link.pagan.traqtor.project.database.mapping.impl; - -import link.pagan.traqtor.project.database.mapping.DatabaseAdapter; -import link.pagan.traqtor.outdated.util.Name; - -/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ -public class PostgresDatabaseAdapter extends DatabaseAdapter { - - private static final Name NAME = Name.of("traqtor", "basic", "db", "postgres"); - - public PostgresDatabaseAdapter () { - super(NAME); - } - - // @Override - // public Map register() { - // return new HashMap(){ - // private static final long serialVersionUID = 1L; - // { - // put(NAME, new PostgresDatabaseAdapter()); - // }}; - // } - - @Override - public Name getName () { return NAME; } - -} +/// * +// * To change this license header, choose License Headers in Project Properties. +// * To change this template file, choose Tools | Templates +// * and open the template in the editor. +// */ +// package link.pagan.traqtor.project.database.mapping.impl; +// +// import link.pagan.traqtor.project.database.mapping.DatabaseAdapter; +// import link.pagan.traqtor.util.Name; +// +/// ** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +// public class PostgresDatabaseAdapter extends DatabaseAdapter { +// +// private static final Name NAME = Name.of("traqtor", "basic", "db", "postgres"); +// +// public PostgresDatabaseAdapter () { +// super(NAME); +// } +// +// // @Override +// // public Map register() { +// // return new HashMap(){ +// // private static final long serialVersionUID = 1L; +// // { +// // put(NAME, new PostgresDatabaseAdapter()); +// // }}; +// // } +// +// @Override +// public Name getName () { return NAME; } +// +// } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/mapping/impl/PostgresDatabaseMapping.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/mapping/impl/PostgresDatabaseMapping.java index 03819f2..cfde89b 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/mapping/impl/PostgresDatabaseMapping.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/mapping/impl/PostgresDatabaseMapping.java @@ -1,46 +1,45 @@ -package link.pagan.traqtor.project.database.mapping.impl; - -import java.util.HashMap; -import link.pagan.traqtor.outdated.schema.basic.data.mapping.MappingSchemaImpl; -import link.pagan.traqtor.project.database.mapping.DatabaseMapping; -import link.pagan.traqtor.outdated.schema.data.mapping.MappingEntry; - -/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ -public class PostgresDatabaseMapping extends DatabaseMapping { - - public PostgresDatabaseMapping () { - super("PostgreSQL", new HashMap() { - - private static final long serialVersionUID = 1L; - { - put(MappingSchemaImpl.NULLABLE_BOOLEAN, "boolean"); - put(MappingSchemaImpl.NULLABLE_BYTE, "smallint"); - put(MappingSchemaImpl.NULLABLE_SHORT, "smallint"); - put(MappingSchemaImpl.NULLABLE_INTEGER, "integer"); - put(MappingSchemaImpl.NULLABLE_LONG, "bigint"); - - put(MappingSchemaImpl.BOOLEAN, "boolean"); - put(MappingSchemaImpl.BYTE, "smallint"); - put(MappingSchemaImpl.SHORT, "smallint"); - put(MappingSchemaImpl.INTEGER, "integer"); - put(MappingSchemaImpl.LONG, "bigint"); - - put(MappingSchemaImpl.NULLABLE_DOUBLE, "double precision"); - put(MappingSchemaImpl.NULLABLE_FLOAT, "real"); - - put(MappingSchemaImpl.DOUBLE, "double precision"); - put(MappingSchemaImpl.FLOAT, "real"); - - put(MappingSchemaImpl.ID, "bigserial"); - put(MappingSchemaImpl.UUID, "uuid"); - - put(MappingSchemaImpl.STRING, "String"); - put(MappingSchemaImpl.DATE, "date"); - put(MappingSchemaImpl.TIME, "time"); - put(MappingSchemaImpl.TIMESTAMP, "timestamp"); - } - - }); - } - -} +// package link.pagan.traqtor.project.database.mapping.impl; +// +// import java.util.HashMap; +// import link.pagan.traqtor.mapping.MappingEntry; +// import link.pagan.traqtor.project.database.mapping.DatabaseMapping; +// +/// ** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +// public class PostgresDatabaseMapping extends DatabaseMapping { +// +// public PostgresDatabaseMapping () { +// super("PostgreSQL", new HashMap() { +// +// private static final long serialVersionUID = 1L; +// { +// put(MappingSchemaImpl.NULLABLE_BOOLEAN, "boolean"); +// put(MappingSchemaImpl.NULLABLE_BYTE, "smallint"); +// put(MappingSchemaImpl.NULLABLE_SHORT, "smallint"); +// put(MappingSchemaImpl.NULLABLE_INTEGER, "integer"); +// put(MappingSchemaImpl.NULLABLE_LONG, "bigint"); +// +// put(MappingSchemaImpl.BOOLEAN, "boolean"); +// put(MappingSchemaImpl.BYTE, "smallint"); +// put(MappingSchemaImpl.SHORT, "smallint"); +// put(MappingSchemaImpl.INTEGER, "integer"); +// put(MappingSchemaImpl.LONG, "bigint"); +// +// put(MappingSchemaImpl.NULLABLE_DOUBLE, "double precision"); +// put(MappingSchemaImpl.NULLABLE_FLOAT, "real"); +// +// put(MappingSchemaImpl.DOUBLE, "double precision"); +// put(MappingSchemaImpl.FLOAT, "real"); +// +// put(MappingSchemaImpl.ID, "bigserial"); +// put(MappingSchemaImpl.UUID, "uuid"); +// +// put(MappingSchemaImpl.STRING, "String"); +// put(MappingSchemaImpl.DATE, "date"); +// put(MappingSchemaImpl.TIME, "time"); +// put(MappingSchemaImpl.TIMESTAMP, "timestamp"); +// } +// +// }); +// } +// +// } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/frontend/mapping/JavaScriptFrontendMapping.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/frontend/mapping/JavaScriptFrontendMapping.java index f5f5c40..6176f78 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/frontend/mapping/JavaScriptFrontendMapping.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/frontend/mapping/JavaScriptFrontendMapping.java @@ -1,46 +1,45 @@ -package link.pagan.traqtor.project.frontend.mapping; - -import java.util.HashMap; -import link.pagan.traqtor.outdated.schema.basic.data.mapping.MappingSchemaImpl; -import link.pagan.traqtor.outdated.schema.data.mapping.frontend.FrontendMapping; -import link.pagan.traqtor.outdated.schema.data.mapping.MappingEntry; - -/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ -public class JavaScriptFrontendMapping extends FrontendMapping { - - public JavaScriptFrontendMapping () { - super("JavaScript", new HashMap() { - - private static final long serialVersionUID = 1L; - { - put(MappingSchemaImpl.NULLABLE_BOOLEAN, "Boolean"); - put(MappingSchemaImpl.NULLABLE_BYTE, "Number"); - put(MappingSchemaImpl.NULLABLE_SHORT, "Number"); - put(MappingSchemaImpl.NULLABLE_INTEGER, "Number"); - put(MappingSchemaImpl.NULLABLE_LONG, "BigInt"); - - put(MappingSchemaImpl.BOOLEAN, "Boolean"); - put(MappingSchemaImpl.BYTE, "Number"); - put(MappingSchemaImpl.SHORT, "Number"); - put(MappingSchemaImpl.INTEGER, "Number"); - put(MappingSchemaImpl.LONG, "BigInt"); - - put(MappingSchemaImpl.NULLABLE_DOUBLE, "Number"); - put(MappingSchemaImpl.NULLABLE_FLOAT, "Number"); - - put(MappingSchemaImpl.DOUBLE, "Number"); - put(MappingSchemaImpl.FLOAT, "Number"); - - put(MappingSchemaImpl.ID, "BigInt"); - put(MappingSchemaImpl.UUID, "String"); - - put(MappingSchemaImpl.STRING, "String"); - put(MappingSchemaImpl.DATE, "Date"); - put(MappingSchemaImpl.TIME, "Date"); - put(MappingSchemaImpl.TIMESTAMP, "Date"); - } - - }); - } - -} +// package link.pagan.traqtor.project.frontend.mapping; +// +// import java.util.HashMap; +// import link.pagan.traqtor.mapping.MappingEntry; +// import link.pagan.traqtor.mapping.frontend.FrontendMapping; +// +/// ** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +// public class JavaScriptFrontendMapping extends FrontendMapping { +// +// public JavaScriptFrontendMapping () { +// super("JavaScript", new HashMap() { +// +// private static final long serialVersionUID = 1L; +// { +// put(MappingSchemaImpl.NULLABLE_BOOLEAN, "Boolean"); +// put(MappingSchemaImpl.NULLABLE_BYTE, "Number"); +// put(MappingSchemaImpl.NULLABLE_SHORT, "Number"); +// put(MappingSchemaImpl.NULLABLE_INTEGER, "Number"); +// put(MappingSchemaImpl.NULLABLE_LONG, "BigInt"); +// +// put(MappingSchemaImpl.BOOLEAN, "Boolean"); +// put(MappingSchemaImpl.BYTE, "Number"); +// put(MappingSchemaImpl.SHORT, "Number"); +// put(MappingSchemaImpl.INTEGER, "Number"); +// put(MappingSchemaImpl.LONG, "BigInt"); +// +// put(MappingSchemaImpl.NULLABLE_DOUBLE, "Number"); +// put(MappingSchemaImpl.NULLABLE_FLOAT, "Number"); +// +// put(MappingSchemaImpl.DOUBLE, "Number"); +// put(MappingSchemaImpl.FLOAT, "Number"); +// +// put(MappingSchemaImpl.ID, "BigInt"); +// put(MappingSchemaImpl.UUID, "String"); +// +// put(MappingSchemaImpl.STRING, "String"); +// put(MappingSchemaImpl.DATE, "Date"); +// put(MappingSchemaImpl.TIME, "Date"); +// put(MappingSchemaImpl.TIMESTAMP, "Date"); +// } +// +// }); +// } +// +// } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/UniverseProject.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/UniverseProject.java index 4d0f38a..e6fbd25 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/UniverseProject.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/UniverseProject.java @@ -1,19 +1,37 @@ package link.pagan.traqtor.project.universe; +import java.util.Arrays; +import java.util.Set; +import java.util.TreeSet; import link.pagan.traqtor.project.Project; import link.pagan.traqtor.project.universe.schema.DatatypeSchema; -import link.pagan.traqtor.outdated.util.Name; import link.pagan.traqtor.project.universe.link.Link; import link.pagan.traqtor.project.universe.element.Element; +import link.pagan.traqtor.util.Name; public class UniverseProject extends Project { - UniverseProject () {} + private final Set schemas; + + private final Set elements; + + private final Set links; + + UniverseProject () { + this.schemas = new TreeSet( (DatatypeSchema a, DatatypeSchema b) -> a.name() + .compareTo(b.name())); + this.elements = new TreeSet( (Element a, Element b) -> a.name().compareTo(b.name())); + this.links = new TreeSet( (Link a, + Link b) -> (a.from().name().asDotted() + "_" + + a.fromName().asDotted()) + .compareTo((b.from().name().asDotted() + + "_" + + b.fromName().asDotted()))); + } @Override public UniverseProject name (String... parts) { - super.name(parts); - return this; + return name(Name.of(parts)); } @Override @@ -22,15 +40,30 @@ public class UniverseProject extends Project { return this; } + public DatatypeSchema[] schemas () { + return this.schemas.toArray(new DatatypeSchema[this.schemas.size()]); + } + public UniverseProject schemas (DatatypeSchema... schemas) { + this.schemas.addAll(Arrays.asList(schemas)); return this; } + public Element[] elements () { + return this.elements.toArray(new Element[this.elements.size()]); + } + public UniverseProject elements (Element... element) { + this.elements.addAll(Arrays.asList(element)); return this; } - public UniverseProject links (Link... link) { + public Link[] links () { + return this.links.toArray(new Link[this.links.size()]); + } + + public UniverseProject links (Link... links) { + this.links.addAll(Arrays.asList(links)); return this; } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/UniverseProjectSerializer.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/UniverseProjectSerializer.java new file mode 100644 index 0000000..8e7d7a5 --- /dev/null +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/UniverseProjectSerializer.java @@ -0,0 +1,46 @@ +package link.pagan.traqtor.project.universe; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import link.pagan.traqtor.project.universe.element.Element; +import link.pagan.traqtor.project.universe.link.Link; +import link.pagan.traqtor.project.universe.schema.DatatypeSchema; + +/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +public class UniverseProjectSerializer extends StdSerializer { + + private static final long serialVersionUID = 1L; + + public UniverseProjectSerializer () { + this(null); + } + + public UniverseProjectSerializer (Class t) { + super(t); + } + + @Override + public void serialize (UniverseProject value, JsonGenerator gen, SerializerProvider provider) throws IOException { + gen.writeStartObject(); + gen.writeObjectField("name", value.name()); + gen.writeArrayFieldStart("schemas"); + + for (DatatypeSchema schema : value.schemas()) { gen.writeObject(schema.name()); } + gen.writeEndArray(); + + gen.writeArrayFieldStart("elements"); + + for (Element element : value.elements()) { gen.writeObject(element); } + gen.writeEndArray(); + + gen.writeArrayFieldStart("links"); + + for (Link link : value.links()) { gen.writeObject(link); } + gen.writeEndArray(); + + gen.writeEndObject(); + } + +} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/Atom.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/Atom.java index 233153c..e2fe8f4 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/Atom.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/Atom.java @@ -2,7 +2,7 @@ package link.pagan.traqtor.project.universe.element; import java.util.List; import link.pagan.traqtor.project.universe.schema.DataType; -import link.pagan.traqtor.outdated.util.Name; +import link.pagan.traqtor.util.Name; public class Atom extends Element { diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/Element.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/Element.java index 24d283e..eb9cf60 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/Element.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/Element.java @@ -1,27 +1,57 @@ package link.pagan.traqtor.project.universe.element; import java.util.Arrays; +import java.util.Comparator; import java.util.List; +import java.util.Set; +import java.util.TreeSet; import link.pagan.traqtor.project.universe.schema.DataType; -import link.pagan.traqtor.outdated.util.Name; +import link.pagan.traqtor.util.Name; -public class Element { +public abstract class Element { + + private static final Comparator> PARTICLE_SORT_COMPARATOR = new Comparator>() { + + @Override + public int compare (Particle a, Particle b) { + return a.name().asDotted().compareTo(b.name().asDotted()); + } + + }; + + private Name name; + + private final Set> particles; + + public Element () { + particles = new TreeSet>(PARTICLE_SORT_COMPARATOR); + } + + public Name name () { + if (name == null) return Name.NO_NAME; + return name; + } public Element name (String... parts) { return name(Name.of(parts)); } public Element name (Name name) { - + this.name = name; return this; } + public Set> particles () { + return particles; + } + @SafeVarargs public final Element particles (Particle... particles) { return particles(Arrays.asList(particles)); } public Element particles (List> particles) { + this.particles.addAll(particles); return this; } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/ElementSerializer.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/ElementSerializer.java new file mode 100644 index 0000000..6687732 --- /dev/null +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/ElementSerializer.java @@ -0,0 +1,39 @@ +package link.pagan.traqtor.project.universe.element; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import link.pagan.traqtor.project.universe.schema.DataType; + +/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +public class ElementSerializer extends StdSerializer { + + private static final long serialVersionUID = 1L; + + public ElementSerializer () { + this(null); + } + + public ElementSerializer (Class t) { + super(t); + } + + @Override + public void serialize (Element value, JsonGenerator gen, SerializerProvider provider) throws IOException { + gen.writeStartObject(); + gen.writeObjectField("name", value.name()); + + if (value.getClass().equals(Isotope.class)) { + Isotope isotope = (Isotope) value; + gen.writeObjectField("base", isotope.base().name()); + } + gen.writeArrayFieldStart("particles"); + + for (Particle particle : value.particles()) { gen.writeObject(particle); } + + gen.writeEndArray(); + gen.writeEndObject(); + } + +} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/Isotope.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/Isotope.java index 429a375..14eaf57 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/Isotope.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/Isotope.java @@ -2,13 +2,17 @@ package link.pagan.traqtor.project.universe.element; import java.util.List; import link.pagan.traqtor.project.universe.schema.DataType; -import link.pagan.traqtor.outdated.util.Name; +import link.pagan.traqtor.util.Name; public class Isotope extends Element { Isotope () {} - Element base; + private Element base; + + public Element base () { + return base; + } @Override public Isotope name (Name name) { diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/Particle.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/Particle.java index 0ae0414..00f7832 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/Particle.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/Particle.java @@ -1,25 +1,48 @@ package link.pagan.traqtor.project.universe.element; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Set; +import java.util.TreeSet; import link.pagan.traqtor.project.universe.schema.Constraint; +import link.pagan.traqtor.project.universe.schema.ConstraintInfo; import link.pagan.traqtor.project.universe.schema.DataType; -import link.pagan.traqtor.outdated.util.Name; +import link.pagan.traqtor.util.Name; -public class Particle { +public class Particle extends PaticleInfo { - final DataType type; + private final DataType type; - Name name; + private Name name; - String description; + private String description; - final List> constraints; + @Override + public Name name () { + + if (name == null) { return Name.NO_NAME; } + return name; + } + + @Override + public String description () { + return description; + } + + @Override + public DataType type () { + return type; + } + + private final Set constraints; public Particle (DataType type) { this.type = type; - this.constraints = new ArrayList<>(); + this.constraints = new TreeSet( (ConstraintInfo a, + ConstraintInfo b) -> a.name() + .asDotted() + .compareTo(b.name() + .asDotted())); } @SafeVarargs @@ -37,7 +60,7 @@ public class Particle { } public Particle name (Name name) { - + this.name = name; return this; } @@ -50,4 +73,9 @@ public class Particle { return this; } + @Override + public Set constraints () { + return this.constraints; + } + } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/PaticleInfo.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/PaticleInfo.java new file mode 100644 index 0000000..c3b410f --- /dev/null +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/PaticleInfo.java @@ -0,0 +1,24 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package link.pagan.traqtor.project.universe.element; + +import java.util.Set; +import link.pagan.traqtor.project.universe.schema.ConstraintInfo; +import link.pagan.traqtor.project.universe.schema.DataType; +import link.pagan.traqtor.util.Name; + +/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +public abstract class PaticleInfo { + + public abstract Name name (); + + public abstract String description (); + + public abstract Set constraints (); + + public abstract DataType type (); + +} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/PaticleInfoSerializer.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/PaticleInfoSerializer.java new file mode 100644 index 0000000..2cacc8a --- /dev/null +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/PaticleInfoSerializer.java @@ -0,0 +1,37 @@ +package link.pagan.traqtor.project.universe.element; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import link.pagan.traqtor.project.universe.schema.ConstraintInfo; + +/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +public class PaticleInfoSerializer extends StdSerializer { + + private static final long serialVersionUID = 1L; + + public PaticleInfoSerializer () { + this(null); + } + + public PaticleInfoSerializer (Class t) { + super(t); + } + + @Override + public void serialize (PaticleInfo value, JsonGenerator gen, SerializerProvider provider) throws IOException { + gen.writeStartObject(); + gen.writeObjectField("name", value.name()); + gen.writeObjectField("type", value.type().name()); + + if (value.description() != null) { gen.writeStringField("description", value.description()); } + gen.writeArrayFieldStart("constraints"); + + for (ConstraintInfo constraint : value.constraints()) { gen.writeObject(constraint); } + + gen.writeEndArray(); + gen.writeEndObject(); + } + +} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/Link.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/Link.java index 6c10c07..181aba8 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/Link.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/Link.java @@ -1,19 +1,42 @@ package link.pagan.traqtor.project.universe.link; import link.pagan.traqtor.project.universe.element.Element; -import link.pagan.traqtor.outdated.util.Name; +import link.pagan.traqtor.util.Name; public abstract class Link { + private Element from; + + private Element to; + + private Name fromName; + + private Name toName; + + public Element from () { + return this.from; + } + public Link from (Element element) { + this.from = element; return this; } + public Element to () { + return this.to; + } + public Link to (Element element) { + this.to = element; return this; } + public Name fromName () { + return this.fromName; + } + public Link fromName (Name name) { + this.fromName = name; return this; } @@ -21,7 +44,12 @@ public abstract class Link { return fromName(Name.of(parts)); } + public Name toName () { + return this.toName; + } + public Link toName (Name name) { + this.toName = name; return this; } @@ -29,6 +57,8 @@ public abstract class Link { return toName(Name.of(parts)); } + public abstract LinkType type (); + public static OneToOneLink oneToOne () { return new OneToOneLink(); } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/LinkSerializer.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/LinkSerializer.java new file mode 100644 index 0000000..6461914 --- /dev/null +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/LinkSerializer.java @@ -0,0 +1,32 @@ +package link.pagan.traqtor.project.universe.link; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; + +/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +public class LinkSerializer extends StdSerializer { + + private static final long serialVersionUID = 1L; + + public LinkSerializer () { + this(null); + } + + public LinkSerializer (Class t) { + super(t); + } + + @Override + public void serialize (Link value, JsonGenerator gen, SerializerProvider provider) throws IOException { + gen.writeStartObject(); + gen.writeStringField("type", value.type().code()); + gen.writeObjectField("from", value.from().name()); + gen.writeObjectField("to", value.to().name()); + gen.writeObjectField("from-name", value.fromName()); + gen.writeObjectField("to-name", value.toName()); + gen.writeEndObject(); + } + +} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/LinkType.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/LinkType.java new file mode 100644 index 0000000..3fc41ef --- /dev/null +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/LinkType.java @@ -0,0 +1,20 @@ +package link.pagan.traqtor.project.universe.link; + +/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +public enum LinkType { + + ONE_TO_ONE("1->1"), + ONE_TO_MANY("1->N"), + MANY_TO_MANY("N->N"); + + private final String code; + + private LinkType (String code) { + this.code = code; + } + + public String code () { + return code; + } + +} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/ManyToManyLink.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/ManyToManyLink.java index 520631f..0503a9c 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/ManyToManyLink.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/ManyToManyLink.java @@ -1,6 +1,6 @@ package link.pagan.traqtor.project.universe.link; -import link.pagan.traqtor.outdated.util.Name; +import link.pagan.traqtor.util.Name; import link.pagan.traqtor.project.universe.element.Element; public class ManyToManyLink extends Link { @@ -43,4 +43,9 @@ public class ManyToManyLink extends Link { return this; } + @Override + public LinkType type () { + return LinkType.MANY_TO_MANY; + } + } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/OneToManyLink.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/OneToManyLink.java index 2fed7c8..69a5c00 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/OneToManyLink.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/OneToManyLink.java @@ -1,6 +1,6 @@ package link.pagan.traqtor.project.universe.link; -import link.pagan.traqtor.outdated.util.Name; +import link.pagan.traqtor.util.Name; import link.pagan.traqtor.project.universe.element.Element; public class OneToManyLink extends Link { @@ -55,4 +55,9 @@ public class OneToManyLink extends Link { return this; } + @Override + public LinkType type () { + return LinkType.ONE_TO_MANY; + } + } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/OneToOneLink.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/OneToOneLink.java index 5d99ecb..b25ea83 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/OneToOneLink.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/OneToOneLink.java @@ -1,6 +1,6 @@ package link.pagan.traqtor.project.universe.link; -import link.pagan.traqtor.outdated.util.Name; +import link.pagan.traqtor.util.Name; import link.pagan.traqtor.project.universe.element.Element; public class OneToOneLink extends Link { @@ -47,4 +47,9 @@ public class OneToOneLink extends Link { return this; } + @Override + public LinkType type () { + return LinkType.ONE_TO_ONE; + } + } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/Constraint.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/Constraint.java index 0c22bbd..0ba35ae 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/Constraint.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/Constraint.java @@ -1,7 +1,28 @@ package link.pagan.traqtor.project.universe.schema; +import link.pagan.traqtor.util.Name; + /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} * @param type to which this constraint is applicable */ -public class Constraint { +public abstract class Constraint extends ConstraintInfo { + + protected Name name; + + protected Object value; + + public Constraint (Name name, Object value) { + this.name = name; + this.value = value; + } + + @Override + public Name name () { + return name; + } + + @Override + public Object value () { + return value; + } } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/ConstraintInfo.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/ConstraintInfo.java new file mode 100644 index 0000000..85ce3ee --- /dev/null +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/ConstraintInfo.java @@ -0,0 +1,17 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package link.pagan.traqtor.project.universe.schema; + +import link.pagan.traqtor.util.Name; + +/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +public abstract class ConstraintInfo { + + public abstract Name name (); + + public abstract Object value (); + +} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/ConstraintInfoSerializer.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/ConstraintInfoSerializer.java new file mode 100644 index 0000000..b348548 --- /dev/null +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/ConstraintInfoSerializer.java @@ -0,0 +1,29 @@ +package link.pagan.traqtor.project.universe.schema; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; + +/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +public class ConstraintInfoSerializer extends StdSerializer { + + private static final long serialVersionUID = 1L; + + public ConstraintInfoSerializer () { + this(null); + } + + public ConstraintInfoSerializer (Class t) { + super(t); + } + + @Override + public void serialize (ConstraintInfo value, JsonGenerator gen, SerializerProvider provider) throws IOException { + gen.writeStartObject(); + gen.writeObjectField("name", value.name()); + gen.writeObjectField("value", value.value()); + gen.writeEndObject(); + } + +} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/DataType.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/DataType.java index b8a80a1..9daec04 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/DataType.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/DataType.java @@ -2,18 +2,26 @@ package link.pagan.traqtor.project.universe.schema; import java.util.List; import link.pagan.traqtor.project.universe.element.Particle; +import link.pagan.traqtor.util.Name; public abstract class DataType { - final List> typeConstraints; + protected final Name name; - public DataType (List> typeConstraints) { - this.typeConstraints = typeConstraints; + protected final List> constraints; + + public DataType (Name name, List> constraints) { + this.name = name; + this.constraints = constraints; } - private String name; + public Name name () { + return name; + } - public String getName () { return name; } + public List> constraints () { + return this.constraints; + } public abstract Particle particle (); diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/DatatypeSchema.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/DatatypeSchema.java index d0eb697..6fb6f85 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/DatatypeSchema.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/DatatypeSchema.java @@ -1,11 +1,18 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ package link.pagan.traqtor.project.universe.schema; +import link.pagan.traqtor.util.Name; + /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public abstract class DatatypeSchema { + private Name name; + + public DatatypeSchema (Name name) { + this.name = name; + } + + public Name name () { + return this.name; + } + } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/LiteralDataTypeSchema.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/LiteralDataTypeSchema.java index 554f135..b225a4b 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/LiteralDataTypeSchema.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/LiteralDataTypeSchema.java @@ -2,9 +2,12 @@ package link.pagan.traqtor.project.universe.schema.impl; import link.pagan.traqtor.project.universe.schema.DatatypeSchema; import link.pagan.traqtor.project.universe.schema.impl.data.literal.StringDataType; +import link.pagan.traqtor.util.Name; public class LiteralDataTypeSchema extends DatatypeSchema { + private final static Name NAME = Name.of("default", "schema", "literal"); + private static final LiteralDataTypeSchema instance = new LiteralDataTypeSchema(); public final StringDataType STRING = StringDataType.instance(); @@ -13,4 +16,8 @@ public class LiteralDataTypeSchema extends DatatypeSchema { return instance; } + public LiteralDataTypeSchema () { + super(NAME); + } + } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/LogicDatatypeSchema.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/LogicDatatypeSchema.java index 0dc9827..7b698b2 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/LogicDatatypeSchema.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/LogicDatatypeSchema.java @@ -3,9 +3,12 @@ package link.pagan.traqtor.project.universe.schema.impl; import link.pagan.traqtor.project.universe.schema.DatatypeSchema; import link.pagan.traqtor.project.universe.schema.impl.data.LogicDataType; import link.pagan.traqtor.project.universe.schema.impl.data.logic.BooleanDataType; +import link.pagan.traqtor.util.Name; public class LogicDatatypeSchema extends DatatypeSchema { + private final static Name NAME = Name.of("default", "schema", "logic"); + private static final LogicDatatypeSchema instance = new LogicDatatypeSchema(); public final LogicDataType BOOLEAN = BooleanDataType.instance(); @@ -14,4 +17,8 @@ public class LogicDatatypeSchema extends DatatypeSchema { return instance; } + public LogicDatatypeSchema () { + super(NAME); + } + } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/NumericDatatypeSchema.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/NumericDatatypeSchema.java index da291e0..fba9295 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/NumericDatatypeSchema.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/NumericDatatypeSchema.java @@ -1,33 +1,38 @@ package link.pagan.traqtor.project.universe.schema.impl; import link.pagan.traqtor.project.universe.schema.DatatypeSchema; -import link.pagan.traqtor.project.universe.schema.impl.data.numeric.IntegerDataType; -import link.pagan.traqtor.project.universe.schema.impl.data.numeric.RationalDataType; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.integer.ByteDataType; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.integer.IntDataType; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.integer.LongDataType; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.integer.ShortDataType; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.real.DoubleDataType; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.real.FloatDataType; +import link.pagan.traqtor.util.Name; public class NumericDatatypeSchema extends DatatypeSchema { + private final static Name NAME = Name.of("default", "schema", "numeric"); + private static final NumericDatatypeSchema instance = new NumericDatatypeSchema(); - public final IntegerDataType BYTE = ByteDataType.instance(); + public final ByteDataType BYTE = ByteDataType.instance(); - public final IntegerDataType SHORT = ShortDataType.instance(); + public final ShortDataType SHORT = ShortDataType.instance(); - public final IntegerDataType INTEGER = IntDataType.instance(); + public final IntDataType INTEGER = IntDataType.instance(); - public final IntegerDataType LONG = LongDataType.instance(); + public final LongDataType LONG = LongDataType.instance(); - public final RationalDataType FLOAT = FloatDataType.instance(); + public final FloatDataType FLOAT = FloatDataType.instance(); - public final RationalDataType DOUBLE = DoubleDataType.instance(); + public final DoubleDataType DOUBLE = DoubleDataType.instance(); public static NumericDatatypeSchema instance () { return instance; } + public NumericDatatypeSchema () { + super(NAME); + } + } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/TemporalDatatypeSchema.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/TemporalDatatypeSchema.java index 75babd2..de03734 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/TemporalDatatypeSchema.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/TemporalDatatypeSchema.java @@ -5,9 +5,12 @@ import link.pagan.traqtor.project.universe.schema.impl.data.TemporalDataType; import link.pagan.traqtor.project.universe.schema.impl.data.temporal.DateDataType; import link.pagan.traqtor.project.universe.schema.impl.data.temporal.TimeDataType; import link.pagan.traqtor.project.universe.schema.impl.data.temporal.TimestampDataType; +import link.pagan.traqtor.util.Name; public class TemporalDatatypeSchema extends DatatypeSchema { + private final static Name NAME = Name.of("default", "schema", "temporal"); + private static final TemporalDatatypeSchema instance = new TemporalDatatypeSchema(); public final TemporalDataType DATE = DateDataType.instance(); @@ -20,4 +23,8 @@ public class TemporalDatatypeSchema extends DatatypeSchema { return instance; } + public TemporalDatatypeSchema () { + super(NAME); + } + } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/LiteralDataType.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/LiteralDataType.java index 0d6760e..31b21fe 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/LiteralDataType.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/LiteralDataType.java @@ -4,12 +4,13 @@ import java.util.List; import link.pagan.traqtor.project.universe.element.Particle; import link.pagan.traqtor.project.universe.schema.Constraint; import link.pagan.traqtor.project.universe.schema.DataType; +import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public abstract class LiteralDataType extends DataType { - public LiteralDataType (List> typeConstraints) { - super(typeConstraints); + public LiteralDataType (Name name, List> constraints) { + super(name, constraints); } @Override diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/LogicDataType.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/LogicDataType.java index 6e2c094..c8f8f8d 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/LogicDataType.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/LogicDataType.java @@ -4,12 +4,13 @@ import java.util.List; import link.pagan.traqtor.project.universe.element.Particle; import link.pagan.traqtor.project.universe.schema.Constraint; import link.pagan.traqtor.project.universe.schema.DataType; +import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public abstract class LogicDataType extends DataType { - public LogicDataType (List> typeConstraints) { - super(typeConstraints); + public LogicDataType (Name name, List> constraints) { + super(name, constraints); } @Override diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/NumericDataType.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/NumericDataType.java index c849506..7c6430e 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/NumericDataType.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/NumericDataType.java @@ -4,12 +4,13 @@ import java.util.List; import link.pagan.traqtor.project.universe.element.Particle; import link.pagan.traqtor.project.universe.schema.Constraint; import link.pagan.traqtor.project.universe.schema.DataType; +import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public abstract class NumericDataType extends DataType { - public NumericDataType (List> typeConstraints) { - super(typeConstraints); + public NumericDataType (Name name, List> constraints) { + super(name, constraints); } @Override diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/TemporalDataType.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/TemporalDataType.java index a228e1a..c1d83ab 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/TemporalDataType.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/TemporalDataType.java @@ -4,12 +4,13 @@ import java.util.List; import link.pagan.traqtor.project.universe.element.Particle; import link.pagan.traqtor.project.universe.schema.Constraint; import link.pagan.traqtor.project.universe.schema.DataType; +import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public abstract class TemporalDataType extends DataType { - public TemporalDataType (List> typeConstraints) { - super(typeConstraints); + public TemporalDataType (Name name, List> constraints) { + super(name, constraints); } @Override diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/literal/StringDataType.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/literal/StringDataType.java index d690080..65bae06 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/literal/StringDataType.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/literal/StringDataType.java @@ -7,6 +7,7 @@ import link.pagan.traqtor.project.universe.schema.impl.data.LiteralDataType; import link.pagan.traqtor.project.universe.schema.impl.data.literal.constraints.LiteralMaxConstraint; import link.pagan.traqtor.project.universe.schema.impl.data.literal.constraints.LiteralMinConstraint; import link.pagan.traqtor.project.universe.schema.impl.data.literal.constraints.LiteralRegExpConstraint; +import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public class StringDataType extends LiteralDataType { @@ -18,7 +19,7 @@ public class StringDataType extends LiteralDataType { } private StringDataType () { - super(new ArrayList<>()); + super(Name.of("string"), new ArrayList<>()); } @Override diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/literal/constraints/LiteralMaxConstraint.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/literal/constraints/LiteralMaxConstraint.java index 843f3af..7c8549c 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/literal/constraints/LiteralMaxConstraint.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/literal/constraints/LiteralMaxConstraint.java @@ -1,15 +1,16 @@ package link.pagan.traqtor.project.universe.schema.impl.data.literal.constraints; import link.pagan.traqtor.project.universe.schema.Constraint; -import link.pagan.traqtor.project.universe.schema.impl.data.literal.StringDataType; +import link.pagan.traqtor.project.universe.schema.impl.data.LiteralDataType; +import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ -public class LiteralMaxConstraint extends Constraint { +public class LiteralMaxConstraint extends Constraint { - long max; + private static final Name NAME = Name.of("literal", "max"); - public LiteralMaxConstraint (long max) { - this.max = max; + public LiteralMaxConstraint (Long max) { + super(NAME, max); } } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/literal/constraints/LiteralMinConstraint.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/literal/constraints/LiteralMinConstraint.java index 4ff38e1..5fe1a04 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/literal/constraints/LiteralMinConstraint.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/literal/constraints/LiteralMinConstraint.java @@ -1,15 +1,16 @@ package link.pagan.traqtor.project.universe.schema.impl.data.literal.constraints; import link.pagan.traqtor.project.universe.schema.Constraint; -import link.pagan.traqtor.project.universe.schema.impl.data.literal.StringDataType; +import link.pagan.traqtor.project.universe.schema.impl.data.LiteralDataType; +import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ -public class LiteralMinConstraint extends Constraint { +public class LiteralMinConstraint extends Constraint { - long min; + private static final Name NAME = Name.of("literal", "min"); - public LiteralMinConstraint (long min) { - this.min = min; + public LiteralMinConstraint (Long min) { + super(NAME, min); } } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/literal/constraints/LiteralRegExpConstraint.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/literal/constraints/LiteralRegExpConstraint.java index 1cbe946..bdbf7a9 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/literal/constraints/LiteralRegExpConstraint.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/literal/constraints/LiteralRegExpConstraint.java @@ -1,15 +1,16 @@ package link.pagan.traqtor.project.universe.schema.impl.data.literal.constraints; import link.pagan.traqtor.project.universe.schema.Constraint; -import link.pagan.traqtor.project.universe.schema.impl.data.literal.StringDataType; +import link.pagan.traqtor.project.universe.schema.impl.data.LiteralDataType; +import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ -public class LiteralRegExpConstraint extends Constraint { +public class LiteralRegExpConstraint extends Constraint { - String regExp; + private static final Name NAME = Name.of("literal", "regular", "expression"); public LiteralRegExpConstraint (String regExp) { - this.regExp = regExp; + super(NAME, regExp); } } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/logic/BooleanDataType.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/logic/BooleanDataType.java index 1be3c4e..2aef443 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/logic/BooleanDataType.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/logic/BooleanDataType.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import link.pagan.traqtor.project.universe.element.Particle; import link.pagan.traqtor.project.universe.schema.impl.data.LogicDataType; +import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public class BooleanDataType extends LogicDataType { @@ -15,7 +16,7 @@ public class BooleanDataType extends LogicDataType { } private BooleanDataType () { - super(new ArrayList<>()); + super(Name.of("boolean"), new ArrayList<>()); } @Override diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/IntegerDataType.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/IntegerDataType.java index fae52f0..fd561ed 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/IntegerDataType.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/IntegerDataType.java @@ -7,22 +7,25 @@ import link.pagan.traqtor.project.universe.schema.DataType; import link.pagan.traqtor.project.universe.schema.impl.data.NumericDataType; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.integer.constraints.IntegerMaxConstraint; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.integer.constraints.IntegerMinConstraint; +import link.pagan.traqtor.util.Name; -/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +/** + * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} + */ public abstract class IntegerDataType extends NumericDataType { - public IntegerDataType (List> typeConstraints) { - super(typeConstraints); + public IntegerDataType(Name name, List> constraints) { + super(name, constraints); } @Override - public abstract Particle particle (); + public abstract Particle particle(); - public IntegerMinConstraint min (long min) { + public IntegerMinConstraint min(long min) { return new IntegerMinConstraint(min); } - public IntegerMaxConstraint max (long max) { + public IntegerMaxConstraint max(long max) { return new IntegerMaxConstraint(max); } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/RationalDataType.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/RationalDataType.java index 97a49e5..2c9f535 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/RationalDataType.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/RationalDataType.java @@ -7,12 +7,13 @@ import link.pagan.traqtor.project.universe.schema.DataType; import link.pagan.traqtor.project.universe.schema.impl.data.NumericDataType; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.real.constraints.RationalMaxConstraint; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.real.constraints.RationalMinConstraint; +import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public abstract class RationalDataType extends NumericDataType { - public RationalDataType (List> typeConstraints) { - super(typeConstraints); + public RationalDataType (Name name, List> constraints) { + super(name, constraints); } @Override diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/ByteDataType.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/ByteDataType.java index 53a7858..0674a2b 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/ByteDataType.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/ByteDataType.java @@ -5,6 +5,7 @@ import link.pagan.traqtor.project.universe.element.Particle; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.IntegerDataType; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.integer.constraints.IntegerMaxConstraint; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.integer.constraints.IntegerMinConstraint; +import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public class ByteDataType extends IntegerDataType { @@ -16,16 +17,18 @@ public class ByteDataType extends IntegerDataType { } private ByteDataType () { - super(new ArrayList<>() { + super(Name.of("byte"), + new ArrayList<>() + { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = 1L; - { - add(new IntegerMaxConstraint(Byte.MAX_VALUE)); - add(new IntegerMinConstraint(Byte.MIN_VALUE)); - } + { + add(new IntegerMaxConstraint(Long.valueOf(Byte.MAX_VALUE))); + add(new IntegerMinConstraint(Long.valueOf(Byte.MIN_VALUE))); + } - }); + }); } @Override diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/IntDataType.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/IntDataType.java index d6704d7..b67d84b 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/IntDataType.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/IntDataType.java @@ -5,6 +5,7 @@ import link.pagan.traqtor.project.universe.element.Particle; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.IntegerDataType; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.integer.constraints.IntegerMaxConstraint; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.integer.constraints.IntegerMinConstraint; +import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public class IntDataType extends IntegerDataType { @@ -16,13 +17,13 @@ public class IntDataType extends IntegerDataType { } private IntDataType () { - super(new ArrayList<>() { + super(Name.of("int"), new ArrayList<>() { private static final long serialVersionUID = 1L; { - add(new IntegerMaxConstraint(Integer.MAX_VALUE)); - add(new IntegerMinConstraint(Integer.MIN_VALUE)); + add(new IntegerMaxConstraint(Long.valueOf(Integer.MAX_VALUE))); + add(new IntegerMinConstraint(Long.valueOf(Integer.MIN_VALUE))); } }); diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/LongDataType.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/LongDataType.java index fcf5a6c..e871a70 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/LongDataType.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/LongDataType.java @@ -5,6 +5,7 @@ import link.pagan.traqtor.project.universe.element.Particle; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.IntegerDataType; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.integer.constraints.IntegerMaxConstraint; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.integer.constraints.IntegerMinConstraint; +import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public class LongDataType extends IntegerDataType { @@ -16,7 +17,7 @@ public class LongDataType extends IntegerDataType { } private LongDataType () { - super(new ArrayList<>() { + super(Name.of("long"), new ArrayList<>() { private static final long serialVersionUID = 1L; diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/ShortDataType.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/ShortDataType.java index 3a9a089..016b50e 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/ShortDataType.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/ShortDataType.java @@ -5,6 +5,7 @@ import link.pagan.traqtor.project.universe.element.Particle; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.IntegerDataType; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.integer.constraints.IntegerMaxConstraint; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.integer.constraints.IntegerMinConstraint; +import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public class ShortDataType extends IntegerDataType { @@ -16,13 +17,13 @@ public class ShortDataType extends IntegerDataType { } private ShortDataType () { - super(new ArrayList<>() { + super(Name.of("short"), new ArrayList<>() { private static final long serialVersionUID = 1L; { - add(new IntegerMaxConstraint(Short.MAX_VALUE)); - add(new IntegerMinConstraint(Short.MIN_VALUE)); + add(new IntegerMaxConstraint(Long.valueOf(Short.MAX_VALUE))); + add(new IntegerMinConstraint(Long.valueOf(Short.MIN_VALUE))); } }); diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/constraints/IntegerMaxConstraint.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/constraints/IntegerMaxConstraint.java index de46c58..ea581ed 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/constraints/IntegerMaxConstraint.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/constraints/IntegerMaxConstraint.java @@ -2,14 +2,15 @@ package link.pagan.traqtor.project.universe.schema.impl.data.numeric.integer.con import link.pagan.traqtor.project.universe.schema.Constraint; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.IntegerDataType; +import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public class IntegerMaxConstraint extends Constraint { - long max; + private static final Name NAME = Name.of("integer", "max"); - public IntegerMaxConstraint (long max) { - this.max = max; + public IntegerMaxConstraint (Long max) { + super(NAME, max); } } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/constraints/IntegerMinConstraint.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/constraints/IntegerMinConstraint.java index f606ca2..d2fdf25 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/constraints/IntegerMinConstraint.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/constraints/IntegerMinConstraint.java @@ -2,14 +2,15 @@ package link.pagan.traqtor.project.universe.schema.impl.data.numeric.integer.con import link.pagan.traqtor.project.universe.schema.Constraint; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.IntegerDataType; +import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public class IntegerMinConstraint extends Constraint { - long min; + private static final Name NAME = Name.of("integer", "min"); - public IntegerMinConstraint (long min) { - this.min = min; + public IntegerMinConstraint (Long min) { + super(NAME, min); } } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/real/DoubleDataType.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/real/DoubleDataType.java index f342bb2..475e5c0 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/real/DoubleDataType.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/real/DoubleDataType.java @@ -5,6 +5,7 @@ import link.pagan.traqtor.project.universe.element.Particle; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.RationalDataType; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.real.constraints.RationalMaxConstraint; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.real.constraints.RationalMinConstraint; +import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public class DoubleDataType extends RationalDataType { @@ -16,16 +17,19 @@ public class DoubleDataType extends RationalDataType { } private DoubleDataType () { - super(new ArrayList<>() { + super( + Name.of("double"), + new ArrayList<>() + { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = 1L; - { - add(new RationalMaxConstraint(Double.MAX_VALUE)); - add(new RationalMinConstraint(Double.MIN_VALUE)); - } + { + add(new RationalMaxConstraint(Double.MAX_VALUE)); + add(new RationalMinConstraint(Double.MIN_VALUE)); + } - }); + }); } @Override diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/real/FloatDataType.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/real/FloatDataType.java index 6576c98..44807b7 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/real/FloatDataType.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/real/FloatDataType.java @@ -5,6 +5,7 @@ import link.pagan.traqtor.project.universe.element.Particle; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.RationalDataType; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.real.constraints.RationalMaxConstraint; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.real.constraints.RationalMinConstraint; +import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public class FloatDataType extends RationalDataType { @@ -16,13 +17,13 @@ public class FloatDataType extends RationalDataType { } private FloatDataType () { - super(new ArrayList<>() { + super(Name.of("float"), new ArrayList<>() { private static final long serialVersionUID = 1L; { - add(new RationalMaxConstraint(Float.MAX_VALUE)); - add(new RationalMinConstraint(Float.MIN_VALUE)); + add(new RationalMaxConstraint(Double.valueOf(Float.MAX_VALUE))); + add(new RationalMinConstraint(Double.valueOf(Float.MIN_VALUE))); } }); diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/real/constraints/RationalMaxConstraint.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/real/constraints/RationalMaxConstraint.java index f8501f3..4df6e0b 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/real/constraints/RationalMaxConstraint.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/real/constraints/RationalMaxConstraint.java @@ -2,14 +2,15 @@ package link.pagan.traqtor.project.universe.schema.impl.data.numeric.real.constr import link.pagan.traqtor.project.universe.schema.Constraint; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.RationalDataType; +import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public class RationalMaxConstraint extends Constraint { - double max; + private static final Name NAME = Name.of("rational", "max"); - public RationalMaxConstraint (double max) { - this.max = max; + public RationalMaxConstraint (Double max) { + super(NAME, max); } } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/real/constraints/RationalMinConstraint.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/real/constraints/RationalMinConstraint.java index e13a1b8..e922a73 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/real/constraints/RationalMinConstraint.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/real/constraints/RationalMinConstraint.java @@ -2,14 +2,15 @@ package link.pagan.traqtor.project.universe.schema.impl.data.numeric.real.constr import link.pagan.traqtor.project.universe.schema.Constraint; import link.pagan.traqtor.project.universe.schema.impl.data.numeric.RationalDataType; +import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public class RationalMinConstraint extends Constraint { - double min; + private static final Name NAME = Name.of("rational", "min"); - public RationalMinConstraint (double min) { - this.min = min; + public RationalMinConstraint (Double min) { + super(NAME, min); } } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/temporal/DateDataType.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/temporal/DateDataType.java index f777d7a..a390018 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/temporal/DateDataType.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/temporal/DateDataType.java @@ -3,6 +3,7 @@ package link.pagan.traqtor.project.universe.schema.impl.data.temporal; import java.util.ArrayList; import link.pagan.traqtor.project.universe.element.Particle; import link.pagan.traqtor.project.universe.schema.impl.data.TemporalDataType; +import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public class DateDataType extends TemporalDataType { @@ -14,7 +15,7 @@ public class DateDataType extends TemporalDataType { } private DateDataType () { - super(new ArrayList<>()); + super(Name.of("date"), new ArrayList<>()); } @Override diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/temporal/TimeDataType.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/temporal/TimeDataType.java index e40cc71..90cbe4a 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/temporal/TimeDataType.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/temporal/TimeDataType.java @@ -3,6 +3,7 @@ package link.pagan.traqtor.project.universe.schema.impl.data.temporal; import java.util.ArrayList; import link.pagan.traqtor.project.universe.element.Particle; import link.pagan.traqtor.project.universe.schema.impl.data.TemporalDataType; +import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public class TimeDataType extends TemporalDataType { @@ -14,7 +15,7 @@ public class TimeDataType extends TemporalDataType { } private TimeDataType () { - super(new ArrayList<>()); + super(Name.of("time"), new ArrayList<>()); } @Override diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/temporal/TimestampDataType.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/temporal/TimestampDataType.java index 191bdb5..bbc6b93 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/temporal/TimestampDataType.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/temporal/TimestampDataType.java @@ -3,6 +3,7 @@ package link.pagan.traqtor.project.universe.schema.impl.data.temporal; import java.util.ArrayList; import link.pagan.traqtor.project.universe.element.Particle; import link.pagan.traqtor.project.universe.schema.impl.data.TemporalDataType; +import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public class TimestampDataType extends TemporalDataType { @@ -14,7 +15,7 @@ public class TimestampDataType extends TemporalDataType { } private TimestampDataType () { - super(new ArrayList<>()); + super(Name.of("timestamp"), new ArrayList<>()); } @Override diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/util/FileHandle.java b/traqtor-aio/src/main/java/link/pagan/traqtor/util/FileHandle.java new file mode 100644 index 0000000..2e961d5 --- /dev/null +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/util/FileHandle.java @@ -0,0 +1,36 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package link.pagan.traqtor.util; + +/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +public class FileHandle { + + String name; + + String extension; + + String content; + + public FileHandle (String fileName, String fileExtension, String fileContent) { + this.name = fileName; + this.extension = fileExtension; + this.content = fileContent; + + } + + public String name () { + return name; + } + + public String extension () { + return extension; + } + + public String content () { + return content; + } + +} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/util/Name.java b/traqtor-aio/src/main/java/link/pagan/traqtor/util/Name.java index 1233c5d..41ff770 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/util/Name.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/util/Name.java @@ -1,11 +1,33 @@ package link.pagan.traqtor.util; -public class Name { +public class Name implements Comparable { - Name (String... string) {} + public static final Name NO_NAME = Name.of("no", "name"); + + String[] parts; + + Name (String... parts) { + this.parts = parts; + } public static Name of (String... parts) { return new Name(parts); } + public String asDotted () { + StringBuilder sb = new StringBuilder(); + + for (int i = 0; i < this.parts.length; i++) { + sb.append(parts[i]); + + if (i != this.parts.length - 1) { sb.append('.'); } + } + return sb.toString(); + } + + @Override + public int compareTo (Name t) { + return this.asDotted().compareTo(t.asDotted()); + } + } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/util/NameSerializer.java b/traqtor-aio/src/main/java/link/pagan/traqtor/util/NameSerializer.java new file mode 100644 index 0000000..814c61a --- /dev/null +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/util/NameSerializer.java @@ -0,0 +1,26 @@ +package link.pagan.traqtor.util; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; + +/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +public class NameSerializer extends StdSerializer { + + private static final long serialVersionUID = 1L; + + public NameSerializer () { + this(null); + } + + public NameSerializer (Class t) { + super(t); + } + + @Override + public void serialize (Name value, JsonGenerator gen, SerializerProvider provider) throws IOException { + gen.writeArray(value.parts, 0, value.parts.length); + } + +} diff --git a/traqtor-aio/src/test/java/link/pagan/traqtor/EndToEndTest.java b/traqtor-aio/src/test/java/link/pagan/traqtor/EndToEndTest.java index 597c842..d777798 100644 --- a/traqtor-aio/src/test/java/link/pagan/traqtor/EndToEndTest.java +++ b/traqtor-aio/src/test/java/link/pagan/traqtor/EndToEndTest.java @@ -1,100 +1,119 @@ package link.pagan.traqtor; -import link.pagan.traqtor.project.database.Database; -import link.pagan.traqtor.project.database.DatabaseProject; +import com.fasterxml.jackson.core.JsonProcessingException; import link.pagan.traqtor.project.universe.UniverseProject; import link.pagan.traqtor.project.universe.Universe; import link.pagan.traqtor.project.universe.element.Element; import link.pagan.traqtor.project.universe.element.Particle; -import link.pagan.traqtor.project.universe.link.Link; +import link.pagan.traqtor.project.universe.schema.DatatypeSchema; import link.pagan.traqtor.project.universe.schema.impl.LiteralDataTypeSchema; import link.pagan.traqtor.project.universe.schema.impl.LogicDatatypeSchema; import link.pagan.traqtor.project.universe.schema.impl.NumericDatatypeSchema; import link.pagan.traqtor.project.universe.schema.impl.TemporalDatatypeSchema; import link.pagan.traqtor.project.universe.schema.impl.data.literal.StringDataType; -import link.pagan.traqtor.project.universe.schema.impl.data.numeric.IntegerDataType; -import link.pagan.traqtor.project.universe.schema.impl.data.numeric.RationalDataType; +import link.pagan.traqtor.project.universe.schema.impl.data.numeric.integer.IntDataType; +import link.pagan.traqtor.project.universe.schema.impl.data.numeric.real.DoubleDataType; +import link.pagan.traqtor.project.universe.schema.impl.data.numeric.real.FloatDataType; import link.pagan.traqtor.util.RegExpHelper; import org.junit.jupiter.api.Test; public class EndToEndTest { @Test - void endToEndTest () { - LiteralDataTypeSchema LITERAL = LiteralDataTypeSchema.instance(); - LogicDatatypeSchema LOGIC = LogicDatatypeSchema.instance(); - NumericDatatypeSchema NUMERIC = NumericDatatypeSchema.instance(); - TemporalDatatypeSchema TEMPORAL = TemporalDatatypeSchema.instance(); + void endToEndTest () throws JsonProcessingException { + DatatypeSchema LITERAL = LiteralDataTypeSchema.instance(); + DatatypeSchema LOGIC = LogicDatatypeSchema.instance(); + DatatypeSchema NUMERIC = NumericDatatypeSchema.instance(); + DatatypeSchema TEMPORAL = TemporalDatatypeSchema.instance(); - StringDataType STRING = LITERAL.STRING; + StringDataType STRING = LiteralDataTypeSchema.instance().STRING; // LogicDataType BOOLEAN = LOGIC.BOOLEAN; // IntegerDataType BYTE = NUMERIC.BYTE; // IntegerDataType SHORT = NUMERIC.SHORT; - IntegerDataType INTEGER = NUMERIC.INTEGER; + IntDataType INTEGER = NumericDatatypeSchema.instance().INTEGER; // IntegerDataType LONG = NUMERIC.LONG; - RationalDataType FLOAT = NUMERIC.FLOAT; - RationalDataType DOUBLE = NUMERIC.DOUBLE; + FloatDataType FLOAT = NumericDatatypeSchema.instance().FLOAT; + DoubleDataType DOUBLE = NumericDatatypeSchema.instance().DOUBLE; // TemporalDataType DATE = TEMPORAL.DATE; // TemporalDataType TIME = TEMPORAL.TIME; // TemporalDataType TIMESTAMP = TEMPORAL.TIMESTAMP; - Particle accountEmail = STRING.particle() - .name("email") - .description("email as main identifier for an account") - .constraints(STRING.min(4), STRING.max(512), STRING.regExp(RegExpHelper.EMAIL)); - Particle accountPhone = STRING.particle() - .name("phone") - .description("alternative identifier for an account") - .optional() - .constraints(STRING.min(10), STRING.max(32), STRING.regExp(RegExpHelper.PHONE)); + Particle email = STRING.particle() + .name("email") + .description("email as main identifier for an account") + .constraints(STRING.min(4), STRING.max(512), STRING.regExp(RegExpHelper.EMAIL)); + Particle phone = STRING.particle() + .name("phone") + .description("alternative identifier for an account") + .optional() + .constraints(STRING.min(10), STRING.max(32), STRING.regExp(RegExpHelper.PHONE)); + Particle password = STRING.particle() + .name("phone") + .description("account password") + .constraints(STRING.min(8), STRING.max(32)); Element account = Universe.atom() .name("account") - .particles(accountEmail, accountPhone); + .particles(email, phone, password); + + Particle lastName = STRING.particle() + .name("last", "name") + .description("last name of user") + .constraints(STRING.max(64), STRING.min(1)); + + Particle firstName = STRING.particle() + .name("first", "name") + .description("first name of user") + .optional() + .constraints(STRING.max(64), STRING.min(1)); + + Particle age = INTEGER.particle() + .name("age") + .description("age of user owning an account") + .constraints(INTEGER.min(18), INTEGER.max(65)); Element accountDetails = Universe.atom() .name("account", "details") - .particles(STRING.particle() - .name("last", "name") - .description("last name of user") - .constraints(STRING.max(64), STRING.min(1)), STRING.particle() - .name("first", "name") - .description("first name of user") - .optional() - .constraints(STRING.max(64), STRING.min(1)), INTEGER.particle() - .name("age") - .description("age of user owning an account") - .constraints(INTEGER.min(18), INTEGER.max(65))); + + .particles(lastName, firstName, age); + + Particle length = DOUBLE.particle() + .name("length") + .description("penis length") + .constraints(DOUBLE.min(0), DOUBLE.max(40)); Element male = Universe.isotope() .base(account) .name("male") - .particles(DOUBLE.particle() - .name("length") - .description("penis length") - .constraints(DOUBLE.min(0), DOUBLE.max(40))); + .particles(length); + + Particle depth = FLOAT.particle() + .name("depth") + .description("vagina depth") + .constraints(DOUBLE.min(0), DOUBLE.max(40)); Element female = Universe.isotope() .base(account) .name("female") - .particles(FLOAT.particle() - .name("depth") - .description("vagina depth") - .constraints(DOUBLE.min(0), DOUBLE.max(40))); + .particles(depth); + + Particle positionName = STRING.particle() + .name("title") + .description("position name") + .constraints(STRING.max(255), STRING.min(3)); Element position = Universe.atom() .name("position") - .particles(STRING.particle() - .name("title") - .description("position name") - .constraints(STRING.max(255), STRING.min(3))); + .particles(positionName); + + Particle idNumber = STRING.particle() + .name("number") + .description("military id number") + .constraints(STRING.max(11), STRING.min(11)); Element militaryId = Universe.atom() .name("military", "id") - .particles(STRING.particle() - .name("number") - .description("military id number") - .constraints(STRING.max(11), STRING.min(11))); + .particles(idNumber); Element profile = Universe.atom() .name(("profile")); @@ -103,47 +122,57 @@ public class EndToEndTest { .name("base") .schemas(LITERAL, LOGIC, NUMERIC, TEMPORAL) .elements(account, accountDetails, male, female, position, militaryId, profile) - .links(Link.oneToOne() - .from(account) - .fromName("details") - .to(accountDetails) - .toName("account") - .mandatory(), Universe.linkOneToMany() - .from(account) - .fromName("profiles") - .to(profile) - .toName("account") - .more(0), Universe.linkManyToMany() - .from(profile) - .fromName("positions") - .to(position) - .toName("profiles"), Universe.linkOneToOne() - .from(male) - .fromName("military", "id") - .to(militaryId) - .toName("account")); + .links(Universe.linkOneToOne() + .from(account) + .fromName("details") + .to(accountDetails) + .toName("account") + .mandatory(), Universe.linkOneToMany() + .from(account) + .fromName("profiles") + .to(profile) + .toName("account") + .more(0), Universe.linkManyToMany() + .from(profile) + .fromName("positions") + .to(position) + .toName("profiles"), Universe.linkOneToOne() + .from(male) + .fromName("military", "id") + .to(militaryId) + .toName("account")); + + Particle organizationName = STRING.particle() + .name("name") + .description("full name of an organization") + .constraints(STRING.max(255), STRING.min(3)); + Element organization = Universe.atom(); + organization.name("organization"); + organization.particles(organizationName); UniverseProject dataUniverse = Universe.project() .name("data") .schemas(LITERAL) - .elements(Universe.atom() - .name("organization") - .particles(STRING.particle() - .name("name") - .description("full name of an organization") - .constraints(STRING.max(255), STRING.min(3)))); - - DatabaseProject mainDatabase = Database.project() - .name("primary") - .universes(baseUniverse, dataUniverse) - .addSchema(Database.schema() - .name("public") - .tables(Database.table() - .columns())); - - new Workspace() - .name("link", "pagan") - .projects(baseUniverse, dataUniverse, mainDatabase); + .elements(organization); + + System.out.println(Traqtor.io().toFileHandle(baseUniverse).content()); + System.out.println(Traqtor.io().toFileHandle(dataUniverse).content()); + // try { + // + // String writeValueAsString = mapper.writeValueAsString(dataUniverse); + // // DatabaseProject mainDatabase = Database.project() + // // .name("primary") + // // .universes(baseUniverse, dataUniverse) + // // .addSchema(Database.schema() + // // .name("public") + // // .tables(Database.table() + // // .columns())); + // // new Workspace() + // // .name("link", "pagan") + // // .projects(baseUniverse, dataUniverse, mainDatabase); + // } catch (JsonProcessingException ex) { + // Logger.getLogger(EndToEndTest.class.getName()).log(Level.SEVERE, null, ex); + // } } } diff --git a/traqtor-aio/src/test/java/link/pagan/z_old/TraqtorApiTestUtils.java b/traqtor-aio/src/test/java/link/pagan/z_old/TraqtorApiTestUtils.java deleted file mode 100644 index fc74113..0000000 --- a/traqtor-aio/src/test/java/link/pagan/z_old/TraqtorApiTestUtils.java +++ /dev/null @@ -1,31 +0,0 @@ -package link.pagan.z_old; - -// package link.pagan.traqtor._api; - -// import java.io.File; -// import java.io.IOException; -// import java.nio.file.Files; -// import java.nio.file.Path; -// import java.util.Comparator; -// import link.pagan.traqtor.util.Name; - -// /** -// * -// * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} -// */ -// public class TraqtorApiTestUtils { - -// public static final String TEST_WORKSPACE_ROOT = new File(new File("").getAbsoluteFile().getParentFile(), "traqtor-demo-workspace").getAbsolutePath(); -// public static final Name TEST_WORKSPACE_NAME = Name.of("traqtor", "demo", "workspace"); - -// public static final void killTestRoot() throws IOException { -// File root = new File(TEST_WORKSPACE_ROOT); -// if (root.exists()) { -// Files.walk(new File(TEST_WORKSPACE_ROOT).toPath()) -// .sorted(Comparator.reverseOrder()) -// .map(Path::toFile) -// .forEach(File::delete); -// } -// } - -// } diff --git a/traqtor-aio/src/test/java/link/pagan/z_old/TraqtorTest.java b/traqtor-aio/src/test/java/link/pagan/z_old/TraqtorTest.java deleted file mode 100644 index 4ec3296..0000000 --- a/traqtor-aio/src/test/java/link/pagan/z_old/TraqtorTest.java +++ /dev/null @@ -1,61 +0,0 @@ -package link.pagan.z_old; - -// package link.pagan.traqtor.api; - -// import java.io.IOException; -// import link.pagan.traqtor._api.TraqtorApiTestUtils; -// import link.pagan.traqtor._api.result.CommandExecResult; -// import static link.pagan.traqtor._api.result.CommandExecResultStatus.DONE; -// import static link.pagan.traqtor._api.result.CommandExecResultStatus.FAIL; -// import static org.junit.jupiter.api.Assertions.assertEquals; -// import org.junit.jupiter.api.BeforeEach; -// import org.junit.jupiter.api.DisplayName; -// import org.junit.jupiter.api.Test; - -// /** -// * -// * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} -// */ -// public class TraqtorTest { - -// CommandExecResult result; - -// @BeforeEach -// public void cleanTestDir() throws IOException { -// TraqtorApiTestUtils.killTestRoot(); -// // Executor.enableParanoindLoggin(); -// } - -// @Test -// @DisplayName("New workspace creation") -// void newWorkspaceSave() { -// Traqtor traqtor = Traqtor.init(); -// result = traqtor.execute(new API.CreateWorkspace()); -// assertEquals(DONE, result.getStatus()); -// assertEquals(traqtor.workspace().dirty(), true); -// result = traqtor.execute(new API.SaveWorkspace()); -// assertEquals(FAIL, result.getStatus()); -// assertEquals(traqtor.workspace().dirty(), true); -// result = traqtor.execute(new API.SaveAsWorkspace(TraqtorApiTestUtils.TEST_WORKSPACE_ROOT)); -// assertEquals(DONE, result.getStatus()); -// assertEquals(traqtor.workspace().dirty(), false); -// } - -// @Test -// @DisplayName("Workspace load") -// void newSaveLoad() { -// Traqtor traqtor = Traqtor.init(); -// result = traqtor.execute(new API.CreateWorkspace(TraqtorApiTestUtils.TEST_WORKSPACE_NAME, TraqtorApiTestUtils.TEST_WORKSPACE_ROOT)); -// assertEquals(DONE, result.getStatus()); -// assertEquals(traqtor.workspace().dirty(), false); -// traqtor = Traqtor.init(); -// result = traqtor.execute(new API.LoadWorkspace(TraqtorApiTestUtils.TEST_WORKSPACE_ROOT)); -// assertEquals(DONE, result.getStatus()); -// assertEquals(traqtor.workspace().dirty(), false); -// assertEquals(traqtor.workspace().dataTypeSchemas().size(), 1); -// result = traqtor.execute(new API.SaveWorkspace()); -// assertEquals(DONE, result.getStatus()); -// assertEquals(traqtor.workspace().dirty(), false); -// } - -// } diff --git a/traqtor-aio/src/test/java/link/pagan/z_old/UniverseBlueprintTest.java b/traqtor-aio/src/test/java/link/pagan/z_old/UniverseBlueprintTest.java deleted file mode 100644 index 1c11b0c..0000000 --- a/traqtor-aio/src/test/java/link/pagan/z_old/UniverseBlueprintTest.java +++ /dev/null @@ -1,91 +0,0 @@ -package link.pagan.z_old; - -//package link.pagan.traqtor.generator; -// -//import com.fasterxml.jackson.core.JsonProcessingException; -//import link.pagan.traqtor._api.result.CommandExecResult; -//import static link.pagan.traqtor._api.result.CommandExecResultStatus.DONE; -//import link.pagan.traqtor.api.API; -//import link.pagan.traqtor.api.Traqtor; -//import link.pagan.traqtor.generator.blueprint.universe.LinkType; -//import link.pagan.traqtor.generator.blueprint.universe.build.LinkBlueprintBuilder; -//import link.pagan.traqtor.generator.blueprint.universe.build.AtomBlueprintBuilder; -//import link.pagan.traqtor.generator.blueprint.universe.build.ParticleBlueprintBuilder; -//import link.pagan.traqtor.generator.blueprint.universe.build.UniverseBlueprintBuilder; -//import link.pagan.traqtor.generator.blueprint.universe.UniverseBlueprint; -//import link.pagan.traqtor.util.Name; -//import link.pagan.traqtor.schema.basic.data.DataTypeSchemaReferenceImplementation; -//import static org.junit.jupiter.api.Assertions.assertEquals; -//import org.junit.jupiter.api.Test; -// -///** -// * -// * @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} -// */ -//public class UniverseBlueprintTest { -// -// @Test -// void programmaticBuild() throws JsonProcessingException { -// UniverseBlueprintBuilder builder = new UniverseBlueprintBuilder(new DataTypeSchemaReferenceImplementation()); -// builder -// .addAtom(new AtomBlueprintBuilder() -// .name(Name.of("account")) -// .description("Base user atom") -// .addParticle(new ParticleBlueprintBuilder() -// .name(Name.of("nickname")) -// .description("User nickname, just in case") -// .type("string") -// ) -// .addParticle(new ParticleBlueprintBuilder() -// .name(Name.of("email")) -// .description("Main auth facility for user") -// .type("string") -// ) -// .addParticle(new ParticleBlueprintBuilder() -// .name(Name.of("phone")) -// .description("Alternative user authentification facility") -// .type("string") -// ) -// .addParticle(new ParticleBlueprintBuilder() -// .name(Name.of("password")) -// .description("User password") -// .type("string") -// ) -// ) -// .addAtom(new AtomBlueprintBuilder() -// .name(Name.of("account", "details")) -// .description("User info atom") -// .addParticle(new ParticleBlueprintBuilder() -// .name(Name.of("first", "name")) -// .description("First name of a user") -// .type("string") -// ) -// .addParticle(new ParticleBlueprintBuilder() -// .name(Name.of("last", "name")) -// .description("Last name of a user") -// .type("string") -// ) -// .addParticle(new ParticleBlueprintBuilder() -// .name(Name.of("middle", "names")) -// .description("Middle names of a user") -// .type("string") -// ) -// ) -// .addLink(new LinkBlueprintBuilder() -// .from(Name.of("account")) -// .to(Name.of("account", "details")) -// .type(LinkType.ONE_TO_ONE) -// ); -// -// UniverseBlueprint build = builder.build(); -// -// Traqtor traqtor = Traqtor.init(); -// CommandExecResult result = traqtor.execute(new API.CreateWorkspace()); -// assertEquals(result.getStatus(), DONE); -// assertEquals(traqtor.workspace().dirty(), true); -// String serialized = traqtor.workspace().mapper().writeValueAsString(build); -// System.out.println(serialized); -// -// } -// -//} diff --git a/traqtor-aio/src/test/java/link/pagan/z_old/WorkspaceTest.java b/traqtor-aio/src/test/java/link/pagan/z_old/WorkspaceTest.java deleted file mode 100644 index fd069f0..0000000 --- a/traqtor-aio/src/test/java/link/pagan/z_old/WorkspaceTest.java +++ /dev/null @@ -1,37 +0,0 @@ -package link.pagan.z_old; - -// package link.pagan.traqtor.api.workspace; - -// import java.io.IOException; -// import link.pagan.traqtor._api.TraqtorApiTestUtils; -// import link.pagan.traqtor._api.result.CommandExecResult; -// import static link.pagan.traqtor._api.result.CommandExecResultStatus.DONE; -// import link.pagan.traqtor.api.API; -// import link.pagan.traqtor.api.Traqtor; -// import link.pagan.traqtor.util.Name; -// import static org.junit.jupiter.api.Assertions.assertEquals; -// import org.junit.jupiter.api.BeforeEach; -// import org.junit.jupiter.api.DisplayName; -// import org.junit.jupiter.api.Test; - -// public class WorkspaceTest { - -// CommandExecResult result; - -// @BeforeEach -// public void cleanTestDir() throws IOException { -// TraqtorApiTestUtils.killTestRoot(); -// // Executor.enableParanoindLoggin(); -// } - -// @Test -// @DisplayName("Create project") -// void newSaveLoad() { -// Traqtor traqtor = Traqtor.init(); -// result = traqtor.execute(new API.CreateWorkspace(TraqtorApiTestUtils.TEST_WORKSPACE_NAME, TraqtorApiTestUtils.TEST_WORKSPACE_ROOT)); -// assertEquals(DONE, result.getStatus()); -// assertEquals(traqtor.workspace().dirty(), false); -// traqtor.execute(new API.WorkspaceCreateUniverseProject(Name.of("universe"), Name.of("traqtor", "basic"))); -// } - -// } diff --git a/traqtor-json/pom.xml b/traqtor-json/pom.xml new file mode 100644 index 0000000..25bb03a --- /dev/null +++ b/traqtor-json/pom.xml @@ -0,0 +1,59 @@ + + + 4.0.0 + + link.pagan + traqtor + 0.0.1-SNAPSHOT + + link.pagan + traqtor-json + 0.0.1-SNAPSHOT + jar + TraQtor / JSON + + UTF-8 + 11 + 11 + + + + + org.junit + junit-bom + 5.7.1 + pom + import + + + + + + org.junit.jupiter + junit-jupiter + test + + + com.fasterxml.jackson.core + jackson-databind + 2.12.1 + + + ${project.groupId} + traqtor-aio + ${project.version} + + + + + + maven-compiler-plugin + 3.8.1 + + + maven-surefire-plugin + 2.22.2 + + + + diff --git a/traqtor.code-workspace b/traqtor.code-workspace index 2d8918a..da3b4b5 100644 --- a/traqtor.code-workspace +++ b/traqtor.code-workspace @@ -33,7 +33,10 @@ "alias": "format", "command": "formatter:format" } - ] + ], + "[xml]": { + "editor.defaultFormatter": "redhat.vscode-xml" + } } }