void maybeVisit(JClassType type) { if (type == null) { return; } else if (!seen.add(type)) { // Short-circuit to prevent type-loops return; } examineTypeOnce(type); } }
@Override public void endVisit(RequestMethod x) { // Request<Foo> -> Foo maybeVisit(x.getDataType()); // InstanceRequest<Proxy, Foo> -> Proxy if (x.getInstanceType() != null) { x.getInstanceType().accept(this); } // Request<Void> doSomething(Foo foo, Bar bar) -> Foo, Bar for (JType param : x.getDeclarationMethod().getParameterTypes()) { maybeVisit(param.isClassOrInterface()); } // setFoo(Foo foo) -> Foo for (JMethod method : x.getExtraSetters()) { maybeVisit(method.getParameterTypes()[0].isClassOrInterface()); } }
@Override public void endVisit(RequestMethod x) { // Request<Foo> -> Foo maybeVisit(x.getDataType()); // InstanceRequest<Proxy, Foo> -> Proxy if (x.getInstanceType() != null) { x.getInstanceType().accept(this); } // Request<Void> doSomething(Foo foo, Bar bar) -> Foo, Bar for (JType param : x.getDeclarationMethod().getParameterTypes()) { maybeVisit(param.isClassOrInterface()); } // setFoo(Foo foo) -> Foo for (JMethod method : x.getExtraSetters()) { maybeVisit(method.getParameterTypes()[0].isClassOrInterface()); } }
void maybeVisit(JClassType type) { if (type == null) { return; } else if (!seen.add(type)) { // Short-circuit to prevent type-loops return; } examineTypeOnce(type); } }