001    package org.hackystat.projectbrowser.page.sensordata;
002    
003    import java.io.Serializable;
004    import java.util.List;
005    
006    import org.hackystat.sensorbase.resource.projects.jaxb.MultiDayProjectSummary;
007    import org.hackystat.sensorbase.resource.projects.jaxb.Project;
008    import org.hackystat.sensorbase.resource.projects.jaxb.ProjectSummary;
009    
010    /**
011     * Provides a model for the summary of sdts and their counts. 
012     * @author Philip Johnson.
013     */
014    public class SdtSummaryModel implements Serializable {
015      
016      private static final long serialVersionUID = 1L;
017      private Project project = null;
018      private List<ProjectSummary> projectSummaries = null;
019        
020      /**
021       * The default constructor, required by Wicket. 
022       */
023      public SdtSummaryModel() {
024        // does nothing.
025      }
026    
027      /**
028       * Returns the list of ProjectSummary instances.
029       * @return The ProjectSummary instances. 
030       */
031      public List<ProjectSummary> getSummaryList() {
032        return this.projectSummaries;
033      }
034      
035      /**
036       * Return the Project for this page. 
037       * @return The project. 
038       */
039      public Project getProject() {
040        return this.project;
041      }
042      
043      /**
044       * Updates the SdtModel with the MultiDayProjectSummary instance. 
045       * @param summary The summary instance. 
046       * @param project The project for this summary.
047       */
048      public final void setModel(MultiDayProjectSummary summary, Project project) {
049        this.projectSummaries = summary.getProjectSummary();
050        this.project = project;
051      }
052      
053      /**
054       * True if this model contains no data.
055       * @return True if this model has no data. 
056       */
057      public boolean isEmpty() {
058        return this.project == null;
059      }
060    }