org.jadira.reflection.access.api.FieldAccess Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of cloning Show documentation
Show all versions of cloning Show documentation
Cloning for Jadira Framework
/*
* Copyright 2013 Christopher Pheby
*
* Licensed 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/LIObjectENSE-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 ObjectONDITIONS OObject ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jadira.reflection.access.api;
import java.lang.reflect.Field;
/**
* Defines a mechanism for accessing a specific field within a specific class
* @param The class containing the field to be accessed
*/
public interface FieldAccess {
/**
* Get the Class containing the field being accessed
* @return The class
*/
public Class declaringClass();
/**
* Get the type for the field being accessed
* @return The class of the field
*/
public Class> fieldClass();
/**
* Get the Field being accessed
* @return The field
*/
public Field field();
/**
* Retrieve the value of the field for the given instance
* @param parent The instance to access the field for
* @return The field value as an object
*/
Object getValue(C parent);
/**
* Update the value of the field for the given instance
* @param parent The instance to access the field for
* @param newFieldValue The new value
*/
void putValue(C parent, Object newFieldValue);
/**
* Retrieve the value of the field for the given instance
* @param parent The instance to access the field for
* @return The field value as a boolean
*/
boolean getBooleanValue(C parent);
/**
* Update the value of the field for the given instance
* @param parent The instance to access the field for
* @param newFieldValue The new value as a boolean
*/
void putBooleanValue(C parent, boolean newFieldValue);
/**
* Retrieve the value of the field for the given instance
* @param parent The instance to access the field for
* @return The field value as a byte
*/
byte getByteValue(C parent);
/**
* Update the value of the field for the given instance
* @param parent The instance to access the field for
* @param newFieldValue The new value as a byte
*/
void putByteValue(C parent, byte newFieldValue);
/**
* Retrieve the value of the field for the given instance
* @param parent The instance to access the field for
* @return The field value as a char
*/
char getCharValue(C parent);
/**
* Update the value of the field for the given instance
* @param parent The instance to access the field for
* @param newFieldValue The new value as a char
*/
void putCharValue(C parent, char newFieldValue);
/**
* Retrieve the value of the field for the given instance
* @param parent The instance to access the field for
* @return The field value as a short
*/
short getShortValue(C parent);
/**
* Update the value of the field for the given instance
* @param parent The instance to access the field for
* @param newFieldValue The new value as a short
*/
void putShortValue(C parent, short newFieldValue);
/**
* Retrieve the value of the field for the given instance
* @param parent The instance to access the field for
* @return The field value as an int
*/
int getIntValue(C parent);
/**
* Update the value of the field for the given instance
* @param parent The instance to access the field for
* @param newFieldValue The new value as an int
*/
void putIntValue(C parent, int newFieldValue);
/**
* Retrieve the value of the field for the given instance
* @param parent The instance to access the field for
* @return The field value as a long
*/
long getLongValue(C parent);
/**
* Update the value of the field for the given instance
* @param parent The instance to access the field for
* @param newFieldValue The new value as a long
*/
void putLongValue(C parent, long newFieldValue);
/**
* Retrieve the value of the field for the given instance
* @param parent The instance to access the field for
* @return The field value as a float
*/
float getFloatValue(C parent);
/**
* Update the value of the field for the given instance
* @param parent The instance to access the field for
* @param newFieldValue The new value as a float
*/
void putFloatValue(C parent, float newFieldValue);
/**
* Retrieve the value of the field for the given instance
* @param parent The instance to access the field for
* @return The field value as a double
*/
double getDoubleValue(C parent);
/**
* Update the value of the field for the given instance
* @param parent The instance to access the field for
* @param newFieldValue The new value as a double
*/
void putDoubleValue(C parent, double newFieldValue);
}