1 /* Open Source Java Caching Service 2 * Copyright (C) 2002 Frank Karlstrøm 3 * This library is free software; you can redistribute it and/or 4 * modify it under the terms of the GNU Lesser General Public 5 * License as published by the Free Software Foundation; either 6 * version 2.1 of the License, or (at your option) any later version. 7 * 8 * This library is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 * Lesser General Public License for more details. 12 * 13 * You should have received a copy of the GNU Lesser General Public 14 * License along with this library; if not, write to the Free Software 15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 16 * 17 * The author can be contacted by email: fjankk@users.sourceforge.net 18 */ 19 package org.fjank.jcache.distribution; 20 21 /** 22 * User: Philippe 23 * Date: Jun 7, 2004 24 * Time: 11:41:36 PM 25 */ 26 27 import java.io.Serializable; 28 29 /** 30 * A notification message that holds information about a cache event. This 31 * class is <code>Serializable</code> to allow it to be sent across the 32 * network to other machines running in a cluster. 33 * 34 * @author <a href="mailto:chris@swebtec.com">Philippe Fajeau</a> 35 */ 36 public class ClusterNotification implements Serializable 37 { 38 public static final int OBJECT_UPDATED = 1; 39 public static final int OBJECT_ADDED = 2; 40 public static final int OBJECT_INVALIDATED = 3; 41 42 /** 43 * Any additional data that may be required 44 */ 45 protected Serializable data; 46 47 /** 48 * The type of notification message. 49 */ 50 protected int type; 51 52 protected String region; 53 protected String group; 54 55 /** 56 * Creates a new notification message object to broadcast to other 57 * listening nodes in the cluster. 58 * 59 * @param type The type of notification message. 60 * @param data Specifies the object key or group name to flush. 61 */ 62 public ClusterNotification(String region, 63 String group, 64 int type, 65 Serializable data) 66 { 67 this.type = type; 68 this.data = data; 69 this.region = region; 70 this.group = group; 71 } 72 73 /** 74 * Holds any additional data that was required 75 */ 76 public Serializable getData() 77 { 78 return data; 79 } 80 81 /** 82 * The type of notification message. 83 */ 84 public int getType() 85 { 86 return type; 87 } 88 89 public String getRegionName() 90 { 91 return region; 92 } 93 94 public String getGroupName() 95 { 96 return group; 97 } 98 99 public String toString() 100 { 101 StringBuffer buf = new StringBuffer(); 102 buf.append("type=").append(type).append(", data=").append(data); 103 104 return buf.toString(); 105 } 106 } 107