code: public void buildKeyDecoding(CodeAssembler assembler,
                                   OrderedProperty<S>[] properties,
                                   LocalVariable instanceVar,
                                   Class<?> adapterInstanceClass,
                                   boolean useWriteMethods,
                                   LocalVariable encodedVar)
          throws SupportException
      {
          properties = ensureKeyProperties(properties);
          buildDecoding(Mode.KEY, assembler,
                        extractProperties(properties), extractDirections(properties),
                        instanceVar, adapterInstanceClass, useWriteMethods,
                        -1, null, // no generation support
                        encodedVar);
      }
docs: Generates bytecode instructions to decode properties. A
  CorruptEncodingException may be thrown from generated code.
  
  @param assembler code assembler to receive bytecode instructions
  @param properties specific properties to decode, defaults to all key
  properties if null
  @param instanceVar local variable referencing Storable instance,
  defaults to "this" if null. If variable type is an Object array, then
  property values are placed into the runtime value of this array instead
  of a Storable instance.
  @param adapterInstanceClass class containing static references to
  adapter instances - defaults to instanceVar
  @param useWriteMethods when true, set properties by public write
  methods instead of protected fields - should be used if class being
  generated doesn't have access to these fields
  @param encodedVar required variable, which must be a byte array. At
  runtime, it references an encoded key.
  
  @throws SupportException if any property type is not supported
  @throws IllegalArgumentException if assembler is null, or if instanceVar
  is not the correct instance type, or if encodedVar is not a byte array