Skip to content
This repository was archived by the owner on Dec 25, 2024. It is now read-only.

Java, adds ApiConfiguration #381

Merged
merged 6 commits into from
Jan 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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