@SuppressWarnings("unchecked")
    public <S extends Storable> GenericStorableCodec<S> createCodec(Class<S> type,
                                                                    StorableIndex pkIndex,
                                                                    boolean isMaster,
                                                                    Layout layout,
                                                                    RawSupport support)
        throws SupportException
    {
        LayoutOptions options = layout == null ? getLayoutOptions(type) : layout.getOptions();
        return GenericStorableCodec.getInstance
            (this, createStrategy(type, pkIndex, options), isMaster, layout, support);
    }
@ SuppressWarnings ( "unchecked" ) public < S extends Storable > GenericStorableCodec < S > createCodec ( Class < S > type , StorableIndex pkIndex , boolean isMaster , Layout layout , RawSupport support ) throws SupportException { LayoutOptions options = layout == null ? getLayoutOptions ( type ) : layout . getOptions ( ) ; return GenericStorableCodec . getInstance ( this , createStrategy ( type , pkIndex , options ) , isMaster , layout , support ) ; }
@param type type of storable to create codec for
@param pkIndex suggested index for primary key (optional)
@param isMaster when true, version properties and sequences are managed
@param layout when non-null, encode a storable layout generation
value in one or four bytes. Generation 0..127 is encoded in one byte, and
128..max is encoded in four bytes, with the most significant bit set.
@param support binds generated storable with a storage layer
@throws SupportException if type is not supported
@since 1.2