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 extends DataType> a, Particle extends DataType> 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 extends DataType>... 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 extends DataType> 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 extends DataType> 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 extends IntegerDataType> particle ();
+ public abstract Particle extends IntegerDataType> 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"
+ }
}
}