| /*========================================================================= |
| * Copyright (c) 2010-2014 Pivotal Software, Inc. All Rights Reserved. |
| * This product is protected by U.S. and international copyright |
| * and intellectual property laws. Pivotal products are covered by |
| * one or more patents listed at http://www.pivotal.io/patents. |
| *========================================================================= |
| */ |
| //package com.gemstone.gemfire.cache.query.data;
|
| package javaobject;
|
|
|
|
|
| import java.util.*;
|
| import java.io.*;
|
| import com.gemstone.gemfire.*; // for DataSerializable
|
| import com.gemstone.gemfire.cache.Declarable;
|
|
|
|
|
| public class DefaultCacheable implements Declarable,Serializable, DataSerializable {
|
|
|
| public boolean m_bool;
|
| public int m_int;
|
| public int[] m_intArray;
|
| public String m_fileName;
|
| public String m_string;
|
| public String[] m_stringArray;
|
| public HashSet m_hashset;
|
| public HashMap<String, String> m_hashmap;
|
| public Date m_date;
|
| public Vector m_vector;
|
| public byte[] m_object;
|
|
|
| private boolean m_initialized = false;
|
|
|
| /**
|
| * Initializes an instance of <code>Portfolio</code> from a
|
| * <code>Properties</code> object assembled from data residing in a
|
| * <code>cache.xml</code> file.
|
| */
|
| public void init(Properties props) {
|
| m_bool = true;
|
| m_int = 1000;
|
| m_intArray = new int[3];
|
| m_intArray[0] = 1;
|
| m_intArray[1] = 2;
|
| m_intArray[2] = 3;
|
| m_fileName = "gemstone.txt";
|
| m_string = "asciistring";
|
| m_stringArray = new String[2];
|
| m_stringArray[0] = "one";
|
| m_stringArray[1] = "two";
|
| m_hashset = new HashSet();
|
| m_hashset.add("first");
|
| m_hashset.add("second");
|
| m_hashmap = new HashMap<String, String>();
|
| m_hashmap.put("key-hm", "value-hm");
|
| m_date = new Date();
|
| m_vector = new Vector();
|
| m_object = new byte[100];
|
| }
|
|
|
| public DefaultCacheable select(){
|
| return this;
|
| }
|
| public boolean getBool() {
|
| return m_bool;
|
| }
|
|
|
| public int getInt() {
|
| return m_int;
|
| }
|
| public int[] getIntArray() {
|
| return m_intArray;
|
| }
|
|
|
| public String getFileName() {
|
| return m_fileName;
|
| }
|
|
|
| public String getString() {
|
| return m_string;
|
| }
|
|
|
| public String [] getStringArray() {
|
| return m_stringArray;
|
| }
|
|
|
| public HashSet getHashSet() {
|
| return m_hashset;
|
| }
|
|
|
| public HashMap getHashMap() {
|
| return m_hashmap;
|
| }
|
|
|
| public Date getDate() {
|
| return m_date;
|
| }
|
|
|
| public Vector getVector() {
|
| return m_vector;
|
| }
|
|
|
| public byte [] getObject() {
|
| return m_object;
|
| }
|
|
|
| static {
|
| Instantiator.register(new Instantiator(DefaultCacheable.class, (byte) 4) {
|
| public DataSerializable newInstance() {
|
| return new DefaultCacheable();
|
| }
|
| });
|
| }
|
|
|
| /* public no-arg constructor required for Deserializable */
|
| public DefaultCacheable() {
|
| }
|
|
|
| public DefaultCacheable(boolean initialized) {
|
| if (initialized) {
|
| m_initialized = true;
|
| m_bool = true;
|
| m_int = 1000;
|
| m_intArray = new int[3];
|
| m_intArray[0] = 1;
|
| m_intArray[1] = 2;
|
| m_intArray[2] = 3;
|
| m_fileName = "gemstone.txt";
|
| m_string = "asciistring";
|
| m_stringArray = new String[2];
|
| m_stringArray[0] = "one";
|
| m_stringArray[1] = "two";
|
| m_hashset = new HashSet();
|
| m_hashset.add("first");
|
| m_hashset.add("second");
|
| m_hashmap = new HashMap<String, String>();
|
| m_hashmap.put("key-hm", "value-hm");
|
| m_date = new Date();
|
| m_vector = new Vector();
|
| m_vector.add("one-vec");
|
| m_vector.add("two-vec");
|
| m_object = new byte[100];
|
| }
|
| }
|
|
|
| public String toString() {
|
| String out = "DefaultCacehable [m_bool=" + m_bool + "\n "
|
| + "m_int" + m_int + "\n"
|
| +"m_fileName" +m_fileName + "\n"
|
| +"m_string" + m_string + "\n" ;
|
| return out + "\n]";
|
| }
|
|
|
| public static void writeHashmap( DataOutput output, HashMap map ) throws IOException
|
| {
|
| output.writeInt( map.size() );
|
| for (Iterator iter = map.entrySet().iterator();iter.hasNext();) {
|
| Map.Entry entry = (Map.Entry) iter.next();
|
| String mykey = (String)entry.getKey();
|
| DataSerializer.writeString(mykey,output);
|
| DataSerializer.writeObject(entry.getValue(),output);
|
| }
|
| }
|
|
|
| public static HashMap readHashmap( DataInput input ) throws IOException, ClassNotFoundException
|
| {
|
| HashMap map = new HashMap( );
|
| int mapSize = input.readInt();
|
| for (int i = 0; i < mapSize; i++) {
|
| String key = DataSerializer.readString(input);
|
| Position pos = (Position)DataSerializer.readObject(input);
|
| map.put(key,pos);
|
| }
|
| return map;
|
| }
|
|
|
| public void fromData(DataInput in) throws IOException, ClassNotFoundException {
|
| m_bool = in.readBoolean();
|
| m_int = in.readInt();
|
| m_intArray = DataSerializer.readIntArray(in);
|
| //m_fileName = (String)DataSerializer.readString(in);
|
| //m_string = (String)DataSerializer.readString(in);
|
| m_stringArray = (String [])DataSerializer.readStringArray(in);
|
| m_hashset = (HashSet)DataSerializer.readHashSet(in);
|
| m_hashmap = (HashMap)DataSerializer.readHashMap(in);
|
| m_date = (Date)DataSerializer.readDate(in);
|
| m_vector = (Vector)DataSerializer.readVector(in);
|
| m_object = (byte[])DataSerializer.readByteArray(in);
|
| }
|
|
|
| public void toData(DataOutput out) throws IOException {
|
| out.writeBoolean(m_bool);
|
| out.writeInt(m_int);
|
| DataSerializer.writeIntArray(m_intArray, out);
|
| //DataSerializer.writeString(m_fileName,out);
|
| //DataSerializer.writeString(m_string,out);
|
| DataSerializer.writeStringArray(m_stringArray,out);
|
| DataSerializer.writeHashSet(m_hashset, out);
|
| DataSerializer.writeHashMap(m_hashmap, out);
|
| DataSerializer.writeDate(m_date, out);
|
| DataSerializer.writeVector(m_vector, out);
|
| DataSerializer.writeByteArray(m_object, out);
|
| }
|
|
|
| public static boolean compareForEquals(Object first, Object second) {
|
| if (first == null && second == null) return true;
|
| if (first != null && first.equals(second)) return true;
|
| return false;
|
| }
|
|
|
| public boolean equals(Object other) {
|
| if (other==null) return false;
|
| if (!(other instanceof DefaultCacheable)) return false;
|
|
|
| DefaultCacheable dc = (DefaultCacheable) other;
|
|
|
| if (this.m_bool != dc.getBool()) return false;
|
|
|
| return true;
|
| }
|
|
|
| public int hashCode() {
|
| return this.getInt();
|
| }
|
| }
|
|
|
|
|