/******************************************************************************* * Copyright (c) 2011, 2016 Eurotech and/or its affiliates * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Eurotech *******************************************************************************/ package org.eclipse.kura.core.deployment.uninstall; import java.text.ParseException; import org.eclipse.kura.core.deployment.download.impl.KuraNotifyPayload; import org.eclipse.kura.message.KuraPayload; public class KuraUninstallPayload extends KuraPayload { public static final String METRIC_CLIENT_ID = "client.id"; public static final String METRIC_UNINSTALL_PROGRESS = "dp.uninstall.progress"; public static final String METRIC_UNINSTALL_STATUS = "dp.uninstall.status"; public static final String METRIC_DP_NAME = "dp.name"; public static final String METRIC_DP_VERSION = "dp.version"; public static final String METRIC_JOB_ID = "job.id"; private static final String METRIC_ERROR_MESSAGE = "dp.uninstall.error.message"; public KuraUninstallPayload(String clientId) { super(); addMetric(METRIC_CLIENT_ID, clientId); } public KuraUninstallPayload(KuraPayload kuraPayload) { for (String name : kuraPayload.metricNames()) { Object value = kuraPayload.getMetric(name); addMetric(name, value); } setBody(kuraPayload.getBody()); setPosition(kuraPayload.getPosition()); setTimestamp(kuraPayload.getTimestamp()); } public void setClientId(String requesterClientId) { addMetric(METRIC_CLIENT_ID, requesterClientId); } public String getClientId() { return (String) getMetric(METRIC_CLIENT_ID); } public void setUninstallProgress(int installProgress) { addMetric(METRIC_UNINSTALL_PROGRESS, installProgress); } public int getUninstallProgress() { return (Integer) getMetric(METRIC_UNINSTALL_PROGRESS); } public void setUninstallStatus(String installStatus) { addMetric(METRIC_UNINSTALL_STATUS, installStatus); } public int getUninstallStatus() { return (Integer) getMetric(METRIC_UNINSTALL_STATUS); } public void setDpName(String dpName) { addMetric(METRIC_DP_NAME, dpName); } public void setDpVersion(String dpVersion) { addMetric(METRIC_DP_VERSION, dpVersion); } public static KuraNotifyPayload buildFromKuraPayload(KuraPayload payload) throws ParseException { if (payload.getMetric(METRIC_CLIENT_ID) == null) { throw new ParseException("Not a valid notify payload", 0); } return new KuraNotifyPayload(payload); } public void setJobId(long jobId) { addMetric(METRIC_JOB_ID, jobId); } public Long getJobId() { return (Long) getMetric(METRIC_JOB_ID); } public void setErrorMessage(String errorMessage) { addMetric(METRIC_ERROR_MESSAGE, errorMessage); } public String getErrorMessage() { return (String) getMetric(METRIC_ERROR_MESSAGE); } }