/** * Copyright (C) 2008-2010, Squale Project - http://www.squale.org * * This file is part of Squale. * * Squale is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation, either version 3 of the * License, or any later version. * * Squale is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with Squale. If not, see <http://www.gnu.org/licenses/>. */ package org.squale.squalecommon.datatransfertobject.rule; import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.Iterator; /** * Grille qualit� Seules les informations de premier niveau de la grille sont disponibles */ public class QualityGridDTO implements Serializable, Comparable { /** Date de mise � jour */ private Date mUpdateDate; /** Facteurs associ�s */ private Collection mFactors; /** * Identifiant (au sens technique) de l'objet */ private long mId; /** Nom de la grille */ private String mName; /** * @return id */ public long getId() { return mId; } /** * @param pId id */ public void setId( long pId ) { mId = pId; } /** * @return nom */ public String getName() { return mName; } /** * @param pName nom */ public void setName( String pName ) { mName = pName; } /** * @return facteurs */ public Collection getFactors() { return mFactors; } /** * @param pCollection facteurs */ public void setFactors( Collection pCollection ) { mFactors = pCollection; } /** * Comparaison sur l'id des objets * * @param obj le QualityGridDTO � comparer * @return le r�sultat de la comparaison des ids * @see java.lang.Object#equals(java.lang.Object) */ public boolean equals( Object obj ) { if ( obj instanceof QualityGridDTO ) { return ( (QualityGridDTO) obj ).getId() == getId(); } else { return super.equals( obj ); } } /** * (non-Javadoc) * * @see java.lang.Object#hashCode() */ public int hashCode() { return (int) getId(); } /** * (non-Javadoc) * * @see java.lang.Comparable#compareTo(java.lang.Object) */ public int compareTo( Object o ) { int result = 0; // On fait le test sur l'id ce qui est suffisant // pour qualifier la grille if ( o instanceof QualityGridDTO ) { QualityGridDTO grid = (QualityGridDTO) o; if ( getId() > grid.getId() ) { result = 1; } else if ( getId() < grid.getId() ) { result = -1; } } return result; } /** * @return date de mise � jour */ public Date getUpdateDate() { return mUpdateDate; } /** * @param pDate date de mise � jour */ public void setUpdateDate( Date pDate ) { mUpdateDate = pDate; } /** * @return la liste des crit�res d�finis pour cette grille */ public Collection listAllCriteria() { Collection criteriaColl = new ArrayList( 0 ); if ( mFactors != null ) { Iterator factorsIt = mFactors.iterator(); while ( factorsIt.hasNext() ) { FactorRuleDTO factor = (FactorRuleDTO) factorsIt.next(); if ( factor != null && factor.getCriteria() != null ) { criteriaColl.addAll( factor.getCriteria().keySet() ); } } } return criteriaColl; } /** * @return la liste des pratiques d�finies pour cette grille */ public Collection listAllPractices() { Collection criteriaColl = listAllCriteria(); Collection practicesColl = new ArrayList( 0 ); Iterator criteriumIt = criteriaColl.iterator(); while ( criteriumIt.hasNext() ) { CriteriumRuleDTO criterium = (CriteriumRuleDTO) criteriumIt.next(); if ( criterium != null && criterium.getPractices() != null ) { criteriaColl.addAll( criterium.getPractices().keySet() ); } } return practicesColl; } }