Skip to content

Commit

Permalink
12 fix some code smell
Browse files Browse the repository at this point in the history
  • Loading branch information
Unknow0 committed Oct 26, 2023
1 parent 53040c1 commit 1891500
Show file tree
Hide file tree
Showing 7 changed files with 35 additions and 52 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ public abstract class AbstractGeneratorMojo extends AbstractMojo {
protected final Map<String, TypeDeclaration<?>> classes = new HashMap<>();
protected final Map<String, PackageDeclaration> packages = new HashMap<>();
private final Consumer<CompilationUnit> c = cu -> {
cu.walk(TypeDeclaration.class, c -> classes.put(c.resolve().getQualifiedName(), c));
cu.walk(TypeDeclaration.class, v -> classes.put(v.resolve().getQualifiedName(), v));
cu.getPackageDeclaration().filter(p -> p.getAnnotations() != null).ifPresent(p -> packages.put(p.getNameAsString(), p));
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,9 +116,12 @@
*/
@Mojo(defaultPhase = LifecyclePhase.GENERATE_SOURCES, name = "jaxb-generator", requiresDependencyResolution = ResolutionScope.COMPILE_PLUS_RUNTIME, requiresDependencyCollection = ResolutionScope.COMPILE_PLUS_RUNTIME)
public class JaxbGeneratorMojo extends AbstractGeneratorMojo {

private static final Logger logger = LoggerFactory.getLogger(JaxbGeneratorMojo.class);

private static final String INSTANCE = "INSTANCE";
private static final String PARENT = "parent";
private static final NameExpr LISTENER = new NameExpr("listener");

private final Map<XmlType, String> handlers = new HashMap<>();
private final XmlLoader xmlLoader = new XmlLoader();
Expand Down Expand Up @@ -285,9 +288,9 @@ private void buildWriter(ClassOrInterfaceDeclaration cl, TypeCache types, XmlTyp
.addParameter(types.get(XMLStreamWriter.class), "w").addParameter(types.get(xml.type()), "t").addParameter(types.get(Marshaller.Listener.class), "listener")
.createBody();
xml.type().asClass().method("beforeMarshal", loader.get(Marshaller.class.getName()))
.ifPresent(m -> b.addStatement(new MethodCallExpr(new NameExpr("o"), "beforeMarshal", Utils.list(new NameExpr("listener")))));
b.addStatement(new IfStmt(new BinaryExpr(new NameExpr("listener"), new NullLiteralExpr(), BinaryExpr.Operator.NOT_EQUALS),
new ExpressionStmt(new MethodCallExpr(new NameExpr("listener"), "beforeMarshal", Utils.list(new NameExpr("t")))), null));
.ifPresent(m -> b.addStatement(new MethodCallExpr(new NameExpr("o"), "beforeMarshal", Utils.list(LISTENER))));
b.addStatement(new IfStmt(new BinaryExpr(LISTENER, new NullLiteralExpr(), BinaryExpr.Operator.NOT_EQUALS),
new ExpressionStmt(new MethodCallExpr(LISTENER, "beforeMarshal", Utils.list(new NameExpr("t")))), null));

if (!xml.getAttributes().isEmpty()) {
b.addStatement(new VariableDeclarationExpr(types.get(String.class), "s"));
Expand Down Expand Up @@ -317,7 +320,7 @@ private void buildWriter(ClassOrInterfaceDeclaration cl, TypeCache types, XmlTyp
.addStatement(new IfStmt(new BinaryExpr(new NameExpr("e"), new NullLiteralExpr(), BinaryExpr.Operator.EQUALS), new ContinueStmt(), null))
.addStatement(new MethodCallExpr(new NameExpr("w"), "writeStartElement", Utils.list(Utils.text(e.ns()), Utils.text(e.name()))))
.addStatement(new MethodCallExpr(new FieldAccessExpr(new TypeExpr(types.get(handlers.get(c.component()))), INSTANCE), "write",
Utils.list(new NameExpr("w"), new NameExpr("e"), new NameExpr("listener"))))
Utils.list(new NameExpr("w"), new NameExpr("e"), LISTENER)))
.addStatement(new MethodCallExpr(new NameExpr("w"), "writeEndElement", Utils.list()));

if (t.type().isArray()) {
Expand All @@ -331,7 +334,7 @@ private void buildWriter(ClassOrInterfaceDeclaration cl, TypeCache types, XmlTyp
} else {
w = new BlockStmt().addStatement(new MethodCallExpr(new NameExpr("w"), "writeStartElement", Utils.list(Utils.text(e.ns()), Utils.text(e.name()))))
.addStatement(new MethodCallExpr(new FieldAccessExpr(new TypeExpr(types.get(handlers.get(e.xmlType()))), INSTANCE), "write",
Utils.list(new NameExpr("w"), new NameExpr(n), new NameExpr("listener"))))
Utils.list(new NameExpr("w"), new NameExpr(n), LISTENER)))
.addStatement(new MethodCallExpr(new NameExpr("w"), "writeEndElement", Utils.list()));
}
b.addStatement(Utils.assign(types.get(e.type()), n, new MethodCallExpr(new NameExpr("t"), e.getter())))
Expand All @@ -345,9 +348,9 @@ private void buildWriter(ClassOrInterfaceDeclaration cl, TypeCache types, XmlTyp
}

xml.type().asClass().method("afterMarshal", loader.get(Marshaller.class.getName()))
.ifPresent(m -> b.addStatement(new MethodCallExpr(new NameExpr("o"), "afterMarshal", Utils.list(new NameExpr("listener")))));
b.addStatement(new IfStmt(new BinaryExpr(new NameExpr("listener"), new NullLiteralExpr(), BinaryExpr.Operator.NOT_EQUALS),
new ExpressionStmt(new MethodCallExpr(new NameExpr("listener"), "afterMarshal", Utils.list(new NameExpr("t")))), null));
.ifPresent(m -> b.addStatement(new MethodCallExpr(new NameExpr("o"), "afterMarshal", Utils.list(LISTENER))));
b.addStatement(new IfStmt(new BinaryExpr(LISTENER, new NullLiteralExpr(), BinaryExpr.Operator.NOT_EQUALS),
new ExpressionStmt(new MethodCallExpr(LISTENER, "afterMarshal", Utils.list(new NameExpr("t")))), null));
}

/**
Expand All @@ -364,11 +367,11 @@ private void buildReader(ClassOrInterfaceDeclaration cl, TypeCache types, XmlTyp
create = new MethodCallExpr(new TypeExpr(types.getClass(xml.factory().clazz)), xml.factory().method);

BlockStmt b = cl.addMethod("read", Utils.PUBLIC).addMarkerAnnotation(Override.class).addThrownException(types.get(XMLStreamException.class).asClassOrInterfaceType())
.addParameter(types.get(XMLStreamReader.class), "r").setType(types.get(xml.type())).addParameter(types.get(Object.class), "parent")
.addParameter(types.get(XMLStreamReader.class), "r").setType(types.get(xml.type())).addParameter(types.get(Object.class), PARENT)
.addParameter(types.get(UnmarshallerImpl.class), "listener").createBody().addStatement(Utils.assign(types.get(xml.type()), "o", create));
xml.type().asClass().method("beforeUnmarshal", loader.get(Unmarshaller.class.getName()), loader.get(Object.class.getName()))
.ifPresent(m -> b.addStatement(new MethodCallExpr(new NameExpr("o"), "beforeUnmarshal", Utils.list(new NameExpr("listener"), new NameExpr("parent")))));
b.addStatement(new MethodCallExpr(new NameExpr("listener"), "beforeUnmarshal", Utils.list(new NameExpr("o"), new NameExpr("parent"))));
.ifPresent(m -> b.addStatement(new MethodCallExpr(new NameExpr("o"), "beforeUnmarshal", Utils.list(LISTENER, new NameExpr(PARENT)))));
b.addStatement(new MethodCallExpr(LISTENER, "beforeUnmarshal", Utils.list(new NameExpr("o"), new NameExpr(PARENT))));

for (XmlElement e : xml.getElements()) {
if (!(e.xmlType() instanceof XmlCollection))
Expand Down Expand Up @@ -406,11 +409,11 @@ private void buildReader(ClassOrInterfaceDeclaration cl, TypeCache types, XmlTyp
}

xml.type().asClass().method("afterUnmarshal", loader.get(Unmarshaller.class.getName()), loader.get(Object.class.getName()))
.ifPresent(m -> b.addStatement(new MethodCallExpr(new NameExpr("o"), "beforeUnmarshal", Utils.list(new NameExpr("listener"), new NameExpr("parent")))));
.ifPresent(m -> b.addStatement(new MethodCallExpr(new NameExpr("o"), "beforeUnmarshal", Utils.list(LISTENER, new NameExpr(PARENT)))));

IfStmt i = new IfStmt(
new BinaryExpr(new NameExpr("n"), new FieldAccessExpr(new TypeExpr(types.get(XMLStreamConstants.class)), "END_ELEMENT"), BinaryExpr.Operator.EQUALS),
r.addStatement(new MethodCallExpr(new NameExpr("listener"), "afterUnmarshal", Utils.list(new NameExpr("o"), new NameExpr("parent"))))
r.addStatement(new MethodCallExpr(LISTENER, "afterUnmarshal", Utils.list(new NameExpr("o"), new NameExpr(PARENT))))
.addStatement(new ReturnStmt(new NameExpr("o"))),
null);

Expand All @@ -431,11 +434,11 @@ private void buildReader(ClassOrInterfaceDeclaration cl, TypeCache types, XmlTyp
null))
.addStatement(new MethodCallExpr(n, "add",
Utils.list(new MethodCallExpr(new FieldAccessExpr(new TypeExpr(types.get(handlers.get(t.component()))), INSTANCE), "read",
Utils.list(new NameExpr("r"), new NameExpr("o"), new NameExpr("listener"))))));
Utils.list(new NameExpr("r"), new NameExpr("o"), LISTENER)))));
} else
s = new ExpressionStmt(new MethodCallExpr(new NameExpr("o"), e.setter(),
Utils.list(new MethodCallExpr(new FieldAccessExpr(new TypeExpr(types.get(handlers.get(e.xmlType()))), INSTANCE), "read",
Utils.list(new NameExpr("r"), new NameExpr("o"), new NameExpr("listener"))))));
Utils.list(new NameExpr("r"), new NameExpr("o"), LISTENER)))));

j = new IfStmt(new MethodCallExpr(new NameExpr(e.name() + "$e" + c++), "equals", Utils.list(new NameExpr("q"))), s, j);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,8 @@ public String genericName() {
if (parameters().isEmpty())
return name();
StringBuilder sb = new StringBuilder(name()).append('<');
for (TypeParamModel p : parameters())
sb.append(p.type()).append(',');
for (TypeParamModel t : parameters())
sb.append(t.type()).append(',');
sb.setCharAt(sb.length() - 1, '>');
return sb.toString();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,11 @@
* @author unknow
*/
public class XmlLoader {
private static final String NAMESPACE = "namespace";

private static final Logger logger = LoggerFactory.getLogger(XmlLoader.class);

private static final String NAMESPACE = "namespace";
private static final String DEFAULT = "##default";

public static final String XS = "http://www.w3.org/2001/XMLSchema";

public static final XmlTypeSimple BOOLEAN = new XmlTypeSimple(new QName(XS, "boolean"), PrimitiveModel.BOOLEAN);
Expand Down Expand Up @@ -210,12 +211,12 @@ private XmlType createObject(ClassModel c) {
} else if (attr.isPresent()) {
if (!(add(t) instanceof XmlTypeSimple))
throw new IllegalArgumentException("only simple type allowed in attribute in '" + c.name() + "'");
n = attr.flatMap(a -> a.member("name")).map(a -> a.asLiteral()).map(i -> "##default".equals(i) ? null : i).orElse(n);
String ns = attr.flatMap(a -> a.member(NAMESPACE)).map(a -> a.asLiteral()).map(i -> "##default".equals(i) ? null : i).orElse("");
n = attr.flatMap(a -> a.member("name")).map(a -> a.asLiteral()).map(i -> DEFAULT.equals(i) ? null : i).orElse(n);
String ns = attr.flatMap(a -> a.member(NAMESPACE)).map(a -> a.asLiteral()).map(i -> DEFAULT.equals(i) ? null : i).orElse("");
attrs.add(new XmlElement(this, new QName(ns, n), t, m.name(), setter));
} else {
n = elem.flatMap(a -> a.member("name")).map(a -> a.asLiteral()).map(i -> "##default".equals(i) ? null : i).orElse(n);
String ns = elem.flatMap(a -> a.member(NAMESPACE)).map(a -> a.asLiteral()).map(i -> "##default".equals(i) ? null : i).orElse(defaultNs);
n = elem.flatMap(a -> a.member("name")).map(a -> a.asLiteral()).map(i -> DEFAULT.equals(i) ? null : i).orElse(n);
String ns = elem.flatMap(a -> a.member(NAMESPACE)).map(a -> a.asLiteral()).map(i -> DEFAULT.equals(i) ? null : i).orElse(defaultNs);
elems.add(new XmlElement(this, new QName(ns, n), t, m.name(), setter));
}
}
Expand Down Expand Up @@ -264,8 +265,8 @@ private static QName qname(TypeModel type) {
String name = type.simpleName();
String ns = type.parent().annotation(XmlSchema.class).flatMap(v -> v.member(NAMESPACE)).map(v -> v.asLiteral()).orElse("");
if (a.isPresent()) {
name = a.flatMap(v -> v.member("name")).map(v -> v.asLiteral()).filter(v -> !v.equals("##default")).orElse(name);
ns = a.flatMap(v -> v.member(NAMESPACE)).map(v -> v.asLiteral()).filter(v -> !v.equals("##default")).orElse(ns);
name = a.flatMap(v -> v.member("name")).map(v -> v.asLiteral()).filter(v -> !v.equals(DEFAULT)).orElse(name);
ns = a.flatMap(v -> v.member(NAMESPACE)).map(v -> v.asLiteral()).filter(v -> !v.equals(DEFAULT)).orElse(ns);
}
return new QName(ns, name);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,29 +90,16 @@ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws Se

@Override
public void requestInitialized(ServletRequestEvent sre) {
// ServletRequestImpl req = (ServletRequestImpl) sre.getServletRequest();
// System.out.println(">> '" + req.getMethod() + "' '" + req.getRequestURI() + "' '" + req.getQueryString() + "'");
// Enumeration<String> e = req.getHeaderNames();
// while (e.hasMoreElements()) {
// String k = e.nextElement();
// Enumeration<String> headers = req.getHeaders(k);
// System.out.print(k);
// System.out.print(":");
// while (headers.hasMoreElements())
// System.out.print(" '" + headers.nextElement() + "'");
// System.out.println();
// }
// nothing
}

@Override
public void requestDestroyed(ServletRequestEvent sre) {
// ServletRequest req = sre.getServletRequest();
// System.out.println("destroy " + req);
// nothing
}

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// System.out.println("filtering " + request);
chain.doFilter(request, response);
}
}
5 changes: 3 additions & 2 deletions unknow-server-test/src/main/resources/404.html
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
<html>
<!DOCTYPE html>
<html lag="en">
<head>
<title>Not found</title>
</head>
<body>
<h1>Nopthing here folks</h1>
<h1>Nothing here folks</h1>
</body>
</html>

0 comments on commit 1891500

Please sign in to comment.