package org.tldgen.model;
import com.sun.javadoc.AnnotationDesc;
import com.sun.javadoc.ClassDoc;
import com.sun.javadoc.Doc;
import static org.tldgen.util.JavadocUtils.getAnnotation;
public class Listener extends AbstractTldElement {//implements Comparable<Listener>{
private String listenerClass;
public String getListenerClass() {
return listenerClass;
}
public void setListenerClass(String listenerClass) {
this.listenerClass = listenerClass;
this.setName(parseSimpleName());
}
public static Listener createInstance(ClassDoc doc) {
Listener listener = new Listener();
AnnotationDesc ann = getAnnotation(doc, org.tldgen.annotations.Listener.class);
ClassDoc classDoc = (ClassDoc) doc;
listener.setListenerClass(classDoc.qualifiedTypeName());
listener.setName(listener.listenerClass);
listener.postProcessElement(doc, ann);
return listener;
}
@Override
protected String calculateDefaultElementName(Doc doc) {
return parseSimpleName();
}
private String parseSimpleName() {
int startIndex = listenerClass.lastIndexOf(".");
return startIndex > 0 ? listenerClass.substring(++startIndex) : listenerClass;
}
}