diff --git a/.vscode/formatting.xml b/.vscode/formatting.xml index 0200049..0e073a3 100644 --- a/.vscode/formatting.xml +++ b/.vscode/formatting.xml @@ -1,420 +1,420 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pom.xml b/pom.xml deleted file mode 100644 index 640c1c3..0000000 --- a/pom.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - 4.0.0 - - link.pagan - traqtor - 0.0.1-SNAPSHOT - pom - TraQtor - - - traqtor-aio - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.2 - - 11 - 11 - - - - - diff --git a/traqtor-aio/pom.xml b/traqtor-aio/pom.xml index 58a8dc9..18ff3df 100644 --- a/traqtor-aio/pom.xml +++ b/traqtor-aio/pom.xml @@ -1,11 +1,11 @@ 4.0.0 - + link.pagan traqtor-aio 0.0.1-SNAPSHOT diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/Directoried.java b/traqtor-aio/src/main/java/link/pagan/traqtor/Directoried.java deleted file mode 100644 index 7bb4a29..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/Directoried.java +++ /dev/null @@ -1,15 +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; - -import java.io.File; - -/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ -public interface Directoried { - - public File dir (); - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/Filed.java b/traqtor-aio/src/main/java/link/pagan/traqtor/Filed.java deleted file mode 100644 index 6914d81..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/Filed.java +++ /dev/null @@ -1,15 +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; - -import java.io.File; - -/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ -public interface Filed { - - public File file (); - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/deck/SystemConfig.java b/traqtor-aio/src/main/java/link/pagan/traqtor/deck/SystemConfig.java deleted file mode 100644 index 06c6244..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/deck/SystemConfig.java +++ /dev/null @@ -1,35 +0,0 @@ -package link.pagan.traqtor.deck; - -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; -import com.fasterxml.jackson.databind.module.SimpleModule; -import link.pagan.traqtor.Workspace; -import link.pagan.traqtor.WorkspaceSerializer; -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 abstract class SystemConfig { - - public static final ObjectMapper JSON = new ObjectMapper() - .enable(SerializationFeature.INDENT_OUTPUT) - .registerModule(new SimpleModule() - .addSerializer(Name.class, new NameSerializer()) - .addSerializer(UniverseProject.class, new UniverseProjectSerializer()) - .addSerializer(Element.class, new ElementSerializer()) - .addSerializer(Particle.class, new PaticleInfoSerializer()) - .addSerializer(Constraint.class, new ConstraintInfoSerializer()) - .addSerializer(Link.class, new LinkSerializer()) - .addSerializer(Workspace.class, new WorkspaceSerializer())); - -} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/deck/op/MessageType.java b/traqtor-aio/src/main/java/link/pagan/traqtor/deck/op/MessageType.java deleted file mode 100644 index 310d061..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/deck/op/MessageType.java +++ /dev/null @@ -1,8 +0,0 @@ -package link.pagan.traqtor.deck.op; - -/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ -public enum MessageType { - INFO, - WARN, - FAIL -} 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 index 5a83ebf..9338247 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/mapping/MappingEntry.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/mapping/MappingEntry.java @@ -1,6 +1,6 @@ package link.pagan.traqtor.mapping; -import link.pagan.traqtor.project.universe.schema.DataType; +import link.pagan.traqtor.model.project.universe.schema.DataType; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public class MappingEntry { diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/Workspace.java b/traqtor-aio/src/main/java/link/pagan/traqtor/model/Workspace.java similarity index 67% rename from traqtor-aio/src/main/java/link/pagan/traqtor/Workspace.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/Workspace.java index eec072c..b5750a8 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/Workspace.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/Workspace.java @@ -1,29 +1,48 @@ -package link.pagan.traqtor; - +package link.pagan.traqtor.model; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import link.pagan.traqtor.util.io.Filed; +import link.pagan.traqtor.util.io.Directoried; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import link.pagan.traqtor.deck.SystemConfig; -import link.pagan.traqtor.deck.op.OperationResult; -import link.pagan.traqtor.project.Project; -import link.pagan.traqtor.project.database.DatabaseProject; -import link.pagan.traqtor.project.universe.UniverseProject; +import link.pagan.traqtor.util.op.OperationObjectResult; +import link.pagan.traqtor.util.op.OperationResult; +import link.pagan.traqtor.model.project.Project; +import link.pagan.traqtor.model.project.database.DatabaseProject; +import link.pagan.traqtor.model.project.universe.UniverseProject; import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +@JsonDeserialize(using = WorkspaceDeserializer.class) +@JsonSerialize(using = WorkspaceSerializer.class) public class Workspace implements Filed, Directoried { + private ObjectMapper json; + private File root; - // private File lockFile; private Name name; private boolean dirty; + private boolean pretty; + private final List projects; + public Workspace () { + this.root = null; + this.dirty = true; + this.pretty = true; + this.json = new ObjectMapper().enable(SerializationFeature.INDENT_OUTPUT); + this.projects = new ArrayList(); + } + public UniverseProject universe () { UniverseProject project = new UniverseProject(this); this.projects.add(project); @@ -38,20 +57,10 @@ public class Workspace implements Filed, Directoried { return project; } - public Workspace () { - this.root = null; - this.dirty = true; - this.projects = new ArrayList(); - } - public Name name () { return this.name; } - public Workspace name (String... parts) { - return name(Name.of(parts)); - } - public Workspace name (Name name) { this.name = name; return this; @@ -72,7 +81,16 @@ public class Workspace implements Filed, Directoried { return root; } - public Workspace root (File root) { + @Override + public File file () { + return file(Workspace.this.dir()); + } + + private static File file (File dir) { + return new File(dir, ".tw"); + } + + public Workspace dir (File root) { this.root = root; return this; } @@ -85,8 +103,26 @@ public class Workspace implements Filed, Directoried { return dirty; } + public boolean pretty () { + return pretty; + } + + public void pretty (boolean pretty) { + + if (pretty) { + this.json.enable(SerializationFeature.INDENT_OUTPUT); + } else { + this.json.disable(SerializationFeature.INDENT_OUTPUT); + } + this.pretty = pretty; + } + + public ObjectMapper json () { + return json; + } + public OperationResult saveAs (File parentDir) { - return saveAs(this, parentDir, OperationResult.start()); + return saveAs(this, parentDir, new OperationResult()); } private static OperationResult saveAs (Workspace workspace, File parent, OperationResult result) { @@ -129,21 +165,21 @@ public class Workspace implements Filed, Directoried { File oldRoot = workspace.dir(); boolean oldDirty = workspace.dirty(); - workspace.root(root); + workspace.dir(root); workspace.dirty(true); result.info("Setting workspace root to " + root.getAbsolutePath()); save(workspace, result.startSubresult()); if (!result.ok()) { result.info("Reverting workspace root to " + oldRoot.getAbsolutePath()); - workspace.root(oldRoot); + workspace.dir(oldRoot); workspace.dirty(oldDirty); } return result; } public OperationResult save () { - return save(this, OperationResult.start()); + return save(this, new OperationResult()); } private static OperationResult save (Workspace workspace, OperationResult result) { @@ -192,17 +228,32 @@ public class Workspace implements Filed, Directoried { result.info("Writing workspace descriptor file to " + file.getAbsolutePath() + " ..."); try { - SystemConfig.JSON.writeValue(file, workspace); + workspace.json().writeValue(file, workspace); } catch (IOException ex) { - result.fail("Failed to write file " + file.getAbsolutePath() + " - IO exception"); - result.fail(ex); + return result.fail("Failed to write file " + file.getAbsolutePath() + " - IO exception") + .fail(ex); } return result; } - @Override - public File file () { - return new File(dir(), ".tw"); + public static OperationObjectResult load (File dir) { + OperationObjectResult result = new OperationObjectResult(); + readJson(dir, result); + return result; + } + + private static OperationObjectResult readJson (File dir, OperationObjectResult result) { + File file = file(dir); + result.info("Reading workspace from " + dir.getAbsolutePath() + " ..."); + + try { + result.info("Reading json from " + file.getAbsolutePath() + " ..."); + result.object(new ObjectMapper().readValue(file, Workspace.class)); + } catch (IOException ex) { + return result.fail("Failed to read file " + file.getAbsolutePath() + " - IO exception").fail(ex); + } + result.object().dir(file); + return result; } } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/model/WorkspaceDeserializer.java b/traqtor-aio/src/main/java/link/pagan/traqtor/model/WorkspaceDeserializer.java new file mode 100644 index 0000000..b99307e --- /dev/null +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/WorkspaceDeserializer.java @@ -0,0 +1,43 @@ +package link.pagan.traqtor.model; + +import java.io.IOException; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.TreeNode; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.deser.std.StdDeserializer; + +import link.pagan.traqtor.util.Name; + +/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +class WorkspaceDeserializer extends StdDeserializer { + + private static final long serialVersionUID = 1L; + + protected WorkspaceDeserializer () { + this(null); + } + + protected WorkspaceDeserializer (Class t) { + super(t); + } + + @Override + public Workspace deserialize (JsonParser parser, DeserializationContext ctxt) throws IOException, + JsonProcessingException + { + Workspace workspace = new Workspace(); + TreeNode tree = workspace.json().readTree(parser); + + TreeNode nameNode = tree.get("name"); + TreeNode prettyNode = tree.get("pretty"); + + if (nameNode != null) { workspace.name(workspace.json().treeToValue(nameNode, Name.class)); } + + if (prettyNode != null) { workspace.pretty(workspace.json().treeToValue(prettyNode, Boolean.class)); } + + return workspace; + } + +} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/WorkspaceSerializer.java b/traqtor-aio/src/main/java/link/pagan/traqtor/model/WorkspaceSerializer.java similarity index 79% rename from traqtor-aio/src/main/java/link/pagan/traqtor/WorkspaceSerializer.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/WorkspaceSerializer.java index d5f861e..b0229b4 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/WorkspaceSerializer.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/WorkspaceSerializer.java @@ -1,12 +1,12 @@ -package link.pagan.traqtor; +package link.pagan.traqtor.model; +import java.io.IOException; 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 WorkspaceSerializer extends StdSerializer { +class WorkspaceSerializer extends StdSerializer { private static final long serialVersionUID = 1L; @@ -22,7 +22,9 @@ public class WorkspaceSerializer extends StdSerializer { public void serialize (Workspace value, JsonGenerator gen, SerializerProvider provider) throws IOException { gen.writeStartObject(); gen.writeObjectField("name", value.name()); + + if (value.pretty()) { gen.writeBooleanField("pretty", value.pretty()); } gen.writeEndObject(); } -} +} \ No newline at end of file diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/Project.java b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/Project.java similarity index 67% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/Project.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/Project.java index d67d1a2..bc3c28c 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/Project.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/Project.java @@ -1,9 +1,9 @@ -package link.pagan.traqtor.project; +package link.pagan.traqtor.model.project; -import link.pagan.traqtor.Directoried; -import link.pagan.traqtor.Filed; -import link.pagan.traqtor.Workspace; -import link.pagan.traqtor.deck.op.OperationResult; +import link.pagan.traqtor.util.io.Directoried; +import link.pagan.traqtor.util.io.Filed; +import link.pagan.traqtor.model.Workspace; +import link.pagan.traqtor.util.op.OperationResult; import link.pagan.traqtor.util.Name; public abstract class Project implements Filed, Directoried { @@ -36,4 +36,8 @@ public abstract class Project implements Filed, Directoried { public abstract OperationResult save (OperationResult result); + public Workspace workspace () { + return workspace; + } + } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/backend/mapping/BackendProject.java b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/backend/mapping/BackendProject.java similarity index 81% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/backend/mapping/BackendProject.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/backend/mapping/BackendProject.java index 8fa7806..073e724 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/backend/mapping/BackendProject.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/backend/mapping/BackendProject.java @@ -3,12 +3,12 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package link.pagan.traqtor.project.backend.mapping; +package link.pagan.traqtor.model.project.backend.mapping; import java.io.File; -import link.pagan.traqtor.Workspace; -import link.pagan.traqtor.deck.op.OperationResult; -import link.pagan.traqtor.project.Project; +import link.pagan.traqtor.model.Workspace; +import link.pagan.traqtor.util.op.OperationResult; +import link.pagan.traqtor.model.project.Project; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public class BackendProject extends Project { 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/model/project/backend/mapping/JavaBackendMapping.java similarity index 96% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/backend/mapping/JavaBackendMapping.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/backend/mapping/JavaBackendMapping.java index fd84898..578482d 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/backend/mapping/JavaBackendMapping.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/backend/mapping/JavaBackendMapping.java @@ -1,3 +1,5 @@ +package link.pagan.traqtor.model.project.backend.mapping; + // package link.pagan.traqtor.project.backend.mapping; // // import java.util.HashMap; diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/DatabaseColumn.java b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/database/DatabaseColumn.java similarity index 85% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/database/DatabaseColumn.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/database/DatabaseColumn.java index 9516cf8..55d38c4 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/DatabaseColumn.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/database/DatabaseColumn.java @@ -3,7 +3,7 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package link.pagan.traqtor.project.database; +package link.pagan.traqtor.model.project.database; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public class DatabaseColumn { diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/DatabaseProject.java b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/database/DatabaseProject.java similarity index 80% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/database/DatabaseProject.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/database/DatabaseProject.java index 702855d..f5a7566 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/DatabaseProject.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/database/DatabaseProject.java @@ -1,10 +1,10 @@ -package link.pagan.traqtor.project.database; +package link.pagan.traqtor.model.project.database; import java.io.File; -import link.pagan.traqtor.Workspace; -import link.pagan.traqtor.deck.op.OperationResult; -import link.pagan.traqtor.project.universe.UniverseProject; -import link.pagan.traqtor.project.Project; +import link.pagan.traqtor.model.Workspace; +import link.pagan.traqtor.util.op.OperationResult; +import link.pagan.traqtor.model.project.universe.UniverseProject; +import link.pagan.traqtor.model.project.Project; import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/DatabaseSchema.java b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/database/DatabaseSchema.java similarity index 91% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/database/DatabaseSchema.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/database/DatabaseSchema.java index ba47583..59b6694 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/DatabaseSchema.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/database/DatabaseSchema.java @@ -3,7 +3,7 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package link.pagan.traqtor.project.database; +package link.pagan.traqtor.model.project.database; import link.pagan.traqtor.util.Name; diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/DatabaseTable.java b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/database/DatabaseTable.java similarity index 79% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/database/DatabaseTable.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/database/DatabaseTable.java index 19cc4c6..3698d2c 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/DatabaseTable.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/database/DatabaseTable.java @@ -1,4 +1,4 @@ -package link.pagan.traqtor.project.database; +package link.pagan.traqtor.model.project.database; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public class DatabaseTable { 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/model/project/database/mapping/DatabaseAdapter.java similarity index 89% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/database/mapping/DatabaseAdapter.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/database/mapping/DatabaseAdapter.java index 488a276..0963975 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/mapping/DatabaseAdapter.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/database/mapping/DatabaseAdapter.java @@ -1,3 +1,5 @@ +package link.pagan.traqtor.model.project.database.mapping; + // package link.pagan.traqtor.project.database.mapping; // // import link.pagan.traqtor.util.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/model/project/database/mapping/DatabaseMapping.java similarity index 85% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/database/mapping/DatabaseMapping.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/database/mapping/DatabaseMapping.java index d6c55fd..510d741 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/mapping/DatabaseMapping.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/database/mapping/DatabaseMapping.java @@ -1,4 +1,4 @@ -package link.pagan.traqtor.project.database.mapping; +package link.pagan.traqtor.model.project.database.mapping; import java.util.HashMap; import link.pagan.traqtor.mapping.Mapping; diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/mapping/DatabaseNamingScheme.java b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/database/mapping/DatabaseNamingScheme.java similarity index 84% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/database/mapping/DatabaseNamingScheme.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/database/mapping/DatabaseNamingScheme.java index caf3faf..48d7e93 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/database/mapping/DatabaseNamingScheme.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/database/mapping/DatabaseNamingScheme.java @@ -3,7 +3,7 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package link.pagan.traqtor.project.database.mapping; +package link.pagan.traqtor.model.project.database.mapping; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public interface DatabaseNamingScheme { 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/model/project/database/mapping/impl/PostgresDatabaseAdapter.java similarity index 93% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/database/mapping/impl/PostgresDatabaseAdapter.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/database/mapping/impl/PostgresDatabaseAdapter.java index 30f9be6..3160fd4 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/model/project/database/mapping/impl/PostgresDatabaseAdapter.java @@ -1,3 +1,5 @@ +package link.pagan.traqtor.model.project.database.mapping.impl; + /// * // * To change this license header, choose License Headers in Project Properties. // * To change this template file, choose Tools | Templates 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/model/project/database/mapping/impl/PostgresDatabaseMapping.java similarity index 95% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/database/mapping/impl/PostgresDatabaseMapping.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/database/mapping/impl/PostgresDatabaseMapping.java index cfde89b..50c9c96 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/model/project/database/mapping/impl/PostgresDatabaseMapping.java @@ -1,3 +1,5 @@ +package link.pagan.traqtor.model.project.database.mapping.impl; + // package link.pagan.traqtor.project.database.mapping.impl; // // import java.util.HashMap; diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/frontend/FrontendProject.java b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/frontend/FrontendProject.java similarity index 81% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/frontend/FrontendProject.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/frontend/FrontendProject.java index 56fb903..7c9e959 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/frontend/FrontendProject.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/frontend/FrontendProject.java @@ -3,12 +3,12 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package link.pagan.traqtor.project.frontend; +package link.pagan.traqtor.model.project.frontend; import java.io.File; -import link.pagan.traqtor.Workspace; -import link.pagan.traqtor.deck.op.OperationResult; -import link.pagan.traqtor.project.Project; +import link.pagan.traqtor.model.Workspace; +import link.pagan.traqtor.util.op.OperationResult; +import link.pagan.traqtor.model.project.Project; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public class FrontendProject extends Project { 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/model/project/frontend/mapping/JavaScriptFrontendMapping.java similarity index 96% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/frontend/mapping/JavaScriptFrontendMapping.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/frontend/mapping/JavaScriptFrontendMapping.java index 6176f78..4a34a02 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/frontend/mapping/JavaScriptFrontendMapping.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/frontend/mapping/JavaScriptFrontendMapping.java @@ -1,3 +1,5 @@ +package link.pagan.traqtor.model.project.frontend.mapping; + // package link.pagan.traqtor.project.frontend.mapping; // // import java.util.HashMap; diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/Universe.java b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/Universe.java similarity index 52% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/Universe.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/Universe.java index 41c8b55..c32e4a4 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/Universe.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/Universe.java @@ -1,9 +1,9 @@ -package link.pagan.traqtor.project.universe; +package link.pagan.traqtor.model.project.universe; -import link.pagan.traqtor.project.universe.link.Link; -import link.pagan.traqtor.project.universe.link.ManyToManyLink; -import link.pagan.traqtor.project.universe.link.OneToManyLink; -import link.pagan.traqtor.project.universe.link.OneToOneLink; +import link.pagan.traqtor.model.project.universe.link.Link; +import link.pagan.traqtor.model.project.universe.link.ManyToManyLink; +import link.pagan.traqtor.model.project.universe.link.OneToManyLink; +import link.pagan.traqtor.model.project.universe.link.OneToOneLink; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public class Universe { diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/UniverseProject.java b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/UniverseProject.java similarity index 84% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/UniverseProject.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/UniverseProject.java index c534254..dd379f4 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/UniverseProject.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/UniverseProject.java @@ -1,21 +1,23 @@ -package link.pagan.traqtor.project.universe; +package link.pagan.traqtor.model.project.universe; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.io.File; import java.io.IOException; import java.util.Arrays; import java.util.Set; import java.util.TreeSet; -import link.pagan.traqtor.Workspace; -import link.pagan.traqtor.deck.SystemConfig; -import link.pagan.traqtor.deck.op.OperationResult; -import link.pagan.traqtor.project.Project; -import link.pagan.traqtor.project.universe.element.Atom; -import link.pagan.traqtor.project.universe.schema.DatatypeSchema; -import link.pagan.traqtor.project.universe.link.Link; -import link.pagan.traqtor.project.universe.element.Element; -import link.pagan.traqtor.project.universe.element.Isotope; +import link.pagan.traqtor.model.Workspace; +import link.pagan.traqtor.util.op.OperationResult; +import link.pagan.traqtor.model.project.Project; +import link.pagan.traqtor.model.project.universe.element.Atom; +import link.pagan.traqtor.model.project.universe.schema.DatatypeSchema; +import link.pagan.traqtor.model.project.universe.link.Link; +import link.pagan.traqtor.model.project.universe.element.Element; +import link.pagan.traqtor.model.project.universe.element.Isotope; import link.pagan.traqtor.util.Name; +// @JsonDeserialize(using = UniverseDeserializer.class) +@JsonSerialize(using = UniverseSerializer.class) public class UniverseProject extends Project { private final Set schemas; @@ -105,7 +107,7 @@ public class UniverseProject extends Project { result.info("Writing project descriptor file to " + file.getAbsolutePath() + " ..."); try { - SystemConfig.JSON.writeValue(file, project); + project.workspace().json().writeValue(file, project); } catch (IOException ex) { result.fail("Failed to write file " + file.getAbsolutePath() + " - IO exception"); result.fail(ex); diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/UniverseSerializer.java b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/UniverseSerializer.java new file mode 100644 index 0000000..2fdb068 --- /dev/null +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/UniverseSerializer.java @@ -0,0 +1,42 @@ +package link.pagan.traqtor.model.project.universe; + +import java.io.IOException; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; + +import link.pagan.traqtor.model.project.universe.link.Link; +import link.pagan.traqtor.model.project.universe.schema.DatatypeSchema; + +class UniverseSerializer extends StdSerializer { + + private static final long serialVersionUID = 1L; + + public UniverseSerializer () { + this(null); + } + + public UniverseSerializer (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("links"); + + for (Link link : value.links()) { gen.writeObject(link); } + gen.writeEndArray(); + + gen.writeEndObject(); + } + +} \ No newline at end of file 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/model/project/universe/element/Atom.java similarity index 72% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/Atom.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/element/Atom.java index 8e945c1..1b5b763 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/Atom.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/element/Atom.java @@ -1,9 +1,9 @@ -package link.pagan.traqtor.project.universe.element; +package link.pagan.traqtor.model.project.universe.element; import java.io.File; import java.util.List; -import link.pagan.traqtor.project.universe.UniverseProject; -import link.pagan.traqtor.project.universe.schema.DataType; +import link.pagan.traqtor.model.project.universe.UniverseProject; +import link.pagan.traqtor.model.project.universe.schema.DataType; 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/model/project/universe/element/Element.java similarity index 78% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/Element.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/element/Element.java index d637871..5310cf0 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/Element.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/element/Element.java @@ -1,4 +1,4 @@ -package link.pagan.traqtor.project.universe.element; +package link.pagan.traqtor.model.project.universe.element; import java.io.File; import java.io.IOException; @@ -7,13 +7,17 @@ import java.util.Comparator; import java.util.List; import java.util.Set; import java.util.TreeSet; -import link.pagan.traqtor.Filed; -import link.pagan.traqtor.deck.SystemConfig; -import link.pagan.traqtor.deck.op.OperationResult; -import link.pagan.traqtor.project.universe.UniverseProject; -import link.pagan.traqtor.project.universe.schema.DataType; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; + +import link.pagan.traqtor.util.io.Filed; +import link.pagan.traqtor.util.op.OperationResult; +import link.pagan.traqtor.model.project.universe.UniverseProject; +import link.pagan.traqtor.model.project.universe.schema.DataType; import link.pagan.traqtor.util.Name; +// @JsonDeserialize(using = LinkDeserializer.class) +@JsonSerialize(using = ElementSerializer.class) public abstract class Element implements Filed { protected final UniverseProject project; @@ -37,7 +41,8 @@ public abstract class Element implements Filed { } public Name name () { - if (name == null) return Name.NO_NAME; + + if (name == null) { return Name.NO_NAME; } return name; } @@ -84,7 +89,7 @@ public abstract class Element implements Filed { result.info("Writing element to " + file.getAbsolutePath() + " ..."); try { - SystemConfig.JSON.writeValue(file, element); + element.project().workspace().json().writeValue(file, element); } catch (IOException ex) { result.fail("Failed to write file " + file.getAbsolutePath() + " - IO exception"); result.fail(ex); @@ -92,4 +97,8 @@ public abstract class Element implements Filed { return result; } + public UniverseProject project () { + return project; + } + } 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/model/project/universe/element/ElementSerializer.java similarity index 84% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/ElementSerializer.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/element/ElementSerializer.java index 6687732..f8a0b74 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/ElementSerializer.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/element/ElementSerializer.java @@ -1,13 +1,13 @@ -package link.pagan.traqtor.project.universe.element; +package link.pagan.traqtor.model.project.universe.element; +import java.io.IOException; 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; +import link.pagan.traqtor.model.project.universe.schema.DataType; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ -public class ElementSerializer extends StdSerializer { +class ElementSerializer extends StdSerializer { private static final long serialVersionUID = 1L; @@ -36,4 +36,4 @@ public class ElementSerializer extends StdSerializer { gen.writeEndObject(); } -} +} \ No newline at end of file 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/model/project/universe/element/Isotope.java similarity index 76% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/Isotope.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/element/Isotope.java index a7afdbd..0807e30 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/Isotope.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/element/Isotope.java @@ -1,9 +1,9 @@ -package link.pagan.traqtor.project.universe.element; +package link.pagan.traqtor.model.project.universe.element; import java.io.File; import java.util.List; -import link.pagan.traqtor.project.universe.UniverseProject; -import link.pagan.traqtor.project.universe.schema.DataType; +import link.pagan.traqtor.model.project.universe.UniverseProject; +import link.pagan.traqtor.model.project.universe.schema.DataType; import link.pagan.traqtor.util.Name; public class Isotope extends Element { 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/model/project/universe/element/Particle.java similarity index 76% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/Particle.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/element/Particle.java index 078e1de..de9fac6 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/Particle.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/element/Particle.java @@ -1,14 +1,19 @@ -package link.pagan.traqtor.project.universe.element; +package link.pagan.traqtor.model.project.universe.element; 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 com.fasterxml.jackson.databind.annotation.JsonSerialize; + +import link.pagan.traqtor.model.project.universe.schema.Constraint; +import link.pagan.traqtor.model.project.universe.schema.ConstraintInfo; +import link.pagan.traqtor.model.project.universe.schema.DataType; import link.pagan.traqtor.util.Name; +// @JsonDeserialize(using = LinkDeserializer.class) +@JsonSerialize(using = PaticleInfoSerializer.class) public class Particle extends PaticleInfo { private final Set 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/model/project/universe/element/PaticleInfo.java similarity index 77% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/PaticleInfo.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/element/PaticleInfo.java index 4bab07a..166fc2c 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/PaticleInfo.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/element/PaticleInfo.java @@ -1,8 +1,8 @@ -package link.pagan.traqtor.project.universe.element; +package link.pagan.traqtor.model.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.model.project.universe.schema.ConstraintInfo; +import link.pagan.traqtor.model.project.universe.schema.DataType; import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ 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/model/project/universe/element/PaticleInfoSerializer.java similarity index 85% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/PaticleInfoSerializer.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/element/PaticleInfoSerializer.java index ddd9b84..2f2bb5a 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/element/PaticleInfoSerializer.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/element/PaticleInfoSerializer.java @@ -1,13 +1,13 @@ -package link.pagan.traqtor.project.universe.element; +package link.pagan.traqtor.model.project.universe.element; +import java.io.IOException; 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; +import link.pagan.traqtor.model.project.universe.schema.ConstraintInfo; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ -public class PaticleInfoSerializer extends StdSerializer { +class PaticleInfoSerializer extends StdSerializer { private static final long serialVersionUID = 1L; @@ -40,4 +40,4 @@ public class PaticleInfoSerializer extends StdSerializer { gen.writeEndObject(); } -} +} \ No newline at end of file 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/model/project/universe/link/Link.java similarity index 79% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/Link.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/link/Link.java index 181aba8..331d6f9 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/Link.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/link/Link.java @@ -1,8 +1,12 @@ -package link.pagan.traqtor.project.universe.link; +package link.pagan.traqtor.model.project.universe.link; -import link.pagan.traqtor.project.universe.element.Element; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; + +import link.pagan.traqtor.model.project.universe.element.Element; import link.pagan.traqtor.util.Name; +// @JsonDeserialize(using = LinkDeserializer.class) +@JsonSerialize(using = LinkSerializer.class) public abstract class Link { private Element from; 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/model/project/universe/link/LinkSerializer.java similarity index 88% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/LinkSerializer.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/link/LinkSerializer.java index 6461914..91939ea 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/LinkSerializer.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/link/LinkSerializer.java @@ -1,12 +1,12 @@ -package link.pagan.traqtor.project.universe.link; +package link.pagan.traqtor.model.project.universe.link; +import java.io.IOException; 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 { +class LinkSerializer extends StdSerializer { private static final long serialVersionUID = 1L; @@ -29,4 +29,4 @@ public class LinkSerializer extends StdSerializer { gen.writeEndObject(); } -} +} \ No newline at end of file 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/model/project/universe/link/LinkType.java similarity index 84% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/LinkType.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/link/LinkType.java index 3fc41ef..861af18 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/LinkType.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/link/LinkType.java @@ -1,4 +1,4 @@ -package link.pagan.traqtor.project.universe.link; +package link.pagan.traqtor.model.project.universe.link; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ public enum LinkType { 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/model/project/universe/link/ManyToManyLink.java similarity index 86% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/ManyToManyLink.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/link/ManyToManyLink.java index 0503a9c..9eaa5fe 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/ManyToManyLink.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/link/ManyToManyLink.java @@ -1,7 +1,7 @@ -package link.pagan.traqtor.project.universe.link; +package link.pagan.traqtor.model.project.universe.link; import link.pagan.traqtor.util.Name; -import link.pagan.traqtor.project.universe.element.Element; +import link.pagan.traqtor.model.project.universe.element.Element; public class ManyToManyLink extends Link { 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/model/project/universe/link/OneToManyLink.java similarity index 88% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/OneToManyLink.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/link/OneToManyLink.java index 69a5c00..981f59a 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/OneToManyLink.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/link/OneToManyLink.java @@ -1,7 +1,7 @@ -package link.pagan.traqtor.project.universe.link; +package link.pagan.traqtor.model.project.universe.link; import link.pagan.traqtor.util.Name; -import link.pagan.traqtor.project.universe.element.Element; +import link.pagan.traqtor.model.project.universe.element.Element; public class OneToManyLink extends Link { 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/model/project/universe/link/OneToOneLink.java similarity index 87% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/OneToOneLink.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/link/OneToOneLink.java index b25ea83..19fe887 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/link/OneToOneLink.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/link/OneToOneLink.java @@ -1,7 +1,7 @@ -package link.pagan.traqtor.project.universe.link; +package link.pagan.traqtor.model.project.universe.link; import link.pagan.traqtor.util.Name; -import link.pagan.traqtor.project.universe.element.Element; +import link.pagan.traqtor.model.project.universe.element.Element; public class OneToOneLink extends Link { 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/model/project/universe/schema/Constraint.java similarity index 68% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/Constraint.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/Constraint.java index 0ba35ae..2e83274 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/Constraint.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/Constraint.java @@ -1,9 +1,14 @@ -package link.pagan.traqtor.project.universe.schema; +package link.pagan.traqtor.model.project.universe.schema; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} * @param type to which this constraint is applicable */ + +// @JsonDeserialize(using = LinkDeserializer.class) +@JsonSerialize(using = ConstraintInfoSerializer.class) public abstract class Constraint extends ConstraintInfo { protected Name name; diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/ConstraintInfo.java b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/ConstraintInfo.java new file mode 100644 index 0000000..efc5975 --- /dev/null +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/ConstraintInfo.java @@ -0,0 +1,12 @@ +package link.pagan.traqtor.model.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/model/project/universe/schema/ConstraintInfoSerializer.java similarity index 71% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/ConstraintInfoSerializer.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/ConstraintInfoSerializer.java index b348548..0cb8873 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/ConstraintInfoSerializer.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/ConstraintInfoSerializer.java @@ -1,12 +1,12 @@ -package link.pagan.traqtor.project.universe.schema; +package link.pagan.traqtor.model.project.universe.schema; +import java.io.IOException; 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 { +class ConstraintInfoSerializer extends StdSerializer { private static final long serialVersionUID = 1L; @@ -19,7 +19,9 @@ public class ConstraintInfoSerializer extends StdSerializer { } @Override - public void serialize (ConstraintInfo value, JsonGenerator gen, SerializerProvider provider) throws IOException { + public void serialize (ConstraintInfo value, JsonGenerator gen, SerializerProvider provider) + throws IOException + { gen.writeStartObject(); gen.writeObjectField("name", value.name()); gen.writeObjectField("value", value.value()); 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/model/project/universe/schema/DataType.java similarity index 80% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/DataType.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/DataType.java index 9daec04..f81181d 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/DataType.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/DataType.java @@ -1,7 +1,7 @@ -package link.pagan.traqtor.project.universe.schema; +package link.pagan.traqtor.model.project.universe.schema; import java.util.List; -import link.pagan.traqtor.project.universe.element.Particle; +import link.pagan.traqtor.model.project.universe.element.Particle; import link.pagan.traqtor.util.Name; public abstract class DataType { 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/model/project/universe/schema/DatatypeSchema.java similarity index 83% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/DatatypeSchema.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/DatatypeSchema.java index 6fb6f85..c572f08 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/DatatypeSchema.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/DatatypeSchema.java @@ -1,4 +1,4 @@ -package link.pagan.traqtor.project.universe.schema; +package link.pagan.traqtor.model.project.universe.schema; import link.pagan.traqtor.util.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/model/project/universe/schema/impl/LiteralDataTypeSchema.java similarity index 67% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/LiteralDataTypeSchema.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/LiteralDataTypeSchema.java index b225a4b..4ebea94 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/model/project/universe/schema/impl/LiteralDataTypeSchema.java @@ -1,7 +1,7 @@ -package link.pagan.traqtor.project.universe.schema.impl; +package link.pagan.traqtor.model.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.model.project.universe.schema.DatatypeSchema; +import link.pagan.traqtor.model.project.universe.schema.impl.data.literal.StringDataType; import link.pagan.traqtor.util.Name; public class LiteralDataTypeSchema extends DatatypeSchema { 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/model/project/universe/schema/impl/LogicDatatypeSchema.java similarity index 59% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/LogicDatatypeSchema.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/LogicDatatypeSchema.java index 7b698b2..7c97991 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/model/project/universe/schema/impl/LogicDatatypeSchema.java @@ -1,8 +1,8 @@ -package link.pagan.traqtor.project.universe.schema.impl; +package link.pagan.traqtor.model.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.model.project.universe.schema.DatatypeSchema; +import link.pagan.traqtor.model.project.universe.schema.impl.data.LogicDataType; +import link.pagan.traqtor.model.project.universe.schema.impl.data.logic.BooleanDataType; import link.pagan.traqtor.util.Name; public class LogicDatatypeSchema extends DatatypeSchema { 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/model/project/universe/schema/impl/NumericDatatypeSchema.java similarity index 51% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/NumericDatatypeSchema.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/NumericDatatypeSchema.java index fba9295..2b9c035 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/model/project/universe/schema/impl/NumericDatatypeSchema.java @@ -1,12 +1,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.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; +package link.pagan.traqtor.model.project.universe.schema.impl; + +import link.pagan.traqtor.model.project.universe.schema.DatatypeSchema; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.integer.ByteDataType; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.integer.IntDataType; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.integer.LongDataType; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.integer.ShortDataType; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.real.DoubleDataType; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.real.FloatDataType; import link.pagan.traqtor.util.Name; public class NumericDatatypeSchema extends DatatypeSchema { 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/model/project/universe/schema/impl/TemporalDatatypeSchema.java similarity index 54% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/TemporalDatatypeSchema.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/TemporalDatatypeSchema.java index de03734..efe2d2e 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/model/project/universe/schema/impl/TemporalDatatypeSchema.java @@ -1,10 +1,10 @@ -package link.pagan.traqtor.project.universe.schema.impl; +package link.pagan.traqtor.model.project.universe.schema.impl; -import link.pagan.traqtor.project.universe.schema.DatatypeSchema; -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.model.project.universe.schema.DatatypeSchema; +import link.pagan.traqtor.model.project.universe.schema.impl.data.TemporalDataType; +import link.pagan.traqtor.model.project.universe.schema.impl.data.temporal.DateDataType; +import link.pagan.traqtor.model.project.universe.schema.impl.data.temporal.TimeDataType; +import link.pagan.traqtor.model.project.universe.schema.impl.data.temporal.TimestampDataType; import link.pagan.traqtor.util.Name; public class TemporalDatatypeSchema extends DatatypeSchema { 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/model/project/universe/schema/impl/data/LiteralDataType.java similarity index 59% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/LiteralDataType.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/data/LiteralDataType.java index 31b21fe..8e161ee 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/model/project/universe/schema/impl/data/LiteralDataType.java @@ -1,9 +1,9 @@ -package link.pagan.traqtor.project.universe.schema.impl.data; +package link.pagan.traqtor.model.project.universe.schema.impl.data; 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.model.project.universe.element.Particle; +import link.pagan.traqtor.model.project.universe.schema.Constraint; +import link.pagan.traqtor.model.project.universe.schema.DataType; import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ 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/model/project/universe/schema/impl/data/LogicDataType.java similarity index 59% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/LogicDataType.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/data/LogicDataType.java index c8f8f8d..31b42d0 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/model/project/universe/schema/impl/data/LogicDataType.java @@ -1,9 +1,9 @@ -package link.pagan.traqtor.project.universe.schema.impl.data; +package link.pagan.traqtor.model.project.universe.schema.impl.data; 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.model.project.universe.element.Particle; +import link.pagan.traqtor.model.project.universe.schema.Constraint; +import link.pagan.traqtor.model.project.universe.schema.DataType; import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ 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/model/project/universe/schema/impl/data/NumericDataType.java similarity index 59% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/NumericDataType.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/data/NumericDataType.java index 7c6430e..ebd57d5 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/model/project/universe/schema/impl/data/NumericDataType.java @@ -1,9 +1,9 @@ -package link.pagan.traqtor.project.universe.schema.impl.data; +package link.pagan.traqtor.model.project.universe.schema.impl.data; 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.model.project.universe.element.Particle; +import link.pagan.traqtor.model.project.universe.schema.Constraint; +import link.pagan.traqtor.model.project.universe.schema.DataType; import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ 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/model/project/universe/schema/impl/data/TemporalDataType.java similarity index 60% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/TemporalDataType.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/data/TemporalDataType.java index c1d83ab..6a1cbb7 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/model/project/universe/schema/impl/data/TemporalDataType.java @@ -1,9 +1,9 @@ -package link.pagan.traqtor.project.universe.schema.impl.data; +package link.pagan.traqtor.model.project.universe.schema.impl.data; 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.model.project.universe.element.Particle; +import link.pagan.traqtor.model.project.universe.schema.Constraint; +import link.pagan.traqtor.model.project.universe.schema.DataType; import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ 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/model/project/universe/schema/impl/data/literal/StringDataType.java similarity index 59% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/literal/StringDataType.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/data/literal/StringDataType.java index 65bae06..abf2ee5 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/model/project/universe/schema/impl/data/literal/StringDataType.java @@ -1,12 +1,12 @@ -package link.pagan.traqtor.project.universe.schema.impl.data.literal; +package link.pagan.traqtor.model.project.universe.schema.impl.data.literal; import java.util.ArrayList; -import link.pagan.traqtor.project.universe.element.Particle; -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.model.project.universe.element.Particle; +import link.pagan.traqtor.model.project.universe.schema.impl.data.LiteralDataType; +import link.pagan.traqtor.model.project.universe.schema.impl.data.literal.constraints.LiteralMaxConstraint; +import link.pagan.traqtor.model.project.universe.schema.impl.data.literal.constraints.LiteralMinConstraint; +import link.pagan.traqtor.model.project.universe.schema.impl.data.literal.constraints.LiteralRegExpConstraint; import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ 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/model/project/universe/schema/impl/data/literal/constraints/LiteralMaxConstraint.java similarity index 57% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/literal/constraints/LiteralMaxConstraint.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/data/literal/constraints/LiteralMaxConstraint.java index 7c8549c..d7c8021 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/model/project/universe/schema/impl/data/literal/constraints/LiteralMaxConstraint.java @@ -1,7 +1,7 @@ -package link.pagan.traqtor.project.universe.schema.impl.data.literal.constraints; +package link.pagan.traqtor.model.project.universe.schema.impl.data.literal.constraints; -import link.pagan.traqtor.project.universe.schema.Constraint; -import link.pagan.traqtor.project.universe.schema.impl.data.LiteralDataType; +import link.pagan.traqtor.model.project.universe.schema.Constraint; +import link.pagan.traqtor.model.project.universe.schema.impl.data.LiteralDataType; import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ 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/model/project/universe/schema/impl/data/literal/constraints/LiteralMinConstraint.java similarity index 57% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/literal/constraints/LiteralMinConstraint.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/data/literal/constraints/LiteralMinConstraint.java index 5fe1a04..77f0932 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/model/project/universe/schema/impl/data/literal/constraints/LiteralMinConstraint.java @@ -1,7 +1,7 @@ -package link.pagan.traqtor.project.universe.schema.impl.data.literal.constraints; +package link.pagan.traqtor.model.project.universe.schema.impl.data.literal.constraints; -import link.pagan.traqtor.project.universe.schema.Constraint; -import link.pagan.traqtor.project.universe.schema.impl.data.LiteralDataType; +import link.pagan.traqtor.model.project.universe.schema.Constraint; +import link.pagan.traqtor.model.project.universe.schema.impl.data.LiteralDataType; import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ 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/model/project/universe/schema/impl/data/literal/constraints/LiteralRegExpConstraint.java similarity index 59% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/literal/constraints/LiteralRegExpConstraint.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/data/literal/constraints/LiteralRegExpConstraint.java index bdbf7a9..e98dd37 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/model/project/universe/schema/impl/data/literal/constraints/LiteralRegExpConstraint.java @@ -1,7 +1,7 @@ -package link.pagan.traqtor.project.universe.schema.impl.data.literal.constraints; +package link.pagan.traqtor.model.project.universe.schema.impl.data.literal.constraints; -import link.pagan.traqtor.project.universe.schema.Constraint; -import link.pagan.traqtor.project.universe.schema.impl.data.LiteralDataType; +import link.pagan.traqtor.model.project.universe.schema.Constraint; +import link.pagan.traqtor.model.project.universe.schema.impl.data.LiteralDataType; import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ 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/model/project/universe/schema/impl/data/logic/BooleanDataType.java similarity index 70% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/logic/BooleanDataType.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/data/logic/BooleanDataType.java index 2aef443..0c0f47e 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/model/project/universe/schema/impl/data/logic/BooleanDataType.java @@ -1,9 +1,9 @@ -package link.pagan.traqtor.project.universe.schema.impl.data.logic; +package link.pagan.traqtor.model.project.universe.schema.impl.data.logic; 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.model.project.universe.element.Particle; +import link.pagan.traqtor.model.project.universe.schema.impl.data.LogicDataType; import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/data/numeric/IntegerDataType.java b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/data/numeric/IntegerDataType.java new file mode 100644 index 0000000..5219ce6 --- /dev/null +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/data/numeric/IntegerDataType.java @@ -0,0 +1,32 @@ +package link.pagan.traqtor.model.project.universe.schema.impl.data.numeric; + +import java.util.List; +import link.pagan.traqtor.model.project.universe.element.Particle; +import link.pagan.traqtor.model.project.universe.schema.Constraint; +import link.pagan.traqtor.model.project.universe.schema.DataType; +import link.pagan.traqtor.model.project.universe.schema.impl.data.NumericDataType; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.integer.constraints.IntegerMaxConstraint; +import link.pagan.traqtor.model.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 abstract class IntegerDataType extends NumericDataType { + + public IntegerDataType(Name name, List> constraints) { + super(name, constraints); + } + + @Override + public abstract Particle particle(); + + public IntegerMinConstraint min(long min) { + return new IntegerMinConstraint(min); + } + + 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/model/project/universe/schema/impl/data/numeric/RationalDataType.java similarity index 50% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/RationalDataType.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/data/numeric/RationalDataType.java index 2c9f535..26e2ba7 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/model/project/universe/schema/impl/data/numeric/RationalDataType.java @@ -1,12 +1,12 @@ -package link.pagan.traqtor.project.universe.schema.impl.data.numeric; +package link.pagan.traqtor.model.project.universe.schema.impl.data.numeric; 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.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.model.project.universe.element.Particle; +import link.pagan.traqtor.model.project.universe.schema.Constraint; +import link.pagan.traqtor.model.project.universe.schema.DataType; +import link.pagan.traqtor.model.project.universe.schema.impl.data.NumericDataType; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.real.constraints.RationalMaxConstraint; +import link.pagan.traqtor.model.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 >} */ 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/model/project/universe/schema/impl/data/numeric/integer/ByteDataType.java similarity index 61% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/ByteDataType.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/data/numeric/integer/ByteDataType.java index 0674a2b..e30b531 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/model/project/universe/schema/impl/data/numeric/integer/ByteDataType.java @@ -1,10 +1,10 @@ -package link.pagan.traqtor.project.universe.schema.impl.data.numeric.integer; +package link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.integer; import java.util.ArrayList; -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.model.project.universe.element.Particle; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.IntegerDataType; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.integer.constraints.IntegerMaxConstraint; +import link.pagan.traqtor.model.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 >} */ 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/model/project/universe/schema/impl/data/numeric/integer/IntDataType.java similarity index 60% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/IntDataType.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/data/numeric/integer/IntDataType.java index b67d84b..fe3dce1 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/model/project/universe/schema/impl/data/numeric/integer/IntDataType.java @@ -1,10 +1,10 @@ -package link.pagan.traqtor.project.universe.schema.impl.data.numeric.integer; +package link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.integer; import java.util.ArrayList; -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.model.project.universe.element.Particle; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.IntegerDataType; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.integer.constraints.IntegerMaxConstraint; +import link.pagan.traqtor.model.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 >} */ 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/model/project/universe/schema/impl/data/numeric/integer/LongDataType.java similarity index 59% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/LongDataType.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/data/numeric/integer/LongDataType.java index e871a70..02fd1f5 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/model/project/universe/schema/impl/data/numeric/integer/LongDataType.java @@ -1,10 +1,10 @@ -package link.pagan.traqtor.project.universe.schema.impl.data.numeric.integer; +package link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.integer; import java.util.ArrayList; -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.model.project.universe.element.Particle; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.IntegerDataType; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.integer.constraints.IntegerMaxConstraint; +import link.pagan.traqtor.model.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 >} */ 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/model/project/universe/schema/impl/data/numeric/integer/ShortDataType.java similarity index 60% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/ShortDataType.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/data/numeric/integer/ShortDataType.java index 016b50e..9a94a06 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/model/project/universe/schema/impl/data/numeric/integer/ShortDataType.java @@ -1,10 +1,10 @@ -package link.pagan.traqtor.project.universe.schema.impl.data.numeric.integer; +package link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.integer; import java.util.ArrayList; -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.model.project.universe.element.Particle; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.IntegerDataType; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.integer.constraints.IntegerMaxConstraint; +import link.pagan.traqtor.model.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 >} */ 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/model/project/universe/schema/impl/data/numeric/integer/constraints/IntegerMaxConstraint.java similarity index 56% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/constraints/IntegerMaxConstraint.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/data/numeric/integer/constraints/IntegerMaxConstraint.java index ea581ed..33eba8c 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/model/project/universe/schema/impl/data/numeric/integer/constraints/IntegerMaxConstraint.java @@ -1,7 +1,7 @@ -package link.pagan.traqtor.project.universe.schema.impl.data.numeric.integer.constraints; +package link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.integer.constraints; -import link.pagan.traqtor.project.universe.schema.Constraint; -import link.pagan.traqtor.project.universe.schema.impl.data.numeric.IntegerDataType; +import link.pagan.traqtor.model.project.universe.schema.Constraint; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.IntegerDataType; import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ 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/model/project/universe/schema/impl/data/numeric/integer/constraints/IntegerMinConstraint.java similarity index 56% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/integer/constraints/IntegerMinConstraint.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/data/numeric/integer/constraints/IntegerMinConstraint.java index d2fdf25..95136fc 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/model/project/universe/schema/impl/data/numeric/integer/constraints/IntegerMinConstraint.java @@ -1,7 +1,7 @@ -package link.pagan.traqtor.project.universe.schema.impl.data.numeric.integer.constraints; +package link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.integer.constraints; -import link.pagan.traqtor.project.universe.schema.Constraint; -import link.pagan.traqtor.project.universe.schema.impl.data.numeric.IntegerDataType; +import link.pagan.traqtor.model.project.universe.schema.Constraint; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.IntegerDataType; import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ 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/model/project/universe/schema/impl/data/numeric/real/DoubleDataType.java similarity index 62% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/real/DoubleDataType.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/data/numeric/real/DoubleDataType.java index 475e5c0..1ffb42f 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/model/project/universe/schema/impl/data/numeric/real/DoubleDataType.java @@ -1,10 +1,10 @@ -package link.pagan.traqtor.project.universe.schema.impl.data.numeric.real; +package link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.real; import java.util.ArrayList; -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.model.project.universe.element.Particle; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.RationalDataType; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.real.constraints.RationalMaxConstraint; +import link.pagan.traqtor.model.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 >} */ 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/model/project/universe/schema/impl/data/numeric/real/FloatDataType.java similarity index 61% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/real/FloatDataType.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/data/numeric/real/FloatDataType.java index 44807b7..723dcd2 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/model/project/universe/schema/impl/data/numeric/real/FloatDataType.java @@ -1,10 +1,10 @@ -package link.pagan.traqtor.project.universe.schema.impl.data.numeric.real; +package link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.real; import java.util.ArrayList; -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.model.project.universe.element.Particle; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.RationalDataType; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.real.constraints.RationalMaxConstraint; +import link.pagan.traqtor.model.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 >} */ 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/model/project/universe/schema/impl/data/numeric/real/constraints/RationalMaxConstraint.java similarity index 56% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/real/constraints/RationalMaxConstraint.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/data/numeric/real/constraints/RationalMaxConstraint.java index 4df6e0b..41a626a 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/model/project/universe/schema/impl/data/numeric/real/constraints/RationalMaxConstraint.java @@ -1,7 +1,7 @@ -package link.pagan.traqtor.project.universe.schema.impl.data.numeric.real.constraints; +package link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.real.constraints; -import link.pagan.traqtor.project.universe.schema.Constraint; -import link.pagan.traqtor.project.universe.schema.impl.data.numeric.RationalDataType; +import link.pagan.traqtor.model.project.universe.schema.Constraint; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.RationalDataType; import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ 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/model/project/universe/schema/impl/data/numeric/real/constraints/RationalMinConstraint.java similarity index 56% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/real/constraints/RationalMinConstraint.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/data/numeric/real/constraints/RationalMinConstraint.java index e922a73..54f730e 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/model/project/universe/schema/impl/data/numeric/real/constraints/RationalMinConstraint.java @@ -1,7 +1,7 @@ -package link.pagan.traqtor.project.universe.schema.impl.data.numeric.real.constraints; +package link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.real.constraints; -import link.pagan.traqtor.project.universe.schema.Constraint; -import link.pagan.traqtor.project.universe.schema.impl.data.numeric.RationalDataType; +import link.pagan.traqtor.model.project.universe.schema.Constraint; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.RationalDataType; import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ 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/model/project/universe/schema/impl/data/temporal/DateDataType.java similarity index 69% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/temporal/DateDataType.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/data/temporal/DateDataType.java index a390018..64b68fd 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/model/project/universe/schema/impl/data/temporal/DateDataType.java @@ -1,8 +1,8 @@ -package link.pagan.traqtor.project.universe.schema.impl.data.temporal; +package link.pagan.traqtor.model.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.model.project.universe.element.Particle; +import link.pagan.traqtor.model.project.universe.schema.impl.data.TemporalDataType; import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ 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/model/project/universe/schema/impl/data/temporal/TimeDataType.java similarity index 69% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/temporal/TimeDataType.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/data/temporal/TimeDataType.java index 90cbe4a..337709a 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/model/project/universe/schema/impl/data/temporal/TimeDataType.java @@ -1,8 +1,8 @@ -package link.pagan.traqtor.project.universe.schema.impl.data.temporal; +package link.pagan.traqtor.model.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.model.project.universe.element.Particle; +import link.pagan.traqtor.model.project.universe.schema.impl.data.TemporalDataType; import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ 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/model/project/universe/schema/impl/data/temporal/TimestampDataType.java similarity index 70% rename from traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/temporal/TimestampDataType.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/model/project/universe/schema/impl/data/temporal/TimestampDataType.java index bbc6b93..7e3488c 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/model/project/universe/schema/impl/data/temporal/TimestampDataType.java @@ -1,8 +1,8 @@ -package link.pagan.traqtor.project.universe.schema.impl.data.temporal; +package link.pagan.traqtor.model.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.model.project.universe.element.Particle; +import link.pagan.traqtor.model.project.universe.schema.impl.data.TemporalDataType; import link.pagan.traqtor.util.Name; /** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ 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 deleted file mode 100644 index b0297ae..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/UniverseProjectSerializer.java +++ /dev/null @@ -1,39 +0,0 @@ -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.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("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/schema/ConstraintInfo.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/ConstraintInfo.java deleted file mode 100644 index 85ce3ee..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/ConstraintInfo.java +++ /dev/null @@ -1,17 +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.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/impl/data/numeric/IntegerDataType.java b/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/IntegerDataType.java deleted file mode 100644 index fd561ed..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/project/universe/schema/impl/data/numeric/IntegerDataType.java +++ /dev/null @@ -1,32 +0,0 @@ -package link.pagan.traqtor.project.universe.schema.impl.data.numeric; - -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.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 >} - */ -public abstract class IntegerDataType extends NumericDataType { - - public IntegerDataType(Name name, List> constraints) { - super(name, constraints); - } - - @Override - public abstract Particle particle(); - - public IntegerMinConstraint min(long min) { - return new IntegerMinConstraint(min); - } - - public IntegerMaxConstraint max(long max) { - return new IntegerMaxConstraint(max); - } - -} 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 deleted file mode 100644 index 2e961d5..0000000 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/util/FileHandle.java +++ /dev/null @@ -1,36 +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.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 6805646..c64c02c 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,5 +1,14 @@ package link.pagan.traqtor.util; +import java.util.Arrays; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; + +/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +@JsonDeserialize(using = NameDeserializer.class) +@JsonSerialize(using = NameSerializer.class) public class Name implements Comparable { public static final Name NO_NAME = Name.of("no", "name"); @@ -41,4 +50,22 @@ public class Name implements Comparable { return this.asDotted().compareTo(t.asDotted()); } + @Override + public int hashCode () { + final int prime = 31; + int result = 1; + result = prime * result + Arrays.hashCode(parts); + return result; + } + + @Override + public boolean equals (Object obj) { + if (this == obj) return true; + if (obj == null) return false; + if (getClass() != obj.getClass()) return false; + Name other = (Name) obj; + if (!Arrays.equals(parts, other.parts)) return false; + return true; + } + } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/util/NameDeserializer.java b/traqtor-aio/src/main/java/link/pagan/traqtor/util/NameDeserializer.java new file mode 100644 index 0000000..73b2966 --- /dev/null +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/util/NameDeserializer.java @@ -0,0 +1,43 @@ +package link.pagan.traqtor.util; + +import java.io.IOException; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.TreeNode; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.deser.std.StdDeserializer; + +public class NameDeserializer extends StdDeserializer { + + protected final static ObjectMapper MAPPER = new ObjectMapper(); + + private static final long serialVersionUID = 1L; + + protected NameDeserializer () { + this(null); + } + + protected NameDeserializer (Class t) { + super(t); + } + + @Override + public Name deserialize (JsonParser parser, DeserializationContext ctxt) throws IOException, + JsonProcessingException + { + JsonNode tree = MAPPER.readTree(parser); + String[] nameParts = new String[tree.size()]; + int partNumber = 0; + + for (JsonNode item : tree) { + nameParts[partNumber] = item.textValue(); + partNumber++; + } + + return new Name(nameParts); + } + +} \ No newline at end of file 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 index 814c61a..dcf52b7 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/util/NameSerializer.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/util/NameSerializer.java @@ -1,26 +1,26 @@ package link.pagan.traqtor.util; +import java.io.IOException; + 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 { +class NameSerializer extends StdSerializer { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = 1L; - public NameSerializer () { - this(null); - } + public NameSerializer () { + this(null); + } - public NameSerializer (Class t) { - super(t); - } + 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); - } + @Override + public void serialize (Name value, JsonGenerator gen, SerializerProvider provider) throws IOException { + gen.writeArray(value.parts, 0, value.parts.length); + } -} +} \ No newline at end of file diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/util/io/Directoried.java b/traqtor-aio/src/main/java/link/pagan/traqtor/util/io/Directoried.java new file mode 100644 index 0000000..9b49fe7 --- /dev/null +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/util/io/Directoried.java @@ -0,0 +1,10 @@ +package link.pagan.traqtor.util.io; + +import java.io.File; + +/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +public interface Directoried { + + public File dir (); + +} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/util/io/Filed.java b/traqtor-aio/src/main/java/link/pagan/traqtor/util/io/Filed.java new file mode 100644 index 0000000..c7e180d --- /dev/null +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/util/io/Filed.java @@ -0,0 +1,10 @@ +package link.pagan.traqtor.util.io; + +import java.io.File; + +/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +public interface Filed { + + public File file (); + +} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/deck/op/OperationMessage.java b/traqtor-aio/src/main/java/link/pagan/traqtor/util/op/OperationMessage.java similarity index 93% rename from traqtor-aio/src/main/java/link/pagan/traqtor/deck/op/OperationMessage.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/util/op/OperationMessage.java index 0126210..ce1aa3a 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/deck/op/OperationMessage.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/util/op/OperationMessage.java @@ -1,4 +1,4 @@ -package link.pagan.traqtor.deck.op; +package link.pagan.traqtor.util.op; import java.text.Format; import java.text.SimpleDateFormat; @@ -53,4 +53,10 @@ public class OperationMessage { this.message; } + public enum MessageType { + INFO, + WARN, + FAIL + } + } diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/util/op/OperationObjectResult.java b/traqtor-aio/src/main/java/link/pagan/traqtor/util/op/OperationObjectResult.java new file mode 100644 index 0000000..da305cd --- /dev/null +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/util/op/OperationObjectResult.java @@ -0,0 +1,57 @@ +package link.pagan.traqtor.util.op; + +/** @author Edward M. Kagan {@literal <}kaganem{@literal @}2pm.tech{@literal >} */ +public class OperationObjectResult extends OperationResult { + + protected T object; + + protected OperationObjectResult (OperationResult parent, T object) { + super(parent); + this.object = object; + } + + public OperationObjectResult () { + this(null, null); + } + + @Override + public OperationObjectResult startSubresult () { + OperationObjectResult subresult = new OperationObjectResult(this, this.object); + this.subresults.add(subresult); + return subresult; + } + + public T object () { + return object; + } + + public OperationObjectResult object (T object) { + this.object = object; + return this; + } + + @Override + public OperationObjectResult info (String message) { + super.info(message); + return this; + } + + @Override + public OperationObjectResult warn (String message) { + super.warn(message); + return this; + } + + @Override + public OperationObjectResult fail (Exception ex) { + super.fail(ex); + return this; + } + + @Override + public OperationObjectResult fail (String message) { + super.fail(message); + return this; + } + +} diff --git a/traqtor-aio/src/main/java/link/pagan/traqtor/deck/op/OperationResult.java b/traqtor-aio/src/main/java/link/pagan/traqtor/util/op/OperationResult.java similarity index 83% rename from traqtor-aio/src/main/java/link/pagan/traqtor/deck/op/OperationResult.java rename to traqtor-aio/src/main/java/link/pagan/traqtor/util/op/OperationResult.java index ea5d299..e7cd39b 100644 --- a/traqtor-aio/src/main/java/link/pagan/traqtor/deck/op/OperationResult.java +++ b/traqtor-aio/src/main/java/link/pagan/traqtor/util/op/OperationResult.java @@ -1,4 +1,4 @@ -package link.pagan.traqtor.deck.op; +package link.pagan.traqtor.util.op; import java.util.LinkedList; @@ -11,16 +11,16 @@ public class OperationResult { private final LinkedList messages; - private final LinkedList subresults; + protected final LinkedList subresults; - private OperationResult (OperationResult parent) { + protected OperationResult (OperationResult parent) { this.timestamp = System.currentTimeMillis(); this.messages = new LinkedList(); this.subresults = new LinkedList(); this.parent = parent; } - private OperationResult () { + public OperationResult () { this(null); } @@ -63,7 +63,9 @@ public class OperationResult { private boolean proxiedOK () { - if (this.messages.stream().anyMatch(message -> (message.type().equals(MessageType.FAIL)))) { return false; } + if (this.messages.stream().anyMatch(message -> (message.type().equals(OperationMessage.MessageType.FAIL)))) { + return false; + } return this.subresults.stream().noneMatch(subresult -> (!subresult.ok())); } @@ -79,21 +81,12 @@ public class OperationResult { return this.subresults.toArray(new OperationResult[this.subresults.size()]); } - public static OperationResult start () { - return new OperationResult(); - } - public OperationResult startSubresult () { OperationResult subresult = new OperationResult(this); this.subresults.add(subresult); return subresult; } - // public OperationResult addSubresult (OperationResult subresult) { - // this.subresults.add(subresult); - // return this; - // } - public void print () { for (OperationMessage message : this.messages()) { System.out.println(message); } diff --git a/traqtor-aio/src/test/java/link/pagan/traqtor/test/WorkspaceTest.java b/traqtor-aio/src/test/java/link/pagan/traqtor/test/WorkspaceTest.java deleted file mode 100644 index 7b86608..0000000 --- a/traqtor-aio/src/test/java/link/pagan/traqtor/test/WorkspaceTest.java +++ /dev/null @@ -1,34 +0,0 @@ -package link.pagan.traqtor.test; - -import link.pagan.traqtor.Workspace; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.Assertions; -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 WorkspaceTest { - - @BeforeEach - public void cleanTestDir () { - TestUtils.rebuildTestRoot(); - } - - @AfterEach - public void killCore () { - TestUtils.deleteTestRoot(); - } - - @Test - @DisplayName("Workspace save") - void workspaceSave () { - Workspace workspace = new Workspace().name("traqtor", "demo", "workspace"); - Assertions.assertTrue(!workspace.save().ok()); - TestUtils.deleteTestRoot(); - Assertions.assertTrue(!workspace.root(TestUtils.testRoot()).save().ok()); - TestUtils.rebuildTestRoot(); - Assertions.assertTrue(workspace.saveAs(TestUtils.testRoot()).ok()); - } - -} diff --git a/traqtor-aio/src/test/java/link/pagan/traqtor/test/model/WorkspaceTest.java b/traqtor-aio/src/test/java/link/pagan/traqtor/test/model/WorkspaceTest.java new file mode 100644 index 0000000..928459f --- /dev/null +++ b/traqtor-aio/src/test/java/link/pagan/traqtor/test/model/WorkspaceTest.java @@ -0,0 +1,48 @@ +package link.pagan.traqtor.test.model; + +import link.pagan.traqtor.model.Workspace; +import link.pagan.traqtor.test.TestUtils; +import link.pagan.traqtor.util.op.OperationObjectResult; +import link.pagan.traqtor.util.Name; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Assertions; +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 WorkspaceTest { + + @BeforeEach + public void cleanTestDir () { + TestUtils.rebuildTestRoot(); + } + + @AfterEach + public void killCore () { + TestUtils.deleteTestRoot(); + } + + @Test + @DisplayName("Workspace save") + void workspaceSave () { + Workspace workspace = new Workspace().name(Name.of("traqtor", "demo", "workspace")); + Assertions.assertTrue(!workspace.save().ok()); + TestUtils.deleteTestRoot(); + Assertions.assertTrue(!workspace.dir(TestUtils.testRoot()).save().ok()); + TestUtils.rebuildTestRoot(); + Assertions.assertTrue(workspace.saveAs(TestUtils.testRoot()).ok()); + } + + @Test + @DisplayName("Workspace save/load") + void saveLoad () { + Workspace workspace = new Workspace().name(Name.of("traqtor", "demo", "workspace")); + Assertions.assertTrue(workspace.saveAs(TestUtils.testRoot()).ok()); + OperationObjectResult loadResult = Workspace.load(workspace.dir()); + Assertions.assertTrue(loadResult.ok()); + Assertions.assertEquals(workspace.name(), loadResult.object().name()); + Assertions.assertEquals(workspace.pretty(), loadResult.object().pretty()); + } + +} diff --git a/traqtor-aio/src/test/java/link/pagan/traqtor/test/model/project/universe/UniverseProjectTest.java b/traqtor-aio/src/test/java/link/pagan/traqtor/test/model/project/universe/UniverseProjectTest.java new file mode 100644 index 0000000..9f7a6c7 --- /dev/null +++ b/traqtor-aio/src/test/java/link/pagan/traqtor/test/model/project/universe/UniverseProjectTest.java @@ -0,0 +1,181 @@ +package link.pagan.traqtor.test.model.project.universe; + +import link.pagan.traqtor.model.Workspace; +import link.pagan.traqtor.model.project.universe.Universe; +import link.pagan.traqtor.model.project.universe.UniverseProject; +import link.pagan.traqtor.model.project.universe.element.Element; +import link.pagan.traqtor.model.project.universe.element.Particle; +import link.pagan.traqtor.model.project.universe.schema.DatatypeSchema; +import link.pagan.traqtor.model.project.universe.schema.impl.LiteralDataTypeSchema; +import link.pagan.traqtor.model.project.universe.schema.impl.LogicDatatypeSchema; +import link.pagan.traqtor.model.project.universe.schema.impl.NumericDatatypeSchema; +import link.pagan.traqtor.model.project.universe.schema.impl.TemporalDatatypeSchema; +import link.pagan.traqtor.model.project.universe.schema.impl.data.literal.StringDataType; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.integer.IntDataType; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.real.DoubleDataType; +import link.pagan.traqtor.model.project.universe.schema.impl.data.numeric.real.FloatDataType; +import link.pagan.traqtor.test.TestUtils; +import link.pagan.traqtor.util.Name; +import link.pagan.traqtor.util.RegExpHelper; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Assertions; +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 UniverseProjectTest { + + @BeforeEach + public void cleanTestDir () { + TestUtils.rebuildTestRoot(); + } + + @AfterEach + public void killCore () { + TestUtils.deleteTestRoot(); + } + + @Test + @DisplayName("Universe Project save") + void projectSaveAs () { + DatatypeSchema LITERAL = LiteralDataTypeSchema.instance(); + DatatypeSchema LOGIC = LogicDatatypeSchema.instance(); + DatatypeSchema NUMERIC = NumericDatatypeSchema.instance(); + DatatypeSchema TEMPORAL = TemporalDatatypeSchema.instance(); + + StringDataType STRING = LiteralDataTypeSchema.instance().STRING; + // LogicDataType BOOLEAN = LOGIC.BOOLEAN; + // IntegerDataType BYTE = NUMERIC.BYTE; + // IntegerDataType SHORT = NUMERIC.SHORT; + IntDataType INTEGER = NumericDatatypeSchema.instance().INTEGER; + // IntegerDataType LONG = NUMERIC.LONG; + FloatDataType FLOAT = NumericDatatypeSchema.instance().FLOAT; + DoubleDataType DOUBLE = NumericDatatypeSchema.instance().DOUBLE; + // TemporalDataType DATE = TEMPORAL.DATE; + // TemporalDataType TIME = TEMPORAL.TIME; + // TemporalDataType TIMESTAMP = TEMPORAL.TIMESTAMP; + + Workspace workspace = new Workspace().name(Name.of("traqtor", "demo", "workspace")); + + UniverseProject base = workspace.universe().name("base").schemas(LITERAL, LOGIC, NUMERIC, TEMPORAL); + + 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(true) + .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 = base.atom() + .name("account") + .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(true) + .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 = base.atom() + .name("account", "details") + .particles(lastName, firstName, age); + + Particle length = DOUBLE.particle() + .name("length") + .description("penis length") + .constraints(DOUBLE.min(0), DOUBLE.max(40)); + + Element male = base.isotope(account) + .name("male") + .particles(length); + + Particle depth = FLOAT.particle() + .name("depth") + .description("vagina depth") + .constraints(DOUBLE.min(0), DOUBLE.max(40)); + + base.isotope(account) + .name("female") + .particles(depth); + + Particle positionName = STRING.particle() + .name("title") + .description("position name") + .constraints(STRING.max(255), STRING.min(3)); + + Element position = base.atom() + .name("position") + .particles(positionName); + + Particle idNumber = STRING.particle() + .name("number") + .description("military id number") + .constraints(STRING.max(11), STRING.min(11)); + + Element militaryId = base.atom() + .name("military", "id") + .particles(idNumber); + + Element profile = base.atom() + .name(("profile")); + + base.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")); + + UniverseProject data = workspace.universe() + .name("data") + .schemas(LITERAL); + + Particle organizationName = STRING.particle() + .name("name") + .description("full name of an organization") + .constraints(STRING.max(255), STRING.min(3)); + Element organization = data.atom(); + organization.name("organization"); + organization.particles(organizationName); + + Assertions.assertTrue(workspace.saveAs(TestUtils.testRoot()).ok()); + } + + @Test + @DisplayName("Universe Project load") + void projectLoad () { + Workspace.load(TestUtils.testRoot()); + } + +} diff --git a/traqtor-aio/src/test/java/link/pagan/traqtor/test/project/universe/UniverseProjectTest.java b/traqtor-aio/src/test/java/link/pagan/traqtor/test/project/universe/UniverseProjectTest.java deleted file mode 100644 index 196f85d..0000000 --- a/traqtor-aio/src/test/java/link/pagan/traqtor/test/project/universe/UniverseProjectTest.java +++ /dev/null @@ -1,175 +0,0 @@ -package link.pagan.traqtor.test.project.universe; - -import com.fasterxml.jackson.core.JsonProcessingException; -import link.pagan.traqtor.Workspace; -import link.pagan.traqtor.project.universe.Universe; -import link.pagan.traqtor.project.universe.UniverseProject; -import link.pagan.traqtor.project.universe.element.Element; -import link.pagan.traqtor.project.universe.element.Particle; -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.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.test.TestUtils; -import link.pagan.traqtor.util.RegExpHelper; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.Assertions; -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 UniverseProjectTest { - - @BeforeEach - public void cleanTestDir () { - TestUtils.rebuildTestRoot(); - } - - @AfterEach - public void killCore () { - TestUtils.deleteTestRoot(); - } - - @Test - @DisplayName("Universe Project save") - void projectSaveAs () throws JsonProcessingException { - DatatypeSchema LITERAL = LiteralDataTypeSchema.instance(); - DatatypeSchema LOGIC = LogicDatatypeSchema.instance(); - DatatypeSchema NUMERIC = NumericDatatypeSchema.instance(); - DatatypeSchema TEMPORAL = TemporalDatatypeSchema.instance(); - - StringDataType STRING = LiteralDataTypeSchema.instance().STRING; - // LogicDataType BOOLEAN = LOGIC.BOOLEAN; - // IntegerDataType BYTE = NUMERIC.BYTE; - // IntegerDataType SHORT = NUMERIC.SHORT; - IntDataType INTEGER = NumericDatatypeSchema.instance().INTEGER; - // IntegerDataType LONG = NUMERIC.LONG; - FloatDataType FLOAT = NumericDatatypeSchema.instance().FLOAT; - DoubleDataType DOUBLE = NumericDatatypeSchema.instance().DOUBLE; - // TemporalDataType DATE = TEMPORAL.DATE; - // TemporalDataType TIME = TEMPORAL.TIME; - // TemporalDataType TIMESTAMP = TEMPORAL.TIMESTAMP; - - Workspace workspace = new Workspace().name("traqtor", "demo", "workspace"); - - UniverseProject base = workspace.universe().name("base").schemas(LITERAL, LOGIC, NUMERIC, TEMPORAL); - - 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(true) - .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 = base.atom() - .name("account") - .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(true) - .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 = base.atom() - .name("account", "details") - .particles(lastName, firstName, age); - - Particle length = DOUBLE.particle() - .name("length") - .description("penis length") - .constraints(DOUBLE.min(0), DOUBLE.max(40)); - - Element male = base.isotope(account) - .name("male") - .particles(length); - - Particle depth = FLOAT.particle() - .name("depth") - .description("vagina depth") - .constraints(DOUBLE.min(0), DOUBLE.max(40)); - - base.isotope(account) - .name("female") - .particles(depth); - - Particle positionName = STRING.particle() - .name("title") - .description("position name") - .constraints(STRING.max(255), STRING.min(3)); - - Element position = base.atom() - .name("position") - .particles(positionName); - - Particle idNumber = STRING.particle() - .name("number") - .description("military id number") - .constraints(STRING.max(11), STRING.min(11)); - - Element militaryId = base.atom() - .name("military", "id") - .particles(idNumber); - - Element profile = base.atom() - .name(("profile")); - - base.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")); - - UniverseProject data = workspace.universe() - .name("data") - .schemas(LITERAL); - - Particle organizationName = STRING.particle() - .name("name") - .description("full name of an organization") - .constraints(STRING.max(255), STRING.min(3)); - Element organization = data.atom(); - organization.name("organization"); - organization.particles(organizationName); - - Assertions.assertTrue(workspace.saveAs(TestUtils.testRoot()).ok()); - } - -} diff --git a/traqtor-quackery/.mvn/wrapper/MavenWrapperDownloader.java b/traqtor-quackery/.mvn/wrapper/MavenWrapperDownloader.java deleted file mode 100644 index e76d1f3..0000000 --- a/traqtor-quackery/.mvn/wrapper/MavenWrapperDownloader.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright 2007-present the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import java.net.*; -import java.io.*; -import java.nio.channels.*; -import java.util.Properties; - -public class MavenWrapperDownloader { - - private static final String WRAPPER_VERSION = "0.5.6"; - /** - * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. - */ - private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" - + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; - - /** - * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to - * use instead of the default one. - */ - private static final String MAVEN_WRAPPER_PROPERTIES_PATH = - ".mvn/wrapper/maven-wrapper.properties"; - - /** - * Path where the maven-wrapper.jar will be saved to. - */ - private static final String MAVEN_WRAPPER_JAR_PATH = - ".mvn/wrapper/maven-wrapper.jar"; - - /** - * Name of the property which should be used to override the default download url for the wrapper. - */ - private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; - - public static void main(String args[]) { - System.out.println("- Downloader started"); - File baseDirectory = new File(args[0]); - System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); - - // If the maven-wrapper.properties exists, read it and check if it contains a custom - // wrapperUrl parameter. - File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); - String url = DEFAULT_DOWNLOAD_URL; - if(mavenWrapperPropertyFile.exists()) { - FileInputStream mavenWrapperPropertyFileInputStream = null; - try { - mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); - Properties mavenWrapperProperties = new Properties(); - mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); - url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); - } catch (IOException e) { - System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); - } finally { - try { - if(mavenWrapperPropertyFileInputStream != null) { - mavenWrapperPropertyFileInputStream.close(); - } - } catch (IOException e) { - // Ignore ... - } - } - } - System.out.println("- Downloading from: " + url); - - File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); - if(!outputFile.getParentFile().exists()) { - if(!outputFile.getParentFile().mkdirs()) { - System.out.println( - "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); - } - } - System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); - try { - downloadFileFromURL(url, outputFile); - System.out.println("Done"); - System.exit(0); - } catch (Throwable e) { - System.out.println("- Error downloading"); - e.printStackTrace(); - System.exit(1); - } - } - - private static void downloadFileFromURL(String urlString, File destination) throws Exception { - if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { - String username = System.getenv("MVNW_USERNAME"); - char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); - Authenticator.setDefault(new Authenticator() { - @Override - protected PasswordAuthentication getPasswordAuthentication() { - return new PasswordAuthentication(username, password); - } - }); - } - URL website = new URL(urlString); - ReadableByteChannel rbc; - rbc = Channels.newChannel(website.openStream()); - FileOutputStream fos = new FileOutputStream(destination); - fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); - fos.close(); - rbc.close(); - } - -} diff --git a/traqtor-quackery/.mvn/wrapper/maven-wrapper.jar b/traqtor-quackery/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 2cc7d4a..0000000 Binary files a/traqtor-quackery/.mvn/wrapper/maven-wrapper.jar and /dev/null differ diff --git a/traqtor-quackery/.mvn/wrapper/maven-wrapper.properties b/traqtor-quackery/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index 642d572..0000000 --- a/traqtor-quackery/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1,2 +0,0 @@ -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip -wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar diff --git a/traqtor-quackery/mvnw b/traqtor-quackery/mvnw deleted file mode 100755 index a16b543..0000000 --- a/traqtor-quackery/mvnw +++ /dev/null @@ -1,310 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Mingw, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -########################################################################################## -# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -# This allows using the maven wrapper in projects that prohibit checking in binary data. -########################################################################################## -if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found .mvn/wrapper/maven-wrapper.jar" - fi -else - if [ "$MVNW_VERBOSE" = true ]; then - echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." - fi - if [ -n "$MVNW_REPOURL" ]; then - jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - else - jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - fi - while IFS="=" read key value; do - case "$key" in (wrapperUrl) jarUrl="$value"; break ;; - esac - done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" - if [ "$MVNW_VERBOSE" = true ]; then - echo "Downloading from: $jarUrl" - fi - wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" - if $cygwin; then - wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` - fi - - if command -v wget > /dev/null; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found wget ... using wget" - fi - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - wget "$jarUrl" -O "$wrapperJarPath" - else - wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" - fi - elif command -v curl > /dev/null; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found curl ... using curl" - fi - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - curl -o "$wrapperJarPath" "$jarUrl" -f - else - curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f - fi - - else - if [ "$MVNW_VERBOSE" = true ]; then - echo "Falling back to using Java to download" - fi - javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" - # For Cygwin, switch paths to Windows format before running javac - if $cygwin; then - javaClass=`cygpath --path --windows "$javaClass"` - fi - if [ -e "$javaClass" ]; then - if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then - if [ "$MVNW_VERBOSE" = true ]; then - echo " - Compiling MavenWrapperDownloader.java ..." - fi - # Compiling the Java class - ("$JAVA_HOME/bin/javac" "$javaClass") - fi - if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then - # Running the downloader - if [ "$MVNW_VERBOSE" = true ]; then - echo " - Running MavenWrapperDownloader.java ..." - fi - ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") - fi - fi - fi -fi -########################################################################################## -# End of extension -########################################################################################## - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -if [ "$MVNW_VERBOSE" = true ]; then - echo $MAVEN_PROJECTBASEDIR -fi -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -# Provide a "standardized" way to retrieve the CLI args that will -# work with both Windows and non-Windows executions. -MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" -export MAVEN_CMD_LINE_ARGS - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/traqtor-quackery/mvnw.cmd b/traqtor-quackery/mvnw.cmd deleted file mode 100755 index c8d4337..0000000 --- a/traqtor-quackery/mvnw.cmd +++ /dev/null @@ -1,182 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM https://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM set title of command window -title %0 -@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - -FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( - IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B -) - -@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -@REM This allows using the maven wrapper in projects that prohibit checking in binary data. -if exist %WRAPPER_JAR% ( - if "%MVNW_VERBOSE%" == "true" ( - echo Found %WRAPPER_JAR% - ) -) else ( - if not "%MVNW_REPOURL%" == "" ( - SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - ) - if "%MVNW_VERBOSE%" == "true" ( - echo Couldn't find %WRAPPER_JAR%, downloading it ... - echo Downloading from: %DOWNLOAD_URL% - ) - - powershell -Command "&{"^ - "$webclient = new-object System.Net.WebClient;"^ - "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ - "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ - "}"^ - "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ - "}" - if "%MVNW_VERBOSE%" == "true" ( - echo Finished downloading %WRAPPER_JAR% - ) -) -@REM End of extension - -@REM Provide a "standardized" way to retrieve the CLI args that will -@REM work with both Windows and non-Windows executions. -set MAVEN_CMD_LINE_ARGS=%* - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/traqtor-quackery/src/main/java/two/pm/traqtor/AccessFilter.java b/traqtor-quackery/src/main/java/two/pm/traqtor/AccessFilter.java index 30fa1ec..3a6b4aa 100644 --- a/traqtor-quackery/src/main/java/two/pm/traqtor/AccessFilter.java +++ b/traqtor-quackery/src/main/java/two/pm/traqtor/AccessFilter.java @@ -3,8 +3,6 @@ package two.pm.traqtor; import io.vertx.core.http.HttpServerRequest; import org.apache.cayenne.BaseContext; -import org.apache.cayenne.configuration.server.ServerRuntime; -import org.jboss.logging.Logger; import javax.inject.Inject; import javax.ws.rs.container.ContainerRequestContext; @@ -30,17 +28,17 @@ public class AccessFilter implements ContainerRequestFilter { CayenneRuntimeFactory cayenneRuntimeFactory; @Override - public void filter(ContainerRequestContext context) { + public void filter (ContainerRequestContext context) { BaseContext.bindThreadObjectContext(cayenneRuntimeFactory.cayenneRuntime().newContext()); - final String method = context.getMethod(); + // final String method = context.getMethod(); final String path = info.getPath(); + // final String address = request.remoteAddress().toString(); // System.out.println(method + " : " + path); - if (path.equals("/hello/secret")) { - context.abortWith(Response.status(Status.UNAUTHORIZED).build()); - } + if (path.equals("/hello/secret")) { context.abortWith(Response.status(Status.UNAUTHORIZED).build()); } // LOG.infof("Request %s %s from IP %s", method, path, address); } + } \ No newline at end of file diff --git a/traqtor-quackery/src/main/java/two/pm/traqtor/CayenneRuntimeFactory.java b/traqtor-quackery/src/main/java/two/pm/traqtor/CayenneRuntimeFactory.java index 9e3fd42..170b188 100644 --- a/traqtor-quackery/src/main/java/two/pm/traqtor/CayenneRuntimeFactory.java +++ b/traqtor-quackery/src/main/java/two/pm/traqtor/CayenneRuntimeFactory.java @@ -1,12 +1,7 @@ package two.pm.traqtor; -import java.io.File; -import java.net.MalformedURLException; -import java.net.URL; - import javax.enterprise.context.ApplicationScoped; import javax.inject.Singleton; - import org.apache.cayenne.ObjectContext; import org.apache.cayenne.configuration.Constants; import org.apache.cayenne.configuration.server.ServerRuntime; @@ -21,37 +16,39 @@ public class CayenneRuntimeFactory { private static ServerRuntime runtime; @Singleton - public ServerRuntime cayenneRuntime() { + public ServerRuntime cayenneRuntime () { + if (runtime == null) { // ClassLoader classLoader = ; // File file = new File(classLoader.getFile()); // System.out.println(file.getAbsolutePath()); - runtime = ServerRuntime.builder().addConfig("db/cayenne-traqtor.xml") - // .addModule(binder -> - // binder.bind(JdbcEventLogger.class).to(NoopJdbcEventLogger.class)) - .addModule(binder -> { - binder.bind(ResourceLocator.class) - .to(ClassLoaderResourceLocatorFix.class); - binder.bind(Key.get(ResourceLocator.class, - Constants.SERVER_RESOURCE_LOCATOR)) - .to(ClassLoaderResourceLocatorFix.class); - }) - .addModule(CryptoModule.extend() - .keyStore(this.getClass().getClassLoader() - .getResource("db/traqtor.keystore"), - "secret".toCharArray(), "key0") - .compress() - // .useHMAC() - .module()) - .build(); + runtime = ServerRuntime.builder() + .addConfig("db/cayenne-traqtor.xml") + // .addModule(binder -> + // binder.bind(JdbcEventLogger.class).to(NoopJdbcEventLogger.class)) + .addModule(binder -> + { + binder.bind(ResourceLocator.class) + .to(ClassLoaderResourceLocatorFix.class); + binder.bind(Key.get(ResourceLocator.class, Constants.SERVER_RESOURCE_LOCATOR)) + .to(ClassLoaderResourceLocatorFix.class); + }) + .addModule(CryptoModule.extend() + .keyStore(this.getClass() + .getClassLoader() + .getResource("db/traqtor.keystore"), "secret".toCharArray(), "key0") + .compress() + // .useHMAC() + .module()) + .build(); ObjectContext context = runtime.newContext(); - SQLExec.query("CREATE TABLE IF NOT EXISTS system_user (id bigint NOT NULL, CRYPTO_password varchar(2048) NOT NULL, CRYPTO_email varchar(2048) NOT NULL, PRIMARY KEY (id));" - + "CREATE SEQUENCE IF NOT EXISTS pk_system_user INCREMENT 20 MINVALUE -9223372036854775807;") - .execute(context); + SQLExec.query("CREATE TABLE IF NOT EXISTS system_user (id bigint NOT NULL, CRYPTO_password varchar(2048) NOT NULL, CRYPTO_email varchar(2048) NOT NULL, PRIMARY KEY (id));" + + "CREATE SEQUENCE IF NOT EXISTS pk_system_user INCREMENT 20 MINVALUE -9223372036854775807;") + .execute(context); context.commitChanges(); } return runtime; diff --git a/traqtor-quackery/src/main/java/two/pm/traqtor/ClassLoaderResourceLocatorFix.java b/traqtor-quackery/src/main/java/two/pm/traqtor/ClassLoaderResourceLocatorFix.java index c6a1ae2..f91f185 100644 --- a/traqtor-quackery/src/main/java/two/pm/traqtor/ClassLoaderResourceLocatorFix.java +++ b/traqtor-quackery/src/main/java/two/pm/traqtor/ClassLoaderResourceLocatorFix.java @@ -21,45 +21,50 @@ public class ClassLoaderResourceLocatorFix implements ResourceLocator { private ClassLoaderManager classLoaderManager; - public ClassLoaderResourceLocatorFix(@Inject ClassLoaderManager classLoaderManager) { + public ClassLoaderResourceLocatorFix (@Inject ClassLoaderManager classLoaderManager) { this.classLoaderManager = classLoaderManager; } @Override - public Collection findResources(String name) { + public Collection findResources (String name) { final Collection resources = new ArrayList<>(3); final Enumeration urls; + try { urls = classLoaderManager.getClassLoader(name).getResources(name); } catch (IOException e) { throw new ConfigurationException("Error getting resources for "); } - while (urls.hasMoreElements()) { - resources.add(new URLResourceFix(urls.nextElement())); - } + while (urls.hasMoreElements()) { resources.add(new URLResourceFix(urls.nextElement())); } return resources; } private class URLResourceFix extends URLResource { - URLResourceFix(URL url) { + private static final long serialVersionUID = 8520153058821165086L; + + URLResourceFix (URL url) { super(url); } @Override - public Resource getRelativeResource(String relativePath) { + public Resource getRelativeResource (String relativePath) { + try { String url = getURL().toString(); url = url.substring(0, url.lastIndexOf("/") + 1) + relativePath; return new URLResource(new URI(url).toURL()); - } catch (MalformedURLException | URISyntaxException e) { - throw new CayenneRuntimeException("Error creating relative resource '%s' : '%s'", e, getURL(), - relativePath); + } catch (MalformedURLException + | URISyntaxException e) + { + throw new CayenneRuntimeException("Error creating relative resource '%s' : '%s'", e, getURL(), relativePath); } } + } + } \ No newline at end of file diff --git a/traqtor-quackery/src/main/java/two/pm/traqtor/db/SystemUser.java b/traqtor-quackery/src/main/java/two/pm/traqtor/db/SystemUser.java index 342ca12..8a52026 100644 --- a/traqtor-quackery/src/main/java/two/pm/traqtor/db/SystemUser.java +++ b/traqtor-quackery/src/main/java/two/pm/traqtor/db/SystemUser.java @@ -1,7 +1,5 @@ package two.pm.traqtor.db; -import java.nio.charset.StandardCharsets; - import org.apache.cayenne.Cayenne; import two.pm.traqtor.db.auto._SystemUser; @@ -10,21 +8,24 @@ public class SystemUser extends _SystemUser { private static final long serialVersionUID = 1L; - public DTO dto() { + public DTO dto () { return new DTO(Cayenne.longPKForObject(this), email, password); } public final class DTO { public String email; + public String password; + public String id; - public DTO(long id, String email, String password) { + public DTO (long id, String email, String password) { this.id = Long.toHexString(id); this.email = email; this.password = password; } } + } diff --git a/traqtor-quackery/src/main/java/two/pm/traqtor/db/auto/_Datamap.java b/traqtor-quackery/src/main/java/two/pm/traqtor/db/auto/_Datamap.java index a64c369..3702aed 100644 --- a/traqtor-quackery/src/main/java/two/pm/traqtor/db/auto/_Datamap.java +++ b/traqtor-quackery/src/main/java/two/pm/traqtor/db/auto/_Datamap.java @@ -1,12 +1,7 @@ package two.pm.traqtor.db.auto; -import org.apache.cayenne.ObjectContext; - -/** - * This class was generated by Cayenne. +/** This class was generated by Cayenne. * It is probably a good idea to avoid changing this class manually, * since it may be overwritten next time code is regenerated. - * If you need to make any customizations, please use subclass. - */ -public class _Datamap { -} \ No newline at end of file + * If you need to make any customizations, please use subclass. */ +public class _Datamap {} \ No newline at end of file diff --git a/traqtor-quackery/src/main/java/two/pm/traqtor/db/auto/_Main.java b/traqtor-quackery/src/main/java/two/pm/traqtor/db/auto/_Main.java index 46f361c..ece81d8 100644 --- a/traqtor-quackery/src/main/java/two/pm/traqtor/db/auto/_Main.java +++ b/traqtor-quackery/src/main/java/two/pm/traqtor/db/auto/_Main.java @@ -1,12 +1,7 @@ package two.pm.traqtor.db.auto; -import org.apache.cayenne.ObjectContext; - -/** - * This class was generated by Cayenne. +/** This class was generated by Cayenne. * It is probably a good idea to avoid changing this class manually, * since it may be overwritten next time code is regenerated. - * If you need to make any customizations, please use subclass. - */ -public class _Main { -} \ No newline at end of file + * If you need to make any customizations, please use subclass. */ +public class _Main {} \ No newline at end of file diff --git a/traqtor-quackery/src/test/java/org/my/group/MyResourceTest.java b/traqtor-quackery/src/test/java/org/my/group/MyResourceTest.java deleted file mode 100644 index 02e494c..0000000 --- a/traqtor-quackery/src/test/java/org/my/group/MyResourceTest.java +++ /dev/null @@ -1,21 +0,0 @@ -// package org.my.group; - -// import io.quarkus.test.junit.QuarkusTest; -// import org.junit.jupiter.api.Test; - -// import static io.restassured.RestAssured.given; -// import static org.hamcrest.CoreMatchers.is; - -// @QuarkusTest -// public class MyResourceTest { - -// @Test -// public void testHelloEndpoint() { -// given() -// .when().get("/hello") -// .then() -// .statusCode(200) -// .body(is("Hello RESTEasy")); -// } - -// } \ No newline at end of file diff --git a/traqtor-quackery/src/test/java/org/my/group/NativeMyResourceIT.java b/traqtor-quackery/src/test/java/org/my/group/NativeMyResourceIT.java deleted file mode 100644 index 241bb79..0000000 --- a/traqtor-quackery/src/test/java/org/my/group/NativeMyResourceIT.java +++ /dev/null @@ -1,9 +0,0 @@ -// package org.my.group; - -// import io.quarkus.test.junit.NativeImageTest; - -// @NativeImageTest -// public class NativeMyResourceIT extends MyResourceTest { - -// // Execute the same tests but in native mode. -// } \ No newline at end of file