1
0
mirror of https://github.com/octoleo/plantuml-server.git synced 2024-06-02 00:20:48 +00:00
plantuml-server/src/main/java/net/sourceforge/plantuml/pstat/tick/CounterSetString.java
2013-12-17 19:21:22 +01:00

147 lines
4.7 KiB
Java

/* ========================================================================
* PlantUML : a free UML diagram generator
* ========================================================================
*
* Project Info: http://plantuml.sourceforge.net
*
* This file is part of PlantUML.
*
* PlantUML is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* PlantUML 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 Lesser General Public
* License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA.
*/
package net.sourceforge.plantuml.pstat.tick;
import java.util.Map;
import java.util.TreeMap;
import net.sourceforge.plantuml.pstat.graph.Chart;
import net.sourceforge.plantuml.pstat.graph.HistoList;
public class CounterSetString {
private final Map<String, Integer> language = new TreeMap<String, Integer>();
private final Map<String, Integer> host = new TreeMap<String, Integer>();
private final Map<String, Integer> operationSystem = new TreeMap<String, Integer>();
private final Map<String, Integer> browser = new TreeMap<String, Integer>();
private final Map<String, Integer> referer = new TreeMap<String, Integer>();
private final Map<String, Integer> type = new TreeMap<String, Integer>();
private final Map<String, Integer> incomming = new TreeMap<String, Integer>();
private final Map<String, Integer> country = new TreeMap<String, Integer>();
public void increment(TickImageGeneration tick) {
increment(language, tick.getAcceptLanguage());
increment(host, tick.getHost());
increment(operationSystem, tick.getOperatingSystem());
increment(browser, tick.getBrowser());
increment(referer, tick.getReferer());
increment(type, tick.getType());
increment(incomming, tick.getIncomming());
increment(country, tick.getCountry());
}
private void increment(Map<String, Integer> data, String s) {
final Integer v = data.get(s);
if (v == null) {
data.put(s, 1);
} else {
data.put(s, v + 1);
}
}
public String getTitle() {
return "language.getTitle()";
}
public Chart getChartLanguage(double height) {
return getChart(height, language);
}
public Chart getChartHost(double height) {
return getChart(height, host);
}
public Chart getChartOperationSystem(double height) {
return getChart(height, operationSystem);
}
public Chart getChartBrowser(double height) {
return getChart(height, browser);
}
public Chart getChartReferer(double height) {
return getChart(height, referer);
}
public Chart getChartType(double height) {
return getChart(height, type);
}
public Chart getChartIncomming(double height) {
return getChart(height, incomming);
}
private Chart getChart(double height, Map<String, Integer> counter) {
final Chart chart = new Chart(height);
for (Map.Entry<String, Integer> ent : counter.entrySet()) {
final String s = ent.getKey();
if ("??".equals(s)) {
continue;
}
chart.addData(s, ent.getValue());
}
chart.compact();
return chart;
}
public Chart getChartRefererOther(double height) {
final Chart chart = new Chart(height);
for (Map.Entry<String, Integer> ent : referer.entrySet()) {
final String s = ent.getKey();
if ("??".equals(s) || "http://www.plantuml.com".equals(s) || "http://plantuml.com".equals(s)
|| "http://plantuml.sourceforge.net".equals(s) || "Other".equals(s)) {
continue;
}
chart.addData(s, ent.getValue());
}
chart.removeBig(0.5);
return chart;
}
public HistoList getHistoListReferer(double graphWidth, double singleBarHeight, int fontSize) {
final HistoList chart = new HistoList(graphWidth, singleBarHeight, fontSize);
for (Map.Entry<String, Integer> ent : referer.entrySet()) {
final String s = ent.getKey();
if ("??".equals(s)) {
continue;
}
chart.addData(s, ent.getValue());
}
return chart;
}
public HistoList getHistoListCountry(double graphWidth, double singleBarHeight, int fontSize) {
final HistoList chart = new HistoList(graphWidth, singleBarHeight, fontSize);
for (Map.Entry<String, Integer> ent : country.entrySet()) {
final String s = ent.getKey();
if ("??".equals(s)) {
continue;
}
chart.addData(s, ent.getValue());
}
return chart;
}
}