public String getNameOfV3Resource(Map<String, Object> resource) { return getAttributeOfV3Resource(resource, "name", String.class); }
private String getError(Map<String, Object> resource) { return getAttributeOfV3Resource(resource, "error", String.class); }
@SuppressWarnings("unchecked") private CloudBuild.CreatedBy getCreatedBy(Map<String, Object> resource) { Map<String, Object> createdByMap = getAttributeOfV3Resource(resource, "created_by", Map.class); String createdByEmail = getAttributeOfV3Resource(createdByMap, "email", String.class); UUID createdByGuid = UUID.fromString(getAttributeOfV3Resource(createdByMap, "guid", String.class)); String createByName = getAttributeOfV3Resource(createdByMap, "name", String.class); return new CloudBuild.CreatedBy(createdByEmail, createdByGuid, createByName); }
@SuppressWarnings("unchecked") private CloudBuild.Package getPackage(Map<String, Object> resource) { Map<String, Object> packageMap = getAttributeOfV3Resource(resource, "package", Map.class); String packageGuid = getAttributeOfV3Resource(packageMap, "guid", String.class); CloudBuild.Package packageInfo = new CloudBuild.Package(packageGuid); return packageInfo; }
@SuppressWarnings("unchecked") private CloudBuild.Lifecycle getLifecycle(Map<String, Object> resource) { Map<String, Object> lifecycleMap = getAttributeOfV3Resource(resource, "lifecycle", Map.class); String lifecycleType = getAttributeOfV3Resource(lifecycleMap, "type", String.class); Map<String, Object> lifecycleDataMap = getAttributeOfV3Resource(lifecycleMap, "data", Map.class); List<String> lifecycleDataBuildpacks = getAttributeOfV3Resource(lifecycleDataMap, "buildpacks", List.class); String lifecycleDataStack = getAttributeOfV3Resource(lifecycleDataMap, "stack", String.class); return new CloudBuild.Lifecycle(lifecycleType, new CloudBuild.Lifecycle.Data(lifecycleDataBuildpacks, lifecycleDataStack)); }
private CloudBuild.Droplet getDroplet(Map<String, Object> dropletMap) { if (dropletMap == null) { return null; } UUID dropletGuid = UUID.fromString(getAttributeOfV3Resource(dropletMap, "guid", String.class)); String dropletHref = getAttributeOfV3Resource(dropletMap, "href", String.class); return new CloudBuild.Droplet(dropletGuid, dropletHref); }
@SuppressWarnings("unchecked") private CloudPackage.Data getData(Map<String, Object> resource) { Map<String, Object> dataMap = getAttributeOfV3Resource(resource, "data", Map.class); Map<String, Object> checksumMap = getAttributeOfV3Resource(dataMap, "checksum", Map.class); String checksumType = getAttributeOfV3Resource(checksumMap, "type", String.class); String checksumValue = getAttributeOfV3Resource(checksumMap, "value", String.class); CloudPackage.Data.Checksum checksum = new CloudPackage.Data.Checksum(checksumType, checksumValue); return new CloudPackage.Data(checksum, getError(dataMap)); }
private CloudTask.Result getTaskResult(Map<String, Object> resource) { @SuppressWarnings("unchecked") Map<String, Object> result = getAttributeOfV3Resource(resource, "result", Map.class); String failureReason = (String) result.get("failure_reason"); return new CloudTask.Result(failureReason); }
private State getTaskState(Map<String, Object> resource) { String stateAsString = getAttributeOfV3Resource(resource, "state", String.class); return stateAsString == null ? null : CloudTask.State.valueOf(stateAsString); }
private CloudTask mapTaskResource(Map<String, Object> resource) { CloudTask task = new CloudTask(getV3Meta(resource), getNameOfV3Resource(resource)); task.setCommand(getAttributeOfV3Resource(resource, "command", String.class)); task.setMemory(getAttributeOfV3Resource(resource, "memory_in_mb", Integer.class)); task.setDiskQuota(getAttributeOfV3Resource(resource, "disk_in_mb", Integer.class)); task.setState(getTaskState(resource)); task.setResult(getTaskResult(resource)); return task; }
private CloudPackage mapPackageResource(Map<String, Object> resource) { return new CloudPackage.Builder().meta(getV3Meta(resource)) .data(getData(resource)) .status(Status.valueOf(getAttributeOfV3Resource(resource, "state", String.class).toUpperCase())) .type(CloudPackage.Type.valueOf(getAttributeOfV3Resource(resource, "type", String.class).toUpperCase())) .build(); }
@SuppressWarnings("unchecked") private CloudBuild mapBuildResource(Map<String, Object> resource) { return new CloudBuild.Builder().meta(getV3Meta(resource)) .createdBy(getCreatedBy(resource)) .droplet(getDroplet(getAttributeOfV3Resource(resource, "droplet", Map.class))) .error(getError(resource)) .lifecycle(getLifecycle(resource)) .packageInfo(getPackage(resource)) .buildState(CloudBuild.BuildState.valueOf(getAttributeOfV3Resource(resource, "state", String.class).toUpperCase())) .build(); }