/** interface fed to comparator to sort method items (including bodies). */
interface MethodItem {

/**
  * get the original source of the complete declation, including comments and the method body (all code that will be moved).
  */
String getOriginalSource();

/**
  * get Javadoc comment in front of declaration, null if none
  */
String getComment();

/**
  * scope of this declaration
  * Returns enums for private protected package public
  */
Scope getScope();

/**
  * returns true for static, false for instance
  */
boolean isStatic();

/**
  * true if final
  */
boolean isFinal();

/**
  * true if synchronized
  */
boolean isSynchronized();

/**
  * return enums for boolean byte char short int float long double Boolean Byte Character Short Integer Float Long Double String Other
  */
Type getReturnType();

/**
  * return 0 for a scalar, 1 for an array, 2 for a [][]...   return type
  */
int getDimension();

/**
  * get the generic return type, null if none.
  */
String getGeneric();

/**
  * returns name of Class for other declaration
  */
String getOtherTypeName();

/**
  * return name of Method
  */
String getMethodName();

/**
  * return enums for boolean byte char short int float long double Boolean Byte Character Short Integer Float Long Double String Other
  */
Type[] getParmTypes();

/**
  * return 0 for a scalar, 1 for an array or ..., 2 for a [][]... parameter dimension
  */
int[] getParmDimensions();

/**
  * get the generic return type, null if none.
  */
String[] getParmGenerics();

/**
  * returns name of Class for other declaration, null if primitive or standard class
  */
String[] getOtherTypeNames();

/**
  * return name of Method
  */
String[] getParmNames();

}