View Javadoc

1   /* ============================================================
2    * JRobin : Pure java implementation of RRDTool's functionality
3    * ============================================================
4    *
5    * Project Info:  http://www.jrobin.org
6    * Project Lead:  Sasa Markovic (saxon@jrobin.org)
7    *
8    * Developers:    Sasa Markovic (saxon@jrobin.org)
9    *
10   *
11   * (C) Copyright 2003-2005, by Sasa Markovic.
12   *
13   * This library is free software; you can redistribute it and/or modify it under the terms
14   * of the GNU Lesser General Public License as published by the Free Software Foundation;
15   * either version 2.1 of the License, or (at your option) any later version.
16   *
17   * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
18   * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19   * See the GNU Lesser General Public License for more details.
20   *
21   * You should have received a copy of the GNU Lesser General Public License along with this
22   * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
23   * Boston, MA 02111-1307, USA.
24   */
25  package org.jrobin.graph;
26  
27  import java.util.ArrayList;
28  import java.util.List;
29  
30  /**
31   * Class to represent successfully created JRobin graph. Objects of this class are created by method
32   * {@link RrdGraph#getRrdGraphInfo()}.
33   */
34  public class RrdGraphInfo {
35  	String filename;
36  	int width, height;
37  	byte[] bytes;
38  	String imgInfo;
39  	private List<String> printLines = new ArrayList<String>();
40  
41  	RrdGraphInfo() {
42  		// cannot instantiate this class
43  	}
44  
45  	void addPrintLine(String printLine) {
46  		printLines.add(printLine);
47  	}
48  
49  	/**
50  	 * Returns filename of the graph
51  	 *
52  	 * @return filename of the graph. '-' denotes in-memory graph (no file created)
53  	 */
54  	public String getFilename() {
55  		return filename;
56  	}
57  
58  	/**
59  	 * Returns total graph width
60  	 *
61  	 * @return total graph width
62  	 */
63  	public int getWidth() {
64  		return width;
65  	}
66  
67  	/**
68  	 * Returns total graph height
69  	 *
70  	 * @return total graph height
71  	 */
72  	public int getHeight() {
73  		return height;
74  	}
75  
76  	/**
77  	 * Returns graph bytes
78  	 *
79  	 * @return Graph bytes
80  	 */
81  	public byte[] getBytes() {
82  		return bytes;
83  	}
84  
85  	/**
86  	 * Returns PRINT lines requested by {@link RrdGraphDef#print(String, String, String)} method.
87  	 *
88  	 * @return An array of formatted PRINT lines
89  	 */
90  	public String[] getPrintLines() {
91  		return printLines.toArray(new String[printLines.size()]);
92  	}
93  
94  	/**
95  	 * Returns image information requested by {@link RrdGraphDef#setImageInfo(String)} method
96  	 *
97  	 * @return Image information
98  	 */
99  	public String getImgInfo() {
100 		return imgInfo;
101 	}
102 
103 	/**
104 	 * Returns the number of bytes in the graph file
105 	 *
106 	 * @return Length of the graph file
107 	 */
108 	public int getByteCount() {
109 		return bytes != null ? bytes.length : 0;
110 	}
111 
112 	/**
113 	 * Dumps complete graph information. Useful for debugging purposes.
114 	 *
115 	 * @return String containing complete graph information
116 	 */
117 	public String dump() {
118 		StringBuffer b = new StringBuffer();
119 		b.append("filename = \"").append(getFilename()).append("\"\n");
120 		b.append("width = ").append(getWidth()).append(", height = ").append(getHeight()).append("\n");
121 		b.append("byteCount = ").append(getByteCount()).append("\n");
122 		b.append("imginfo = \"").append(getImgInfo()).append("\"\n");
123 		String[] plines = getPrintLines();
124 		if (plines.length == 0) {
125 			b.append("No print lines found\n");
126 		}
127 		else {
128 			for (int i = 0; i < plines.length; i++) {
129 				b.append("print[").append(i).append("] = \"").append(plines[i]).append("\"\n");
130 			}
131 		}
132 		return b.toString();
133 	}
134 }