import java.util.*; import Jakarta.util.FixDosOutputStream; import java.io.*; public class ClassBodyDeclaration implements Comparator { public String sortkey; public void setSortKey() { AstNode.override( "ClassBodyDeclaration.setSortKey", this ); } public void setSortKey( String basis ) { // Step 1: optional modifiers are always the first argument of // a ClassBodyDeclaration AST_Modifiers m = ( AST_Modifiers ) arg[0].arg[0]; // Step 2: determine if "static" is present, if so, // adjust base if ( m != null && m.findModifier( "static" ) ) sortkey = "00" + basis; else sortkey = basis; } public int compare( Object o1, Object o2 ) { ClassBodyDeclaration b1 = ( ClassBodyDeclaration ) o1; ClassBodyDeclaration b2 = ( ClassBodyDeclaration ) o2; return b1.sortkey.compareTo( b2.sortkey ); } public boolean equal( Object o ) { ClassBodyDeclaration b = ( ClassBodyDeclaration ) o; return ( sortkey.equals( b.sortkey ) ); } }