Used by {@link org.apache.tapestry5.corelib.components.Loop}, {@link org.apache.tapestry5.corelib.components.AjaxFormLoop}and similar components to extract out an identifier, here termed a "primary key", that can be stored on the client and later used to recover the same, or equivalent, server side object.
The {@link org.apache.tapestry5.util.DefaultPrimaryKeyEncoder} implementation is used in most circumstances.
@param < K> the type of the primary key, used to identify the value (which must be serializable)
@param < V> the type of value identified by the key
@see org.apache.tapestry5.ValueEncoder
@deprecated This interface overlaps with {@link org.apache.tapestry5.ValueEncoder} and has been deprecated in release5.1. The interface itself will be removed in a later release of Tapestry. The components that used this interface ( {@link org.apache.tapestry5.corelib.components.AjaxFormLoop}, {@link org.apache.tapestry5.corelib.components.Grid}, {@link org.apache.tapestry5.corelib.components.GridRows}and {@link org.apache.tapestry5.corelib.components.Loop}) have been changed to expect ValueEncoder instead, and an automatic coercion from PrimaryKeyEncoder to ValueEncoder has been provided.