aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/foo/zaaarf/routecompass/Route.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/foo/zaaarf/routecompass/Route.java')
-rw-r--r--src/main/java/foo/zaaarf/routecompass/Route.java143
1 files changed, 0 insertions, 143 deletions
diff --git a/src/main/java/foo/zaaarf/routecompass/Route.java b/src/main/java/foo/zaaarf/routecompass/Route.java
deleted file mode 100644
index b35bd31..0000000
--- a/src/main/java/foo/zaaarf/routecompass/Route.java
+++ /dev/null
@@ -1,143 +0,0 @@
-package foo.zaaarf.routecompass;
-
-import org.springframework.web.bind.annotation.RequestMethod;
-
-import java.util.Arrays;
-
-/**
- * Representation of a REST route.
- */
-public class Route {
- /**
- * The paths of the endpoint.
- */
- public final String[] paths;
-
- /**
- * The supported {@link RequestMethod}s, as strings.
- */
- public final String[] methods;
-
- /**
- * The media types produced by the endpoint.
- * May be null if not specified.
- */
- public final String[] produces;
-
- /**
- * The media types consumed by the endpoint.
- * May be null if not specified.
- */
- public final String[] consumes;
-
- /**
- * Whether the endpoint is deprecated.
- */
- public final boolean deprecated;
-
- /**
- * A {@link DTO} representing the response body.
- */
- public final DTO returnType;
-
- /**
- * A {@link DTO} representing the request body.
- */
- public final DTO inputType;
-
- /**
- * An array of {@link Param}s, representing parameters accepted by the endpoint.
- */
- public final Param[] params;
-
- /**
- * The one and only constructor.
- * @param paths the paths of the endpoint
- * @param methods the {@link RequestMethod}s accepted by the endpoint
- * @param consumes the media types consumed by the endpoint, may be null
- * @param produces the media types produced by the endpoint, may be null
- * @param deprecated whether the endpoint is deprecated
- * @param returnType the DTO for the response type, may be null
- * @param inputType the DTO for the request type, may be null
- * @param params {@link Param}s of the endpoint, may be null
- */
- public Route(String[] paths, RequestMethod[] methods, String[] consumes, String[] produces,
- boolean deprecated, DTO returnType, DTO inputType, Param... params) {
- this.paths = paths;
- this.methods = Arrays.stream(methods).map(Enum::name).toArray(String[]::new);
-
- if(produces != null) this.produces = produces;
- else this.produces = new String[0];
-
- if(consumes != null) this.consumes = consumes;
- else this.consumes = new String[0];
-
- this.deprecated = deprecated;
-
- this.returnType = returnType;
- this.inputType = inputType;
-
- if(params != null) this.params = params;
- else this.params = new Param[0]; //just in case
- }
-
- /**
- * Representation of a parameter of a REST route.
- */
- public static class Param {
- /**
- * The fully-qualified name of the expected type of the parameter.
- */
- public final String typeFQN;
-
- /**
- * The name of the parameter.
- */
- public final String name;
-
- /**
- * The default value of the parameter.
- * May be null, in which case the parameter is required.
- */
- public final String defaultValue;
-
- /**
- * The one and only constructor.
- * @param typeFQN the FQN of the expected type of the parameter
- * @param name the name of the parameter
- * @param defaultValue the default value of the parameter, may be null if the parameter is required
- */
- public Param(String typeFQN, String name, String defaultValue) {
- this.typeFQN = typeFQN;
- this.name = name;
- this.defaultValue = defaultValue;
- }
- }
-
- /**
- * Representation of a DTO type.
- */
- public static class DTO {
-
- /**
- * Fully-qualified name of the type.
- */
- public final String FQN;
-
- /**
- * An array of {@link Param} representing the type's fields.
- */
- public final Route.Param[] fields;
-
- /**
- * The one and only constructor.
- * @param FQN the fully-qualified name
- * @param fields the {@link Param}s representing the fields
- */
- public DTO(String FQN, Route.Param ... fields) {
- this.FQN = FQN;
- if(fields == null) this.fields = new Route.Param[0];
- else this.fields = fields;
- }
- }
-}