code: 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;
      }
docs: 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.