microsoft-azure-storage/src/com/microsoft/azure/storage/table/TableServiceEntity.java
@Override
    public void readEntity(final HashMap<String, EntityProperty> properties, final OperationContext opContext)
            throws StorageException {
        try {
            readEntityWithReflection(this, properties, opContext);
        }
        catch (IllegalArgumentException e) {
            throw new StorageException(StorageErrorCodeStrings.INVALID_DOCUMENT, SR.RESPONSE_RECEIVED_IS_INVALID,
                    Constants.HeaderConstants.HTTP_UNUSED_306, null, e);
        }
        catch (IllegalAccessException e) {
            throw new StorageException(StorageErrorCodeStrings.INVALID_DOCUMENT,
                    SR.EXCEPTION_THROWN_DURING_DESERIALIZATION, Constants.HeaderConstants.HTTP_UNUSED_306, null, e);
        }
        catch (InvocationTargetException e) {
            throw new StorageException(StorageErrorCodeStrings.INTERNAL_ERROR,
                    SR.EXCEPTION_THROWN_DURING_DESERIALIZATION, Constants.HeaderConstants.HTTP_UNUSED_306, null, e);
        }
    }
@Override
    public void readEntity(final HashMap<String, EntityProperty> properties, final OperationContext opContext)
            throws StorageException {
        try {
            readEntityWithReflection(this, properties, opContext);
        }
        catch (IllegalArgumentException e) {
            throw new StorageException(StorageErrorCodeStrings.INVALID_DOCUMENT, SR.RESPONSE_RECEIVED_IS_INVALID,
                    Constants.HeaderConstants.HTTP_UNUSED_306, null, e);
        }
        catch (IllegalAccessException e) {
            throw new StorageException(StorageErrorCodeStrings.INVALID_DOCUMENT,
                    SR.EXCEPTION_THROWN_DURING_DESERIALIZATION, Constants.HeaderConstants.HTTP_UNUSED_306, null, e);
        }
        catch (InvocationTargetException e) {
            throw new StorageException(StorageErrorCodeStrings.INTERNAL_ERROR,
                    SR.EXCEPTION_THROWN_DURING_DESERIALIZATION, Constants.HeaderConstants.HTTP_UNUSED_306, null, e);
        }
    }
Populates this table entity instance using the map of property names to {@link EntityProperty} data typed values.
<p>
This method invokes {@link TableServiceEntity#readEntityWithReflection} to populate the table entity instance the
method is called on using reflection. Table entity classes that extend {@link TableServiceEntity} can take
advantage of this behavior by implementing getter and setter methods for the particular properties of the table
entity in Microsoft Azure storage the class represents.
<p>
Override this method in classes that extend {@link TableServiceEntity} to invoke custom serialization code.

@param properties
The <code>java.util.HashMap</code> of <code>String</code> property names to {@link EntityProperty}
data values to deserialize and store in this table entity instance.
@param opContext
An {@link OperationContext} object used to track the execution of the operation.
@throws StorageException
if an error occurs during the deserialization.