package com.vistatec.ocelot.lqi.model; import java.util.ArrayList; import java.util.List; /** * The LQI grid object. */ public class LQIGrid { /** List of severities. */ private List<LQISeverity> severities; /** List of error categories. */ private List<LQIErrorCategory> errorCategories; /** * Gets the list of error categories. * * @return the list of error categories. */ public List<LQIErrorCategory> getErrorCategories() { return errorCategories; } /** * Sets the list of error categories. * * @param errorCategories * the list of error categories. */ public void setErrorCategories(List<LQIErrorCategory> errorCategories) { this.errorCategories = errorCategories; } /** * Gets the list of severities. * * @return the list of severities. */ public List<LQISeverity> getSeverities() { return severities; } /** * Sets the list of severities. * * @param severities * the list of severities. */ public void setSeverities(List<LQISeverity> severities) { this.severities = severities; } /* * (non-Javadoc) * * @see java.lang.Object#clone() */ @Override public Object clone() throws CloneNotSupportedException { LQIGrid clonedGrid = new LQIGrid(); if (severities != null) { List<LQISeverity> clonedSeverities = new ArrayList<LQISeverity>(); for (LQISeverity severity : severities) { clonedSeverities.add((LQISeverity) severity.clone()); } clonedGrid.setSeverities(clonedSeverities); } if (errorCategories != null) { List<LQIErrorCategory> clonedCategories = new ArrayList<LQIErrorCategory>(); for (LQIErrorCategory currCat : errorCategories) { clonedCategories.add(currCat.clone(severities)); } clonedGrid.setErrorCategories(clonedCategories); } return clonedGrid; } /** * Checks if this LQI grid is empty. * * @return <code>true</code> if it is empty; <code>false</code> otherwise */ public boolean isEmpty() { return (errorCategories == null || errorCategories.isEmpty()) && (severities == null || severities.isEmpty()); } /** * Gets the severity score for a specific severity. * @param severityName the severity name. * @return the severity score. */ public double getSeverityScore(String severityName) { double score = 0; if (severities != null) { for (LQISeverity sev : severities) { if (sev.getName().equals(severityName)) { score = sev.getScore(); break; } } } return score; } /** * Sets the severity score for a specific severity. * @param severityName the severity name. * @param score the severity score. */ public void setSeverityScore(String severityName, double score) { if (severities != null) { for (LQISeverity sev : severities) { if (sev.getName().equals(severityName)) { sev.setScore(score); break; } } } } /** * Gets the severity having a specific name. * @param severityName the severity name. * @return the severity. */ public LQISeverity getSeverity(String severityName) { LQISeverity severity = null; if (severities != null) { for (LQISeverity sev : severities) { if (sev.getName().equals(severityName)) { severity = sev; break; } } } return severity; } }