protected IType getMeType(IType type){
return type.getCompilationUnit().getType(className);
}
public boolean createEventMethod(IType type, ImportRewrite imports, IProgressMonitor monitor) {
IType meType = getMeType(type);
Class listClass = eventSet.getListenerType();
Class adapterClass = DelegationModel.getListenerAdapter(listClass);
boolean override = adapterClass!=null;
if (!meType.exists()) {
StringBuilder builder = new StringBuilder();
builder.append("class " + className);
if (adapterClass == null) {
String listClassname = listClass.getName();
String cName = imports.addImport(listClassname);
builder.append(" implements " + cName + " {\n");
} else {
String adapterClassname = adapterClass.getName();
String cName = imports.addImport(adapterClassname);
builder.append(" extends " + cName + " {\n");
}
builder.append("}\n");
try {
meType = type.getCompilationUnit().createType(builder.toString(), null, false, monitor);
} catch (JavaModelException e) {
ParserPlugin.getLogger().error(e);
return false;
}
}
MethodDescriptor[] all = eventSet.getListenerMethodDescriptors();
for (MethodDescriptor mthd : all) {
Method m = mthd.getMethod();
Class[] ptypes = m.getParameterTypes();
String pcName = ptypes[0].getName();
pcName = imports.addImport(pcName);
String pcSig = Signature.createTypeSignature(pcName, false);
IMethod imthd = meType.getMethod(m.getName(), new String[] { pcSig });
if (!imthd.exists()) {
if (methods.get(mthd) != null) {
StringBuilder builder = new StringBuilder();
if (override)
builder.append("\n");