Class CopyField


  • public class CopyField
    extends ClassMethod
    Method to generate the method "dnCopyField" using ASM.
     protected final void dnCopyField(Answer obj, int index)
     {
         switch (index)
         {
             case 0:
                 question = obj.question;
                 break;
             default:
                 throw new IllegalArgumentException("out of field index :" + index);
         }
     }
     
    or with superclass
     protected final void dnCopyField(ComplexAnswer obj, int index)
     {
         switch (index - dnInheritedFieldCount)
         {
             case 0:
                 param1 = obj.param1;
                 break;
             case 1:
                 param2 = obj.param2;
                 break;
             default:
                 super.dnCopyField(obj, index);
         }
     }
     
    and also with minor variations if the class has no fields
    • Constructor Detail

      • CopyField

        public CopyField​(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 Detail

      • execute

        public void execute()
        Method to add the contents of the class method.
        Specified by:
        execute in class ClassMethod