Skip to content

Commit

Permalink
Java, adds ApiConfiguration (#381)
Browse files Browse the repository at this point in the history
* Makes servers publics, adds imports in apiconfiguration

* Adds Servers files

* Adds java comment

* Adds classes to store servers for each jsonPath including root servers

* ServerInfo classes updated

* Samples regen
  • Loading branch information
spacether authored Jan 25, 2024
1 parent f392968 commit 8a99120
Show file tree
Hide file tree
Showing 50 changed files with 1,016 additions and 129 deletions.
4 changes: 4 additions & 0 deletions samples/client/3_0_3_unit_test/java/.openapi-generator/FILES
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ docs/components/schemas/UriReferenceFormat.md
docs/components/schemas/UriTemplateFormat.md
docs/servers/Server0.md
pom.xml
src/main/java/org/openapijsonschematools/client/RootServerInfo.java
src/main/java/org/openapijsonschematools/client/components/schemas/AdditionalpropertiesAllowsASchemaWhichShouldValidate.java
src/main/java/org/openapijsonschematools/client/components/schemas/AdditionalpropertiesAreAllowedByDefault.java
src/main/java/org/openapijsonschematools/client/components/schemas/AdditionalpropertiesCanExistByItself.java
Expand Down Expand Up @@ -175,6 +176,7 @@ src/main/java/org/openapijsonschematools/client/components/schemas/UniqueitemsVa
src/main/java/org/openapijsonschematools/client/components/schemas/UriFormat.java
src/main/java/org/openapijsonschematools/client/components/schemas/UriReferenceFormat.java
src/main/java/org/openapijsonschematools/client/components/schemas/UriTemplateFormat.java
src/main/java/org/openapijsonschematools/client/configurations/ApiConfiguration.java
src/main/java/org/openapijsonschematools/client/configurations/JsonSchemaKeywordFlags.java
src/main/java/org/openapijsonschematools/client/configurations/SchemaConfiguration.java
src/main/java/org/openapijsonschematools/client/exceptions/BaseException.java
Expand Down Expand Up @@ -277,7 +279,9 @@ src/main/java/org/openapijsonschematools/client/schemas/validation/UniqueItemsVa
src/main/java/org/openapijsonschematools/client/schemas/validation/UnsetAnyTypeJsonSchema.java
src/main/java/org/openapijsonschematools/client/schemas/validation/ValidationData.java
src/main/java/org/openapijsonschematools/client/schemas/validation/ValidationMetadata.java
src/main/java/org/openapijsonschematools/client/servers/Server.java
src/main/java/org/openapijsonschematools/client/servers/Server0.java
src/main/java/org/openapijsonschematools/client/servers/ServerProvider.java
src/main/java/org/openapijsonschematools/client/servers/ServerWithVariables.java
src/main/java/org/openapijsonschematools/client/servers/ServerWithoutVariables.java
src/test/java/org/openapijsonschematools/client/configurations/JsonSchemaKeywordFlagsTest.java
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
package org.openapijsonschematools.client;

import org.openapijsonschematools.client.exceptions.UnsetPropertyException;
import org.openapijsonschematools.client.servers.Server0;
import org.openapijsonschematools.client.servers.Server;
import org.openapijsonschematools.client.servers.ServerProvider;
import org.checkerframework.checker.nullness.qual.Nullable;

import java.util.AbstractMap;
import java.util.Map;
import java.util.Objects;
import java.util.EnumMap;

public class RootServerInfo implements ServerProvider<RootServerInfo.ServerIndex> {
final private Servers servers;
final private ServerIndex serverIndex;

public RootServerInfo() {
this.servers = new Servers();
this.serverIndex = ServerIndex.SERVER_0;
}

public RootServerInfo(Servers servers, ServerIndex serverIndex) {
this.servers = servers;
this.serverIndex = serverIndex;
}

public static class Servers {
private final EnumMap<ServerIndex, Server> servers;

public Servers() {
servers = new EnumMap<>(
Map.ofEntries(
new AbstractMap.SimpleEntry<>(
ServerIndex.SERVER_0,
new Server0()
)
)
);
}

public Servers(
@Nullable Server0 server0
) {
servers = new EnumMap<>(
Map.ofEntries(
new AbstractMap.SimpleEntry<>(
ServerIndex.SERVER_0,
Objects.requireNonNullElseGet(server0, Server0::new)
)
)
);
}

public Server get(ServerIndex serverIndex) {
if (servers.containsKey(serverIndex)) {
return get(serverIndex);
}
throw new UnsetPropertyException(serverIndex+" is unset");
}
}

public enum ServerIndex {
SERVER_0
}

public Server getServer(@Nullable ServerIndex serverIndex) {
if (serverIndex == null) {
return servers.get(this.serverIndex);
}
return servers.get(serverIndex);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package org.openapijsonschematools.client.configurations;

import org.openapijsonschematools.client.servers.Server;
import org.openapijsonschematools.client.RootServerInfo;
import org.checkerframework.checker.nullness.qual.Nullable;

import java.util.Objects;

public class ApiConfiguration {
private final ServerInfo serverInfo;

public ApiConfiguration() {
serverInfo = new ServerInfo();
}

public ApiConfiguration(ServerInfo serverInfo) {
this.serverInfo = serverInfo;
}

public static class ServerInfo {
protected final RootServerInfo rootServerInfo;

public ServerInfo() {
rootServerInfo = new RootServerInfo();
}

public ServerInfo(
@Nullable RootServerInfo rootServerInfo
) {
this.rootServerInfo = Objects.requireNonNullElseGet(rootServerInfo, RootServerInfo::new);
}
}

public Server getServer(RootServerInfo. @Nullable ServerIndex serverIndex) {
return serverInfo.rootServerInfo.getServer(serverIndex);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package org.openapijsonschematools.client.servers;

public interface Server {
String url();
}

Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import org.openapijsonschematools.client.servers.ServerWithoutVariables;

class Server0 extends ServerWithoutVariables {
public class Server0 extends ServerWithoutVariables {
public Server0() {
super("https://someserver.com/v1");
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package org.openapijsonschematools.client.servers;

import org.checkerframework.checker.nullness.qual.Nullable;

public interface ServerProvider<T> {
Server getServer(@Nullable T serverIndex);
}

Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import java.util.Map;

public abstract class ServerWithVariables<T extends Map<String, String>> {
public abstract class ServerWithVariables<T extends Map<String, String>> implements Server {
public final String url;
public final T variables;

Expand All @@ -13,5 +13,9 @@ protected ServerWithVariables(String url, T variables) {
}
this.url = url;
}

public String url(){
return url;
}
}

Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
package org.openapijsonschematools.client.servers;

public abstract class ServerWithoutVariables {
public abstract class ServerWithoutVariables implements Server {
public final String url;

protected ServerWithoutVariables(String url) {
this.url = url;
}

public String url(){
return url;
}
}

4 changes: 4 additions & 0 deletions samples/client/3_1_0_unit_test/java/.openapi-generator/FILES
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ docs/components/schemas/UuidFormat.md
docs/components/schemas/ValidateAgainstCorrectBranchThenVsElse.md
docs/servers/Server0.md
pom.xml
src/main/java/org/openapijsonschematools/client/RootServerInfo.java
src/main/java/org/openapijsonschematools/client/components/schemas/ASchemaGivenForPrefixitems.java
src/main/java/org/openapijsonschematools/client/components/schemas/AdditionalItemsAreAllowedByDefault.java
src/main/java/org/openapijsonschematools/client/components/schemas/AdditionalpropertiesAreAllowedByDefault.java
Expand Down Expand Up @@ -287,6 +288,7 @@ src/main/java/org/openapijsonschematools/client/components/schemas/UriReferenceF
src/main/java/org/openapijsonschematools/client/components/schemas/UriTemplateFormat.java
src/main/java/org/openapijsonschematools/client/components/schemas/UuidFormat.java
src/main/java/org/openapijsonschematools/client/components/schemas/ValidateAgainstCorrectBranchThenVsElse.java
src/main/java/org/openapijsonschematools/client/configurations/ApiConfiguration.java
src/main/java/org/openapijsonschematools/client/configurations/JsonSchemaKeywordFlags.java
src/main/java/org/openapijsonschematools/client/configurations/SchemaConfiguration.java
src/main/java/org/openapijsonschematools/client/exceptions/BaseException.java
Expand Down Expand Up @@ -389,7 +391,9 @@ src/main/java/org/openapijsonschematools/client/schemas/validation/UniqueItemsVa
src/main/java/org/openapijsonschematools/client/schemas/validation/UnsetAnyTypeJsonSchema.java
src/main/java/org/openapijsonschematools/client/schemas/validation/ValidationData.java
src/main/java/org/openapijsonschematools/client/schemas/validation/ValidationMetadata.java
src/main/java/org/openapijsonschematools/client/servers/Server.java
src/main/java/org/openapijsonschematools/client/servers/Server0.java
src/main/java/org/openapijsonschematools/client/servers/ServerProvider.java
src/main/java/org/openapijsonschematools/client/servers/ServerWithVariables.java
src/main/java/org/openapijsonschematools/client/servers/ServerWithoutVariables.java
src/test/java/org/openapijsonschematools/client/configurations/JsonSchemaKeywordFlagsTest.java
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
package org.openapijsonschematools.client;

import org.openapijsonschematools.client.exceptions.UnsetPropertyException;
import org.openapijsonschematools.client.servers.Server0;
import org.openapijsonschematools.client.servers.Server;
import org.openapijsonschematools.client.servers.ServerProvider;
import org.checkerframework.checker.nullness.qual.Nullable;

import java.util.AbstractMap;
import java.util.Map;
import java.util.Objects;
import java.util.EnumMap;

public class RootServerInfo implements ServerProvider<RootServerInfo.ServerIndex> {
final private Servers servers;
final private ServerIndex serverIndex;

public RootServerInfo() {
this.servers = new Servers();
this.serverIndex = ServerIndex.SERVER_0;
}

public RootServerInfo(Servers servers, ServerIndex serverIndex) {
this.servers = servers;
this.serverIndex = serverIndex;
}

public static class Servers {
private final EnumMap<ServerIndex, Server> servers;

public Servers() {
servers = new EnumMap<>(
Map.ofEntries(
new AbstractMap.SimpleEntry<>(
ServerIndex.SERVER_0,
new Server0()
)
)
);
}

public Servers(
@Nullable Server0 server0
) {
servers = new EnumMap<>(
Map.ofEntries(
new AbstractMap.SimpleEntry<>(
ServerIndex.SERVER_0,
Objects.requireNonNullElseGet(server0, Server0::new)
)
)
);
}

public Server get(ServerIndex serverIndex) {
if (servers.containsKey(serverIndex)) {
return get(serverIndex);
}
throw new UnsetPropertyException(serverIndex+" is unset");
}
}

public enum ServerIndex {
SERVER_0
}

public Server getServer(@Nullable ServerIndex serverIndex) {
if (serverIndex == null) {
return servers.get(this.serverIndex);
}
return servers.get(serverIndex);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package org.openapijsonschematools.client.configurations;

import org.openapijsonschematools.client.servers.Server;
import org.openapijsonschematools.client.RootServerInfo;
import org.checkerframework.checker.nullness.qual.Nullable;

import java.util.Objects;

public class ApiConfiguration {
private final ServerInfo serverInfo;

public ApiConfiguration() {
serverInfo = new ServerInfo();
}

public ApiConfiguration(ServerInfo serverInfo) {
this.serverInfo = serverInfo;
}

public static class ServerInfo {
protected final RootServerInfo rootServerInfo;

public ServerInfo() {
rootServerInfo = new RootServerInfo();
}

public ServerInfo(
@Nullable RootServerInfo rootServerInfo
) {
this.rootServerInfo = Objects.requireNonNullElseGet(rootServerInfo, RootServerInfo::new);
}
}

public Server getServer(RootServerInfo. @Nullable ServerIndex serverIndex) {
return serverInfo.rootServerInfo.getServer(serverIndex);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package org.openapijsonschematools.client.servers;

public interface Server {
String url();
}

Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import org.openapijsonschematools.client.servers.ServerWithoutVariables;

class Server0 extends ServerWithoutVariables {
public class Server0 extends ServerWithoutVariables {
public Server0() {
super("https://someserver.com/v1");
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package org.openapijsonschematools.client.servers;

import org.checkerframework.checker.nullness.qual.Nullable;

public interface ServerProvider<T> {
Server getServer(@Nullable T serverIndex);
}

Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import java.util.Map;

public abstract class ServerWithVariables<T extends Map<String, String>> {
public abstract class ServerWithVariables<T extends Map<String, String>> implements Server {
public final String url;
public final T variables;

Expand All @@ -13,5 +13,9 @@ protected ServerWithVariables(String url, T variables) {
}
this.url = url;
}

public String url(){
return url;
}
}

Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
package org.openapijsonschematools.client.servers;

public abstract class ServerWithoutVariables {
public abstract class ServerWithoutVariables implements Server {
public final String url;

protected ServerWithoutVariables(String url) {
this.url = url;
}

public String url(){
return url;
}
}

Loading

0 comments on commit 8a99120

Please sign in to comment.