xmlgraphics-fop/fop-2.1-QDox-2.0.patch

152 lines
6.8 KiB
Diff

diff -urEbwB fop-2.1/src/codegen/java/org/apache/fop/tools/EventProducerCollector.java fop-2.1.new/src/codegen/java/org/apache/fop/tools/EventProducerCollector.java
--- fop-2.1/src/codegen/java/org/apache/fop/tools/EventProducerCollector.java 2016-01-07 15:13:29.000000000 +0100
+++ fop-2.1.new/src/codegen/java/org/apache/fop/tools/EventProducerCollector.java 2019-01-01 19:11:50.659094055 +0100
@@ -21,6 +21,7 @@
import java.io.File;
import java.io.IOException;
+import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -31,14 +32,11 @@
import org.apache.fop.events.model.EventProducerModel;
import org.apache.fop.events.model.EventSeverity;
-import com.thoughtworks.qdox.JavaDocBuilder;
-import com.thoughtworks.qdox.model.DefaultDocletTagFactory;
+import com.thoughtworks.qdox.JavaProjectBuilder;
import com.thoughtworks.qdox.model.DocletTag;
-import com.thoughtworks.qdox.model.DocletTagFactory;
import com.thoughtworks.qdox.model.JavaClass;
import com.thoughtworks.qdox.model.JavaMethod;
import com.thoughtworks.qdox.model.JavaParameter;
-import com.thoughtworks.qdox.model.Type;
/**
* Finds EventProducer interfaces and builds the event model for them.
@@ -61,22 +59,12 @@
PRIMITIVE_MAP = Collections.unmodifiableMap(m);
}
- private DocletTagFactory tagFactory;
private List<EventModel> models = new java.util.ArrayList<EventModel>();
/**
* Creates a new EventProducerCollector.
*/
EventProducerCollector() {
- this.tagFactory = createDocletTagFactory();
- }
-
- /**
- * Creates the {@link DocletTagFactory} to be used by the collector.
- * @return the doclet tag factory
- */
- protected DocletTagFactory createDocletTagFactory() {
- return new DefaultDocletTagFactory();
}
/**
@@ -89,12 +77,11 @@
*/
public boolean scanFile(File src)
throws IOException, EventConventionException, ClassNotFoundException {
- JavaDocBuilder builder = new JavaDocBuilder(this.tagFactory);
+ JavaProjectBuilder builder = new JavaProjectBuilder();
builder.addSource(src);
- JavaClass[] classes = builder.getClasses();
+ Collection<JavaClass> classes = builder.getClasses();
boolean eventProducerFound = false;
- for (int i = 0, c = classes.length; i < c; i++) {
- JavaClass clazz = classes[i];
+ for (JavaClass clazz : classes) {
if (clazz.isInterface() && implementsInterface(clazz, CLASSNAME_EVENT_PRODUCER)) {
processEventProducerInterface(clazz);
eventProducerFound = true;
@@ -104,9 +91,9 @@
}
private boolean implementsInterface(JavaClass clazz, String intf) {
- JavaClass[] classes = clazz.getImplementedInterfaces();
- for (int i = 0, c = classes.length; i < c; i++) {
- JavaClass cl = classes[i];
+ List<JavaClass> classes = clazz.getInterfaces();
+ for (int i = 0, c = classes.size(); i < c; i++) {
+ JavaClass cl = classes.get(i);
if (cl.getFullyQualifiedName().equals(intf)) {
return true;
}
@@ -123,9 +110,9 @@
protected void processEventProducerInterface(JavaClass clazz)
throws EventConventionException, ClassNotFoundException {
EventProducerModel prodMeta = new EventProducerModel(clazz.getFullyQualifiedName());
- JavaMethod[] methods = clazz.getMethods(true);
- for (int i = 0, c = methods.length; i < c; i++) {
- JavaMethod method = methods[i];
+ List<JavaMethod> methods = clazz.getMethods(true);
+ for (int i = 0, c = methods.size(); i < c; i++) {
+ JavaMethod method = methods.get(i);
EventMethodModel methodMeta = createMethodModel(method);
prodMeta.addMethod(methodMeta);
}
@@ -136,20 +123,20 @@
private EventMethodModel createMethodModel(JavaMethod method)
throws EventConventionException, ClassNotFoundException {
- JavaClass clazz = method.getParentClass();
+ JavaClass clazz = method.getDeclaringClass();
//Check EventProducer conventions
- if (!method.getReturnType().isVoid()) {
+ if (!method.getReturns().isVoid()) {
throw new EventConventionException("All methods of interface "
+ clazz.getFullyQualifiedName() + " must have return type 'void'!");
}
String methodSig = clazz.getFullyQualifiedName() + "." + method.getCallSignature();
- JavaParameter[] params = method.getParameters();
- if (params.length < 1) {
+ List<JavaParameter> params = method.getParameters();
+ if (params.size() < 1) {
throw new EventConventionException("The method " + methodSig
+ " must have at least one parameter: 'Object source'!");
}
- Type firstType = params[0].getType();
- if (firstType.isPrimitive() || !"source".equals(params[0].getName())) {
+ JavaClass firstType = params.get(0).getJavaClass();
+ if (firstType.isPrimitive() || !"source".equals(params.get(0).getName())) {
throw new EventConventionException("The first parameter of the method " + methodSig
+ " must be: 'Object source'!");
}
@@ -164,12 +151,12 @@
}
EventMethodModel methodMeta = new EventMethodModel(
method.getName(), severity);
- if (params.length > 1) {
- for (int j = 1, cj = params.length; j < cj; j++) {
- JavaParameter p = params[j];
+ if (params.size() > 1) {
+ for (int j = 1, cj = params.size(); j < cj; j++) {
+ JavaParameter p = params.get(j);
Class<?> type;
- JavaClass pClass = p.getType().getJavaClass();
- if (p.getType().isPrimitive()) {
+ JavaClass pClass = p.getJavaClass();
+ if (pClass.isPrimitive()) {
type = PRIMITIVE_MAP.get(pClass.getName());
if (type == null) {
throw new UnsupportedOperationException(
@@ -182,10 +169,10 @@
methodMeta.addParameter(type, p.getName());
}
}
- Type[] exceptions = method.getExceptions();
- if (exceptions != null && exceptions.length > 0) {
+ List<JavaClass> exceptions = method.getExceptions();
+ if (exceptions != null && exceptions.size() > 0) {
//We only use the first declared exception because that is always thrown
- JavaClass cl = exceptions[0].getJavaClass();
+ JavaClass cl = exceptions.get(0);
methodMeta.setExceptionClass(cl.getFullyQualifiedName());
methodMeta.setSeverity(EventSeverity.FATAL); //In case it's not set in the comments
}