001 package org.hackystat.telemetry.analyzer.evaluator; 002 003 import java.util.ArrayList; 004 import java.util.Collections; 005 import java.util.List; 006 007 import org.hackystat.telemetry.analyzer.language.ast.TelemetryReportDefinition; 008 009 /** 010 * The evaluation result after resolving a telemetry report definition. 011 * 012 * @author (Cedric) Qin Zhang 013 */ 014 public class TelemetryReportObject { 015 016 private TelemetryReportDefinition definition; 017 private List<TelemetryChartObject> chartObjects = 018 new ArrayList<TelemetryChartObject>(); 019 020 /** 021 * Constructs this instance. 022 * 023 * @param definition The telemetry report definition. 024 */ 025 TelemetryReportObject(TelemetryReportDefinition definition) { 026 this.definition = definition; 027 } 028 029 /** 030 * Gets the telemetry report definition. 031 * 032 * @return The telemetry report definiton. 033 */ 034 public TelemetryReportDefinition getTelemetryReportDefinition() { 035 return this.definition; 036 } 037 038 /** 039 * Adds a telemetry chart object. 040 * 041 * @param chartObject The telemetry chart object to be added. 042 */ 043 void addChartObject(TelemetryChartObject chartObject) { 044 this.chartObjects.add(chartObject); 045 } 046 047 /** 048 * Gets a read-only list of all charts. 049 * 050 * @return A read-only list containing <code>TelemetryChartObject</code> objects. 051 */ 052 public List<TelemetryChartObject> getChartObjects() { 053 return Collections.unmodifiableList(this.chartObjects); 054 } 055 }