All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.geode.pdx.PdxReader Maven / Gradle / Ivy

/*
 * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
 * agreements. See the NOTICE file distributed with this work for additional information regarding
 * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance with the License. You may obtain a
 * copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License
 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and limitations under
 * the License.
 */
package org.apache.geode.pdx;

import java.util.Date;

/**
 * A PdxReader will be passed to {@link PdxSerializable#fromData(PdxReader) fromData} or
 * {@link PdxSerializer#fromData(Class, PdxReader) PdxSerializer fromData} by GemFire during
 * deserialization of a PDX. The domain class needs to deserialize field members using this
 * interface. This interface is implemented by GemFire. Each readXXX call will return the field's
 * value. If the serialized PDX does not contain the named field then a default value will be
 * returned. Standard Java defaults are used. For Objects this is null and for
 * primitives it is 0 or 0.0.
 * 

* You must read fields in the same order they were written by {@link PdxWriter}. *

* The methods on this interface are not thread safe so do not call them concurrently, on the same * instance, from more than one thread. * * @since GemFire 6.6 */ public interface PdxReader { /** * Reads the named field and returns its value. * * @param fieldName the name of the field to read * @return the value of the field if the field exists; otherwise a default value * @throws PdxFieldTypeMismatchException if the named field exists and is not a char * field. * @throws PdxSerializationException if deserialization of the field fails. */ public char readChar(String fieldName); /** * Reads the named field and returns its value. * * @param fieldName the name of the field to read * @return the value of the field if the field exists; otherwise a default value * @throws PdxFieldTypeMismatchException if the named field exists and is not a * boolean field. * @throws PdxSerializationException if deserialization of the field fails. */ public boolean readBoolean(String fieldName); /** * Reads the named field and returns its value. * * @param fieldName the name of the field to read * @return the value of the field if the field exists; otherwise a default value * @throws PdxFieldTypeMismatchException if the named field exists and is not a byte * field. * @throws PdxSerializationException if deserialization of the field fails. */ public byte readByte(String fieldName); /** * Reads the named field and returns its value. * * @param fieldName the name of the field to read * @return the value of the field if the field exists; otherwise a default value * @throws PdxFieldTypeMismatchException if the named field exists and is not a short * field. * @throws PdxSerializationException if deserialization of the field fails. */ public short readShort(String fieldName); /** * Reads the named field and returns its value. * * @param fieldName the name of the field to read * @return the value of the field if the field exists; otherwise a default value * @throws PdxFieldTypeMismatchException if the named field exists and is not a int * field. * @throws PdxSerializationException if deserialization of the field fails. */ public int readInt(String fieldName); /** * Reads the named field and returns its value. * * @param fieldName the name of the field to read * @return the value of the field if the field exists; otherwise a default value * @throws PdxFieldTypeMismatchException if the named field exists and is not a long * field. * @throws PdxSerializationException if deserialization of the field fails. */ public long readLong(String fieldName); /** * Reads the named field and returns its value. * * @param fieldName the name of the field to read * @return the value of the field if the field exists; otherwise a default value * @throws PdxFieldTypeMismatchException if the named field exists and is not a float * field. * @throws PdxSerializationException if deserialization of the field fails. */ public float readFloat(String fieldName); /** * Reads the named field and returns its value. * * @param fieldName the name of the field to read * @return the value of the field if the field exists; otherwise a default value * @throws PdxFieldTypeMismatchException if the named field exists and is not a * double field. * @throws PdxSerializationException if deserialization of the field fails. */ public double readDouble(String fieldName); /** * Reads the named field and returns its value. * * @param fieldName the name of the field to read * @return the value of the field if the field exists; otherwise a default value * @throws PdxFieldTypeMismatchException if the named field exists and is not a * String field. * @throws PdxSerializationException if deserialization of the field fails. */ public String readString(String fieldName); /** * Reads the named field and returns its value. * * @param fieldName the name of the field to read * @return the value of the field if the field exists; otherwise a default value * @throws PdxSerializationException if deserialization of the field fails. * @throws PdxFieldTypeMismatchException if the named field exists and is not an * Object field. */ public Object readObject(String fieldName); /** * Reads the named field and returns its value. * * @param fieldName the name of the field to read * @return the value of the field if the field exists; otherwise a default value * @throws PdxSerializationException if deserialization of the field fails. * @throws PdxFieldTypeMismatchException if the named field exists and is not a * char[] field. */ public char[] readCharArray(String fieldName); /** * Reads the named field and returns its value. * * @param fieldName the name of the field to read * @return the value of the field if the field exists; otherwise a default value * @throws PdxSerializationException if deserialization of the field fails. * @throws PdxFieldTypeMismatchException if the named field exists and is not a * boolean[] field. */ public boolean[] readBooleanArray(String fieldName); /** * Reads the named field and returns its value. * * @param fieldName the name of the field to read * @return the value of the field if the field exists; otherwise a default value * @throws PdxSerializationException if deserialization of the field fails. * @throws PdxFieldTypeMismatchException if the named field exists and is not a * byte[] field. */ public byte[] readByteArray(String fieldName); /** * Reads the named field and returns its value. * * @param fieldName the name of the field to read * @return the value of the field if the field exists; otherwise a default value * @throws PdxSerializationException if deserialization of the field fails. * @throws PdxFieldTypeMismatchException if the named field exists and is not a * short[] field. */ public short[] readShortArray(String fieldName); /** * Reads the named field and returns its value. * * @param fieldName the name of the field to read * @return the value of the field if the field exists; otherwise a default value * @throws PdxSerializationException if deserialization of the field fails. * @throws PdxFieldTypeMismatchException if the named field exists and is not a int[] * field. */ public int[] readIntArray(String fieldName); /** * Reads the named field and returns its value. * * @param fieldName the name of the field to read * @return the value of the field if the field exists; otherwise a default value * @throws PdxSerializationException if deserialization of the field fails. * @throws PdxFieldTypeMismatchException if the named field exists and is not a * long[] field. */ public long[] readLongArray(String fieldName); /** * Reads the named field and returns its value. * * @param fieldName the name of the field to read * @return the value of the field if the field exists; otherwise a default value * @throws PdxSerializationException if deserialization of the field fails. * @throws PdxFieldTypeMismatchException if the named field exists and is not a * float[] field. */ public float[] readFloatArray(String fieldName); /** * Reads the named field and returns its value. * * @param fieldName the name of the field to read * @return the value of the field if the field exists; otherwise a default value * @throws PdxSerializationException if deserialization of the field fails. * @throws PdxFieldTypeMismatchException if the named field exists and is not a * double[] field. */ public double[] readDoubleArray(String fieldName); /** * Reads the named field and returns its value. * * @param fieldName the name of the field to read * @return the value of the field if the field exists; otherwise a default value * @throws PdxSerializationException if deserialization of the field fails. * @throws PdxFieldTypeMismatchException if the named field exists and is not a * String[] field. */ public String[] readStringArray(String fieldName); /** * Reads the named field and returns its value. * * @param fieldName the name of the field to read * @return the value of the field if the field exists; otherwise a default value * @throws PdxSerializationException if deserialization of the field fails. * @throws PdxFieldTypeMismatchException if the named field exists and is not a * Object[] field. */ public Object[] readObjectArray(String fieldName); /** * Reads the named field and returns its value. * * @param fieldName the name of the field to read * @return the value of the field if the field exists; otherwise a default value * @throws PdxSerializationException if deserialization of the field fails. * @throws PdxFieldTypeMismatchException if the named field exists and is not a * byte[][] field. */ public byte[][] readArrayOfByteArrays(String fieldName); /** * Reads the named field and returns its value. * * @param fieldName the name of the field to read * @return the value of the field if the field exists; otherwise a default value * @throws PdxSerializationException if deserialization of the field fails. * @throws PdxFieldTypeMismatchException if the named field exists and is not a Date * field. */ public Date readDate(String fieldName); /** * Checks if the named field exists and returns the result. *

* This can be useful when writing code that handles more than one version of a PDX class. * * @param fieldName the name of the field to check * @return true if the named field exists; otherwise false */ public boolean hasField(String fieldName); /** * Checks if the named field was {@link PdxWriter#markIdentityField(String) marked} as an identity * field. *

* Note that if no fields have been marked then all the fields are used as identity fields even * though this method will return false since none of them have been marked. * * @param fieldName the name of the field to check * @return true if the named field exists and was marked as an identify field; * otherwise false */ public boolean isIdentityField(String fieldName); /** * Reads the named field and returns its value. * * @param fieldName the name of the field to read * @return the value of the field if the field exists; otherwise a default value * @throws PdxSerializationException if deserialization of the field fails. */ public Object readField(String fieldName); /** * This method returns an object that represents all the unread fields which must be passed to * {@link PdxWriter#writeUnreadFields(PdxUnreadFields) writeUnreadFields} in the toData code. *

* Note that if {@link org.apache.geode.cache.CacheFactory#setPdxIgnoreUnreadFields(boolean) * setPdxIgnoreUnreadFields} or * {@link org.apache.geode.cache.client.ClientCacheFactory#setPdxIgnoreUnreadFields(boolean) * client setPdxIgnoreUnreadFields} are set to true then this method will always * return an object that has no unread fields. * * @return an object that represents the unread fields. */ public PdxUnreadFields readUnreadFields(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy