Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*-
   * See the file LICENSE for redistribution information.
   *
   * Copyright (c) 2002, 2013 Oracle and/or its affiliates.  All rights reserved.
   *
   */
  
  package com.sleepycat.persist.impl;

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();
          }
      }
  }
 

Author(s):
Mark Hayes
 
 public interface Enhanced {

    
 
     Object bdbNewInstance();

    
 
     Object bdbNewArray(int len);

    
Calls the super class method if this class does not contain the primary key field.

 
     boolean bdbIsPriKeyFieldNullOrZero();

    
Calls the super class method if this class does not contain the primary key field.

 
     void bdbWritePriKeyField(EntityOutput outputFormat format)
         throws RefreshException;

    
Calls the super class method if this class does not contain the primary key field.

    void bdbReadPriKeyField(EntityInput inputFormat format)
        throws RefreshException;

    
    void bdbWriteSecKeyFields(EntityOutput output)
        throws RefreshException;

    
    void bdbReadSecKeyFields(EntityInput input,
                             int startField,
                             int endField,
                             int superLevel)
        throws RefreshException;

    
    void bdbWriteNonKeyFields(EntityOutput output)
        throws RefreshException;

    
    void bdbReadNonKeyFields(EntityInput input,
                             int startField,
                             int endField,
                             int superLevel)
        throws RefreshException;

    
    void bdbWriteCompositeKeyFields(EntityOutput outputFormat[] formats)
        throws RefreshException;

    
    void bdbReadCompositeKeyFields(EntityInput inputFormat[] formats)
        throws RefreshException;

    
                       int field,
                       int superLevel,
                       boolean isSecField);

    
    void bdbSetField(Object o,
                     int field,
                     int superLevel,
                     boolean isSecField,
                     Object value);
    
    
    void bdbSetPriField(Object oObject value);
New to GrepCode? Check out our FAQ X