
com.mnubo.java.sdk.client.services.ModelSDKServices Maven / Gradle / Ivy
package com.mnubo.java.sdk.client.services;
import com.mnubo.java.sdk.client.models.datamodel.*;
import com.mnubo.java.sdk.client.spi.ModelSDK;
import org.springframework.core.ParameterizedTypeReference;
import java.util.Collections;
import java.util.Map;
import java.util.Set;
class ModelSDKServices implements ModelSDK {
private final SDKService sdkCommonServices;
private final SandboxEntityOps tsOps;
private final String tsBasePath = "/timeseries";
private final SandboxEntityOps objectsOps;
private final String objBasePath = "/objectAttributes";
private final SandboxEntityOps ownersOps;
private final String ownersBasePath = "/ownerAttributes";
private final SandboxTypeOps objectTypesOps;
private final String objectTypesBasePath = "/objectTypes";
private final SandboxTypeOps eventTypesOps;
private final String eventTypesBasePath = "/eventTypes";
private final SandboxOnlyOps sandboxOnlyOps;
private final ResetOps resetOps;
ModelSDKServices(SDKService sdkCommonServices) {
this.sdkCommonServices = sdkCommonServices;
tsOps = new SandboxEntityOpsImpl<>(this.sdkCommonServices, tsBasePath);
objectsOps = new SandboxEntityOpsImpl<>(this.sdkCommonServices, objBasePath);
ownersOps = new SandboxEntityOpsImpl<>(this.sdkCommonServices, ownersBasePath);
objectTypesOps = new SandboxTypeOpsImpl<>(this.sdkCommonServices, objectTypesBasePath);
eventTypesOps = new SandboxTypeOpsImpl<>(this.sdkCommonServices, eventTypesBasePath);
resetOps = new ResetOpsImpl(this.sdkCommonServices);
sandboxOnlyOps = new SandboxOnlyOps() {
@Override
public SandboxEntityOps timeseriesOps() {
return tsOps;
}
@Override
public SandboxEntityOps objectAttributesOps() {
return objectsOps;
}
@Override
public SandboxEntityOps ownerAttributesOps() {
return ownersOps;
}
@Override
public SandboxTypeOps objectTypesOps() {
return objectTypesOps;
}
@Override
public SandboxTypeOps eventTypesOps() {
return eventTypesOps;
}
@Override
public ResetOps resetOps() {
return resetOps;
}
};
}
@Override
public Model export() {
return this.sdkCommonServices.getRequest(
this.sdkCommonServices.getModelBaseUri().path("/export").toUriString(),
Model.class
);
}
@Override
public SandboxOnlyOps sandboxOps() {
return sandboxOnlyOps;
}
@Override
public Set getTimeseries() {
return this.sdkCommonServices.getRequest(
this.sdkCommonServices.getModelBaseUri().path(tsBasePath).toUriString(),
new ParameterizedTypeReference>() {}
);
}
@Override
public Set getObjectAttributes() {
return this.sdkCommonServices.getRequest(
this.sdkCommonServices.getModelBaseUri().path(objBasePath).toUriString(),
new ParameterizedTypeReference>() {}
);
}
@Override
public Set getOwnerAttributes() {
return this.sdkCommonServices.getRequest(
this.sdkCommonServices.getModelBaseUri().path(ownersBasePath).toUriString(),
new ParameterizedTypeReference>() {}
);
}
@Override
public Set getObjectTypes() {
return this.sdkCommonServices.getRequest(
this.sdkCommonServices.getModelBaseUri().path(objectTypesBasePath).toUriString(),
new ParameterizedTypeReference>() {}
);
}
@Override
public Set getEventTypes() {
return this.sdkCommonServices.getRequest(
this.sdkCommonServices.getModelBaseUri().path(eventTypesBasePath).toUriString(),
new ParameterizedTypeReference>() {}
);
}
private class SandboxEntityOpsImpl implements ModelSDK.SandboxEntityOps {
private final SDKService sdkCommonServices;
private final String basePath;
SandboxEntityOpsImpl(SDKService sdkCommonServices, String basePath) {
this.sdkCommonServices = sdkCommonServices;
this.basePath = basePath;
}
@Override
public void create(Set value) {
this.sdkCommonServices.postRequest(
this.sdkCommonServices.getModelBaseUri().path(this.basePath).toUriString(),
value.toArray()
);
}
@Override
public void createOne(A value) {
this.create(Collections.singleton(value));
}
@Override
public void update(String key, UpdateEntity update) {
this.sdkCommonServices.putRequest(
this.sdkCommonServices.getModelBaseUri().path(this.basePath).path("/" + key).toUriString(),
update
);
}
@Override
public String generateDeployCode(String key) {
final Map body = this.sdkCommonServices.postRequest(
this.sdkCommonServices.getModelBaseUri()
.path(this.basePath)
.path("/" + key)
.path("/deploy")
.toUriString(),
new ParameterizedTypeReference
© 2015 - 2025 Weber Informatics LLC | Privacy Policy