001 /*
002 * Sonar, open source software quality management tool.
003 * Copyright (C) 2009 SonarSource SA
004 * mailto:contact AT sonarsource DOT com
005 *
006 * Sonar is free software; you can redistribute it and/or
007 * modify it under the terms of the GNU Lesser General Public
008 * License as published by the Free Software Foundation; either
009 * version 3 of the License, or (at your option) any later version.
010 *
011 * Sonar is distributed in the hope that it will be useful,
012 * but WITHOUT ANY WARRANTY; without even the implied warranty of
013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014 * Lesser General Public License for more details.
015 *
016 * You should have received a copy of the GNU Lesser General Public
017 * License along with Sonar; if not, write to the Free Software
018 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02
019 */
020 package org.sonar.api.batch;
021
022 import org.sonar.api.measures.Metric;
023 import org.sonar.api.resources.Resource;
024
025 import java.util.Arrays;
026 import java.util.Date;
027 import java.util.List;
028
029 /**
030 * @since 1.10
031 */
032 public class TimeMachineQuery {
033
034 private Resource resource;
035 private List<Metric> metrics;
036 private Date from;
037 private Date to;
038 private boolean onlyLastAnalysis = false;
039 private boolean fromCurrentAnalysis = false;
040 private boolean toCurrentAnalysis = false;
041
042 public TimeMachineQuery(Resource resource) {
043 this.resource = resource;
044 }
045
046 public Resource getResource() {
047 return resource;
048 }
049
050 public TimeMachineQuery setResource(Resource resource) {
051 this.resource = resource;
052 return this;
053 }
054
055 public List<Metric> getMetrics() {
056 return metrics;
057 }
058
059 public TimeMachineQuery setMetrics(List<Metric> metrics) {
060 this.metrics = metrics;
061 return this;
062 }
063
064 public TimeMachineQuery setMetrics(Metric... metrics) {
065 this.metrics = Arrays.asList(metrics);
066 return this;
067 }
068
069 public TimeMachineQuery unsetMetrics() {
070 this.metrics = null;
071 return this;
072 }
073
074 public Date getFrom() {
075 return from;
076 }
077
078 public TimeMachineQuery setFrom(Date from) {
079 this.from = from;
080 return this;
081 }
082
083 public TimeMachineQuery setFromCurrentAnalysis(boolean b) {
084 this.fromCurrentAnalysis = b;
085 return this;
086 }
087
088 public TimeMachineQuery setToCurrentAnalysis(boolean b) {
089 this.toCurrentAnalysis = b;
090 return this;
091 }
092
093 public boolean isFromCurrentAnalysis() {
094 return fromCurrentAnalysis;
095 }
096
097 public boolean isToCurrentAnalysis() {
098 return toCurrentAnalysis;
099 }
100
101 public Date getTo() {
102 return to;
103 }
104
105 public TimeMachineQuery setTo(Date to) {
106 this.to = to;
107 return this;
108 }
109
110 public boolean isOnlyLastAnalysis() {
111 return onlyLastAnalysis;
112 }
113
114 public TimeMachineQuery setOnlyLastAnalysis(boolean onlyLastAnalysis) {
115 this.onlyLastAnalysis = onlyLastAnalysis;
116 return this;
117 }
118 }