package io.cattle.platform.configitem.request.util; import io.cattle.platform.configitem.request.ConfigUpdateRequest; import io.cattle.platform.engine.process.ProcessState; import io.cattle.platform.json.JsonMapper; import io.cattle.platform.object.util.DataAccessor; import io.cattle.platform.util.type.CollectionUtils; import java.util.ArrayList; import java.util.List; import java.util.Map; public class ConfigUpdateRequestUtils { public static final String WAIT_FOR = "waitFor"; public static ConfigUpdateRequest getRequest(JsonMapper jsonMapper, ProcessState state, Object id) { DataAccessor data = DataAccessor.fromMap(state.getData()).withScope(ConfigUpdateRequest.class).withKey( id instanceof String ? id.toString() : id.getClass().getName()); return data.as(jsonMapper, ConfigUpdateRequest.class); } public static void setRequest(ConfigUpdateRequest request, ProcessState state, Object id) { DataAccessor data = DataAccessor.fromMap(state.getData()).withScope(ConfigUpdateRequest.class).withKey( id instanceof String ? id.toString() : id.getClass().getName()); data.set(request); } public static List<ConfigUpdateRequest> getRequests(JsonMapper jsonMapper, ProcessState state) { List<ConfigUpdateRequest> result = new ArrayList<ConfigUpdateRequest>(); Map<String, Object> requests = CollectionUtils.toMap(state.getData().get(ConfigUpdateRequest.class.getName())); for (Object obj : requests.values()) { result.add(jsonMapper.convertValue(obj, ConfigUpdateRequest.class)); } return result; } public static void setWaitFor(ConfigUpdateRequest request) { request.getAttributes().put(WAIT_FOR, true); } public static boolean shouldWaitFor(ConfigUpdateRequest request) { return Boolean.TRUE.equals(request.getAttributes().get(WAIT_FOR)); } }