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 }