Class ProvideField

java.lang.Object
org.datanucleus.enhancer.ClassMethod
org.datanucleus.enhancer.methods.ProvideField

public class ProvideField extends ClassMethod
Method to generate the method "dnProvideField" using ASM.
 public void dnProvideField(int fieldIndex)
 {
     if (dnStateManager == null)
         throw new IllegalStateException("state manager is null");
     switch (fieldIndex)
     {
         case 0:
             dnStateManager.providedObjectField(this, fieldIndex, question);
             break;
         default:
             throw new IllegalArgumentException("out of field index :" + fieldIndex);
     }
 }
 
and with a superclass
 public void dnProvideField(int fieldIndex)
 {
     if (dnStateManager == null)
         throw new IllegalStateException("state manager is null");
     switch (fieldIndex - dnInheritedFieldCount)
     {
         case 0:
             dnStateManager.providedStringField(this, fieldIndex, extraInfo);
             break;
         default:
             super.dnProvideField(fieldIndex);
     }
 }
 
with further minor changes when the class has no fields.
  • Constructor Details

    • ProvideField

      public ProvideField(ClassEnhancer enhancer, String name, int access, Object returnType, Object[] argTypes, String[] argNames)
      Constructor.
      Parameters:
      enhancer - ClassEnhancer
      name - Name of method
      access - Access type
      returnType - Return type
      argTypes - Argument types
      argNames - Argument names
  • Method Details