/*******************************************************************************
* Copyright (c) 2016 BREDEX GmbH.
* 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:
* BREDEX GmbH - initial API and implementation and/or initial documentation
*******************************************************************************/
package org.eclipse.jubula.client.archive.dto;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.eclipse.jubula.client.core.model.ICheckConfPO;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
* @author BREDEX GmbH
*/
public class CheckConfigurationDTO {
/** */
private String m_checkId, m_severity;
/** */
private boolean m_activated;
/** */
private List<CheckAttributeDTO> m_checkAttributes =
new ArrayList<CheckAttributeDTO>();
/** */
private List<CheckActivatedContextDTO> m_checkActivatedContextes =
new ArrayList<CheckActivatedContextDTO>();
/** needed because JSON mapping */
public CheckConfigurationDTO() { }
/**
* @param chkConf
*/
public CheckConfigurationDTO(ICheckConfPO chkConf) {
this.setActivated(chkConf.isActive());
this.setSeverity(chkConf.getSeverity());
fillCheckAttribute(chkConf.getAttr());
fillCheckContext(chkConf.getContexts());
}
/**
* @return checkId
*/
@JsonProperty("checkId")
public String getCheckId() {
return m_checkId;
}
/**
* @param checkId
*/
public void setCheckId(String checkId) {
this.m_checkId = checkId;
}
/**
* @return severity
*/
@JsonProperty("severity")
public String getSeverity() {
return m_severity;
}
/**
* @param severity
*/
public void setSeverity(String severity) {
this.m_severity = severity;
}
/**
* @return activated
*/
@JsonProperty("activated")
public boolean isActivated() {
return m_activated;
}
/**
* @param activated
*/
public void setActivated(boolean activated) {
this.m_activated = activated;
}
/**
* @return checkAttributes
*/
@JsonProperty("checkAttributes")
public List<CheckAttributeDTO> getCheckAttributes() {
return m_checkAttributes;
}
/**
* @param checkAttribut
*/
public void addCheckAttribut(CheckAttributeDTO checkAttribut) {
this.m_checkAttributes.add(checkAttribut);
}
/**
* @return checkActivatedContextes
*/
@JsonProperty("checkActivatedContextes")
public List<CheckActivatedContextDTO> getCheckActivatedContextes() {
return m_checkActivatedContextes;
}
/**
* @param checkActivatedContext
*/
public void addCheckActivatedContext(
CheckActivatedContextDTO checkActivatedContext) {
this.m_checkActivatedContextes.add(checkActivatedContext);
}
/**
* @param attr
*/
private void fillCheckAttribute(Map<String, String> attr) {
for (Entry<String, String> e : attr.entrySet()) {
CheckAttributeDTO chkAttr = new CheckAttributeDTO();
chkAttr.setName(e.getKey());
chkAttr.setValue(e.getValue());
m_checkAttributes.add(chkAttr);
}
}
/**
* @param contexts
*/
private void fillCheckContext(Map<String, Boolean> contexts) {
for (Entry<String, Boolean> e : contexts.entrySet()) {
CheckActivatedContextDTO chkConf = new CheckActivatedContextDTO();
chkConf.setClazz(e.getKey());
Object obj = e.getValue();
if (obj instanceof BigDecimal) {
BigDecimal bd = (BigDecimal)obj;
chkConf.setActive(bd.equals(BigDecimal.ONE) ? true : false);
} else {
chkConf.setActive(e.getValue());
}
m_checkActivatedContextes.add(chkConf);
}
}
}