/*******************************************************************************
* Copyright 2013-2015 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.HashMap;
import java.util.Iterator;
import java.util.Locale;
import org.json.JSONObject;
/**
* contains the result of a test after evaluation
* @author lb
*
*/
public class QoSServerResult implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
public static enum DetailType {
FAIL,
OK,
INFO
}
//////////////////////
// on_failure_behaviour constants:
//////////////////////
public final static String ON_FAILURE_BEHAVIOUR_NONE = "none";
public final static String ON_FAILURE_BEHAVIOUR_HIDE_SUCCESS = "hide_success";
public final static String ON_FAILURE_BEHAVIOUR_INFO_SUCCESS = "info_success";
private final static String DEFAULT_ON_FAILURE_BEHAVIOUR = ON_FAILURE_BEHAVIOUR_NONE;
public final static String JSON_KEY_TESTTYPE = "test_type";
public final static String JSON_KEY_SUCCESS_COUNT = "success_count";
public final static String JSON_KEY_FAILURE_COUNT = "failure_count";
public final static String JSON_KEY_RESULT_MAP = "result";
public final static String JSON_KEY_TEST_DESCRIPTION = "test_desc";
public final static String JSON_KEY_TEST_SUMMARY = "test_summary";
public final static String JSON_KEY_ON_FAILURE_BEHAVIOUR = "on_failure_behaviour";
public final static String JSON_KEY_UID = "uid";
private QoSTestResultEnum testType;
private int successCount = 0;
private int failureCount = 0;
private HashMap<String, String> resultMap = new HashMap<String, String>();
private String testDescription;
private String testSummary;
private long uid;
private int displayPosition;
private String onFailureBehaviour;
/**
*
* @param json
*/
@SuppressWarnings("unchecked")
public QoSServerResult(JSONObject json) {
try {
testType = QoSTestResultEnum.valueOf(json.optString(JSON_KEY_TESTTYPE).toUpperCase(Locale.US));
testDescription = json.optString(JSON_KEY_TEST_DESCRIPTION);
testSummary = json.optString(JSON_KEY_TEST_SUMMARY);
successCount = Integer.valueOf(json.optString(JSON_KEY_SUCCESS_COUNT));
failureCount = Integer.valueOf(json.optString(JSON_KEY_FAILURE_COUNT));
onFailureBehaviour = json.optString(JSON_KEY_ON_FAILURE_BEHAVIOUR, DEFAULT_ON_FAILURE_BEHAVIOUR);
uid = json.optLong(JSON_KEY_UID);
JSONObject resultObj = json.optJSONObject(JSON_KEY_RESULT_MAP);
if (resultObj != null) {
Iterator<String> keys = resultObj.keys();
while (keys.hasNext()) {
String key = keys.next();
resultMap.put(key, resultObj.optString(key));
}
}
}
catch (Throwable t) {
testType = null;
resultMap = null;
}
}
public QoSTestResultEnum getTestType() {
return testType;
}
public void setTestType(QoSTestResultEnum testType) {
this.testType = testType;
}
public int getSuccessCount() {
return successCount;
}
public void setSuccessCount(int successCount) {
this.successCount = successCount;
}
public int getFailureCount() {
return failureCount;
}
public void setFailureCount(int failureCount) {
this.failureCount = failureCount;
}
public HashMap<String, String> getResultMap() {
return resultMap;
}
public void setResultMap(HashMap<String, String> resultMap) {
this.resultMap = resultMap;
}
public String getTestDescription() {
return testDescription;
}
public void setTestDescription(String testDescription) {
this.testDescription = testDescription;
}
public String getTestSummary() {
return testSummary;
}
public void setTestSummary(String testSummary) {
this.testSummary = testSummary;
}
public long getUid() {
return uid;
}
public void setUid(long uid) {
this.uid = uid;
}
public int getDisplayPosition() {
return displayPosition;
}
public void setDisplayPosition(int displayPosition) {
this.displayPosition = displayPosition;
}
public String getOnFailureBehaviour() {
return onFailureBehaviour;
}
public void setOnFailureBehaviour(String onFailureBehaviour) {
this.onFailureBehaviour = onFailureBehaviour;
}
@Override
public String toString() {
return "QoSServerResult [testType=" + testType + ", successCount="
+ successCount + ", failureCount=" + failureCount
+ ", resultMap=" + resultMap + ", testDescription="
+ testDescription + ", testSummary=" + testSummary + ", uid="
+ uid + ", displayPosition=" + displayPosition
+ ", onFailureBehaviour=" + onFailureBehaviour + "]";
}
}