![JAR search and dependency download from the Maven repository](/logo.png)
org.bdware.doip.cluster.client.DOAConfigBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of doip-audit-tool Show documentation
Show all versions of doip-audit-tool Show documentation
doip audit tool developed by bdware
The newest version!
package org.bdware.doip.cluster.client;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import org.bdware.doip.audit.EndpointConfig;
import org.bdware.doip.audit.client.AuditIrpClient;
import org.bdware.doip.audit.writer.AuditConfig;
import org.bdware.doip.audit.writer.AuditType;
import org.bdware.doip.codec.doipMessage.DoipMessageSigner;
import org.bdware.doip.cluster.InMemoryIrpClient;
import org.bdware.doip.cluster.StaticContentIrpClient;
import org.bdware.doip.encrypt.SM2Signer;
import org.bdware.irp.client.IrpClient;
public class DOAConfigBuilder {
private final StaticDOAConfig ret;
public static class StaticDOAConfig implements DOAConfig {
private IrpClient irpClient;
private AuditConfig auditConfig;
private DoipMessageSigner signer;
private JsonObject extraConfig;
@Override
public IrpClient getIrpClient() {
return irpClient;
}
@Override
public AuditConfig getAuditConfig() {
return auditConfig;
}
@Override
public DoipMessageSigner getSigner() {
return signer;
}
@Override
public JsonObject getExtraConfig() {
return extraConfig;
}
}
public static DOAConfig withIrpConfig(String irpConfig) {
DOAConfigBuilder configBuilder = new DOAConfigBuilder();
configBuilder.setIrpClient(irpConfig);
return configBuilder.build();
}
public DOAConfigBuilder() {
this.ret = new StaticDOAConfig();
}
public DOAConfigBuilder setIrpClient(String content) {
if (content.startsWith("{")) {
JsonObject jo = JsonParser.parseString(content).getAsJsonObject();
switch (jo.get("type").getAsString()) {
case "static":
ret.irpClient = new StaticContentIrpClient(jo.get("content").getAsJsonObject());
break;
case "inMemory":
default:
ret.irpClient = new InMemoryIrpClient(jo.get("content").getAsJsonObject());
break;
}
} else {
EndpointConfig config = new EndpointConfig();
config.routerURI = content;
ret.irpClient = new AuditIrpClient(config);
}
return this;
}
public DOAConfigBuilder setAuditConfig(AuditConfig config) {
ret.auditConfig = config;
return this;
}
public DOAConfigBuilder setSigner(DoipMessageSigner signer) {
ret.signer = signer;
return this;
}
public DOAConfig build() {
if (ret.auditConfig == null) ret.auditConfig = AuditConfig.newInstance(null, AuditType.None, null);
if (ret.signer == null) ret.signer = new SM2Signer(null, false, false);
if (ret.extraConfig == null) ret.extraConfig = new JsonObject();
return ret;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy