import java.util.*;
import Jakarta.util.*;
import java.io.*;
public class ModTypeDecl {
// replaces extension TypeDeclaration with Java counterpart
public TypeDeclaration prepareReplace( JTSParseTree t ) {
UnmodifiedTypeDeclaration utd;
utd = ( UnmodifiedTypeDeclaration ) arg[1];
utd.Replace( utd.prepareReplace( t ) );
return ( TypeDeclaration ) this;
}
public boolean isExtension() {
return ( ( UnmodifiedTypeDeclaration ) arg[1] ).isExtension();
}
public void extensionOf( String name ) {
( ( UnmodifiedTypeDeclaration ) arg[1] ).extensionOf( name );
}
public String getAndMangleName() {
return ( ( UnmodifiedTypeDeclaration ) arg[1] ).getAndMangleName();
}
public String getName() {
return ( ( UnmodifiedTypeDeclaration ) arg[1] ).getName();
}
// set the modifier list to be {abstract}
public void setAbstractModifier() {
String com = getComment();
ModAbstract ma = new ModAbstract().setParms( new AstToken().setParms( " ","abstract", 0 ) );
arg[0].Replace( new AST_Modifiers().add( new AST_ModifiersElem().setParms( ma ) ) );
arg[0].setComment( com );
arg[1].setComment( " " );
}
// set the modifier list to m
public void addModifiers( AST_Modifiers m ) {
// Step 1: if m is null, return immediately
if ( m == null )
return;
// Step 2: if original modifierlist is empty
// move the comment to the new modifier list
AST_Modifiers a = ( AST_Modifiers ) arg[0].arg[0];
String com = getComment();
if ( a == null ) {
setComment( " " );
arg[0].Replace( m );
setComment( com );
return;
}
// Step 2: original list is not empty -- go ahead and
// add each new modifier, one at a time
AstCursor c = new AstCursor();
for ( c.FirstElement( m ); c.MoreElement(); c.NextElement() )
a.addModifier( ( Modifier ) c.node );
arg[0].setComment( com );
arg[1].setComment( " " );
}
public AST_Modifiers getModifier() {
return ( AST_Modifiers ) arg[0].arg[0];
}
}