/*******************************************************************************
* Copyright 2013-2014 alladin-IT GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
package at.alladin.rmbt.client.v2.task.result;
import java.io.Serializable;
import java.util.Locale;
import java.util.Set;
import java.util.TreeSet;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import at.alladin.rmbt.client.v2.task.result.QoSServerResult.DetailType;
/**
* contains the description of a test result after evaluation
* @author lb
*
*/
public class QoSServerResultDesc implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
public final static String JSON_KEY_DESCRIPTION = "desc";
public final static String JSON_KEY_TESTTYPE = "test";
public final static String JSON_KEY_STATUS = "status";
public final static String JSON_KEY_UID_LIST = "uid";
private String desc;
private QoSTestResultEnum testType;
private DetailType status;
private Set<Long> uidSet = new TreeSet<Long>();
/**
*
* @param desc
* @param testType
* @param status
*/
public QoSServerResultDesc(String desc, QoSTestResultEnum testType, DetailType status, Set<Long> uidSet) {
this.desc = desc;
this.testType = testType;
this.status = status;
this.uidSet = uidSet;
}
/**
*
* @param json
* @throws JSONException
*/
public QoSServerResultDesc(JSONObject json) throws JSONException {
this.desc = json.getString(JSON_KEY_DESCRIPTION);
this.testType = QoSTestResultEnum.valueOf(json.getString(JSON_KEY_TESTTYPE));
this.status = DetailType.valueOf(json.getString(JSON_KEY_STATUS).toUpperCase(Locale.US));
JSONArray uidArray = json.getJSONArray(JSON_KEY_UID_LIST);
for (int i = 0; i < uidArray.length(); i++) {
uidSet.add(uidArray.getLong(i));
}
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public QoSTestResultEnum getTestType() {
return testType;
}
public void setTestType(QoSTestResultEnum testType) {
this.testType = testType;
}
public DetailType getStatus() {
return status;
}
public void setStatus(DetailType status) {
this.status = status;
}
public Set<Long> getUidSet() {
return uidSet;
}
public void setUidSet(Set<Long> uidSet) {
this.uidSet = uidSet;
}
/*
* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "QoSServerResultDesc [desc=" + desc + ", testType="
+ testType + ", status=" + status + ", uidSet=" + uidSet + "]";
}
}