microsoft-azure-storage/src/com/microsoft/azure/storage/table/TableServiceEntity.java
public static HashMap<String, EntityProperty> writeEntityWithReflection(final Object instance)
            throws IllegalArgumentException, IllegalAccessException, InvocationTargetException {
        final HashMap<String, PropertyPair> props = PropertyPair.generatePropertyPairs(instance.getClass());

        final HashMap<String, EntityProperty> retVal = new HashMap<String, EntityProperty>();
        for (final Entry<String, PropertyPair> p : props.entrySet()) {
            retVal.put(p.getValue().effectiveName, p.getValue().generateEntityProperty(instance));
        }

        return retVal;
    }
public static HashMap<String, EntityProperty> writeEntityWithReflection(final Object instance)
            throws IllegalArgumentException, IllegalAccessException, InvocationTargetException {
        final HashMap<String, PropertyPair> props = PropertyPair.generatePropertyPairs(instance.getClass());

        final HashMap<String, EntityProperty> retVal = new HashMap<String, EntityProperty>();
        for (final Entry<String, PropertyPair> p : props.entrySet()) {
            retVal.put(p.getValue().effectiveName, p.getValue().generateEntityProperty(instance));
        }

        return retVal;
    }
Serializes the property data from a table entity instance into a property map using reflection.
<p>
This static method takes an object instance that represents a table entity type and uses reflection on its class
type to find methods to serialize the data from the instance into the property map.
<p>
Each property name and data type in the properties map is compared with the methods in the class type for a pair
of getter and setter methods to use for serialization and deserialization. The class is scanned for methods with
names that match the property name with "get" and "set" prepended, or with the {@link StoreAs} annotation set
with the property name. The methods must have return types or parameter data types that match the data type of
the corresponding {@link EntityProperty} value. If such a pair is found, the data is copied from the instance
object by invoking the getter method on the instance. Properties that do not have a method pair with matching
name and data type are not copied.

@param instance
An <code>Object</code> reference to an instance of a class implementing {@link TableEntity} to
serialize the table entity
data from.
@return
A <code>java.util.HashMap</code> object which maps <code>String</code> property names to
{@link EntityProperty} objects containing typed data values serialized from the instance parameter
object.

@throws IllegalArgumentException
if the table entity is invalid or improperly formatted.
@throws IllegalAccessException
if the table entity threw an exception during serialization.
@throws InvocationTargetException
if a method invoked on the instance parameter threw an exception during serialization.