1 /* =========================================================== 2 * JFreeChart : a free chart library for the Java(tm) platform 3 * =========================================================== 4 * 5 * (C) Copyright 2000-2013, by Object Refinery Limited and Contributors. 6 * 7 * Project Info: http://www.jfree.org/jfreechart/index.html 8 * 9 * This library is free software; you can redistribute it and/or modify it 10 * under the terms of the GNU Lesser General Public License as published by 11 * the Free Software Foundation; either version 2.1 of the License, or 12 * (at your option) any later version. 13 * 14 * This library is distributed in the hope that it will be useful, but 15 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 16 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 17 * License for more details. 18 * 19 * You should have received a copy of the GNU Lesser General Public 20 * License along with this library; if not, write to the Free Software 21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 22 * USA. 23 * 24 * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 25 * Other names may be trademarks of their respective owners.] 26 * 27 * ------------------------- 28 * ChartChangeEventType.java 29 * ------------------------- 30 * (C) Copyright 2005-2008, by Object Refinery Limited. 31 * 32 * Original Author: David Gilbert (for Object Refinery Limited); 33 * Contributor(s): -; 34 * 35 * Changes: 36 * -------- 37 * 18-Feb-2005 : Version 1 (DG); 38 * 39 */ 40 41 package org.jfree.chart.event; 42 43 import java.io.ObjectStreamException; 44 import java.io.Serializable; 45 46 /** 47 * Defines tokens used to indicate an event type. 48 */ 49 public final class ChartChangeEventType implements Serializable { 50 51 /** For serialization. */ 52 private static final long serialVersionUID = 5481917022435735602L; 53 54 /** GENERAL. */ 55 public static final ChartChangeEventType GENERAL 56 = new ChartChangeEventType("ChartChangeEventType.GENERAL"); 57 58 /** NEW_DATASET. */ 59 public static final ChartChangeEventType NEW_DATASET 60 = new ChartChangeEventType("ChartChangeEventType.NEW_DATASET"); 61 62 /** DATASET_UPDATED. */ 63 public static final ChartChangeEventType DATASET_UPDATED 64 = new ChartChangeEventType("ChartChangeEventType.DATASET_UPDATED"); 65 66 /** The name. */ 67 private String name; 68 69 /** 70 * Private constructor. 71 * 72 * @param name the name. 73 */ ChartChangeEventType(String name)74 private ChartChangeEventType(String name) { 75 this.name = name; 76 } 77 78 /** 79 * Returns a string representing the object. 80 * 81 * @return The string. 82 */ 83 @Override toString()84 public String toString() { 85 return this.name; 86 } 87 88 /** 89 * Returns <code>true</code> if this object is equal to the specified 90 * object, and <code>false</code> otherwise. 91 * 92 * @param obj the object (<code>null</code> permitted). 93 * 94 * @return A boolean. 95 */ 96 @Override equals(Object obj)97 public boolean equals(Object obj) { 98 if (this == obj) { 99 return true; 100 } 101 if (!(obj instanceof ChartChangeEventType)) { 102 return false; 103 } 104 ChartChangeEventType that = (ChartChangeEventType) obj; 105 if (!this.name.equals(that.toString())) { 106 return false; 107 } 108 return true; 109 } 110 111 /** 112 * Returns a hash code value for the object. 113 * 114 * @return The hashcode 115 */ 116 @Override hashCode()117 public int hashCode() { 118 return this.name.hashCode(); 119 } 120 121 /** 122 * Ensures that serialization returns the unique instances. 123 * 124 * @return The object. 125 * 126 * @throws ObjectStreamException if there is a problem. 127 */ readResolve()128 private Object readResolve() throws ObjectStreamException { 129 if (this.equals(ChartChangeEventType.GENERAL)) { 130 return ChartChangeEventType.GENERAL; 131 } 132 else if (this.equals(ChartChangeEventType.NEW_DATASET)) { 133 return ChartChangeEventType.NEW_DATASET; 134 } 135 else if (this.equals(ChartChangeEventType.DATASET_UPDATED)) { 136 return ChartChangeEventType.DATASET_UPDATED; 137 } 138 return null; 139 } 140 141 } 142