package japicmp.util; import javassist.CtClass; import javassist.Modifier; public abstract class CtBehaviorBuilder { protected int modifier = 0; protected CtClass[] parameters = new CtClass[]{}; protected CtClass[] exceptions = new CtClass[]{}; public CtBehaviorBuilder parameters(CtClass[] parameters) { this.parameters = parameters; return this; } public CtBehaviorBuilder parameter(CtClass parameter) { if (this.parameters == null) { this.parameters = new CtClass[]{parameter}; } else { CtClass[] newParameters = new CtClass[this.parameters.length + 1]; System.arraycopy(this.parameters, 0, newParameters, 0, this.parameters.length); newParameters[this.parameters.length] = parameter; this.parameters = newParameters; } return this; } public CtBehaviorBuilder exceptions(CtClass[] exceptions) { this.exceptions = exceptions; return this; } public CtBehaviorBuilder publicAccess() { this.modifier = this.modifier | Modifier.PUBLIC; return this; } public CtBehaviorBuilder privateAccess() { this.modifier = this.modifier | Modifier.PRIVATE; return this; } public CtBehaviorBuilder protectedAccess() { this.modifier = this.modifier | Modifier.PROTECTED; return this; } public CtBehaviorBuilder staticAccess() { this.modifier = this.modifier | Modifier.STATIC; return this; } public CtBehaviorBuilder abstractMethod() { this.modifier = this.modifier | Modifier.ABSTRACT; return this; } public CtBehaviorBuilder finalMethod() { this.modifier = this.modifier | Modifier.FINAL; return this; } }