com.sleepycat.persist.impl
Interface Enhanced


public interface Enhanced

Interface implemented by a persistent class via bytecode enhancement.

See Accessor for method documentation. EnhancedAccessor implements Accessor and forwards all calls to methods in the Enhanced class.

Each class that implements this interface (including its subclasses and superclasses except for Object) must also implement a static block that registers a prototype instance by calling EnhancedAccessor.registerPrototype. Other instances are created from the protype instance using bdbNewInstance().

static { EnhancedAccessor.registerPrototype(new Xxx()); }

An example of the generated code for reading and writing fields is shown below.

  private int f1;
  private String f2;
  private MyClass f3;

  public void bdbWriteNonKeyFields(EntityOutput output) {

      super.bdbWriteNonKeyFields(output);

      output.writeInt(f1);
      output.writeObject(f2, null);
      output.writeObject(f3, null);
  }

  public void bdbReadNonKeyFields(EntityInput input,
                                  int startField,
                                  int endField,
                                  int superLevel) {

      if (superLevel != 0) {
          super.bdbReadNonKeyFields(input, startField, endField,
                                    superLevel - 1);
      }
      if (superLevel <= 0) {
          switch (startField) {
          case 0:
              f1 = input.readInt();
              if (endField == 0) break;
          case 1:
              f2 = (String) input.readObject();
              if (endField == 1) break;
          case 2:
              f3 = (MyClass) input.readObject();
          }
      }
  }
 


Method Summary
 java.lang.Object bdbGetField(java.lang.Object o, int field, int superLevel, boolean isSecField)
           
 boolean bdbIsPriKeyFieldNullOrZero()
          Calls the super class method if this class does not contain the primary key field.
 java.lang.Object bdbNewArray(int len)
           
 java.lang.Object bdbNewInstance()
           
 void bdbReadNonKeyFields(EntityInput input, int startField, int endField, int superLevel)
           
 void bdbReadPriKeyField(EntityInput input, Format format)
          Calls the super class method if this class does not contain the primary key field.
 void bdbReadSecKeyFields(EntityInput input, int startField, int endField, int superLevel)
           
 void bdbSetField(java.lang.Object o, int field, int superLevel, boolean isSecField, java.lang.Object value)
           
 void bdbWriteNonKeyFields(EntityOutput output)
           
 void bdbWritePriKeyField(EntityOutput output, Format format)
          Calls the super class method if this class does not contain the primary key field.
 void bdbWriteSecKeyFields(EntityOutput output)
           
 

Method Detail

bdbNewInstance

java.lang.Object bdbNewInstance()
See Also:
Accessor.newInstance()

bdbNewArray

java.lang.Object bdbNewArray(int len)
See Also:
Accessor.newArray(int)

bdbIsPriKeyFieldNullOrZero

boolean bdbIsPriKeyFieldNullOrZero()
Calls the super class method if this class does not contain the primary key field.

See Also:
Accessor.isPriKeyFieldNullOrZero(java.lang.Object)

bdbWritePriKeyField

void bdbWritePriKeyField(EntityOutput output,
                         Format format)
Calls the super class method if this class does not contain the primary key field.

See Also:
Accessor.writePriKeyField(java.lang.Object, com.sleepycat.persist.impl.EntityOutput)

bdbReadPriKeyField

void bdbReadPriKeyField(EntityInput input,
                        Format format)
Calls the super class method if this class does not contain the primary key field.

See Also:
Accessor.readPriKeyField(java.lang.Object, com.sleepycat.persist.impl.EntityInput)

bdbWriteSecKeyFields

void bdbWriteSecKeyFields(EntityOutput output)
See Also:
Accessor.writeSecKeyFields(java.lang.Object, com.sleepycat.persist.impl.EntityOutput)

bdbReadSecKeyFields

void bdbReadSecKeyFields(EntityInput input,
                         int startField,
                         int endField,
                         int superLevel)
See Also:
Accessor.readSecKeyFields(java.lang.Object, com.sleepycat.persist.impl.EntityInput, int, int, int)

bdbWriteNonKeyFields

void bdbWriteNonKeyFields(EntityOutput output)
See Also:
Accessor.writeNonKeyFields(java.lang.Object, com.sleepycat.persist.impl.EntityOutput)

bdbReadNonKeyFields

void bdbReadNonKeyFields(EntityInput input,
                         int startField,
                         int endField,
                         int superLevel)
See Also:
Accessor.readNonKeyFields(java.lang.Object, com.sleepycat.persist.impl.EntityInput, int, int, int)

bdbGetField

java.lang.Object bdbGetField(java.lang.Object o,
                             int field,
                             int superLevel,
                             boolean isSecField)
See Also:
Accessor.getField(java.lang.Object, int, int, boolean)

bdbSetField

void bdbSetField(java.lang.Object o,
                 int field,
                 int superLevel,
                 boolean isSecField,
                 java.lang.Object value)
See Also:
Accessor.setField(java.lang.Object, int, int, boolean, java.lang.Object)