Skip to content

Commit cb0dad6

Browse files
author
emmanue1
committed
Refactor LoopStatementMaker
1 parent b9db633 commit cb0dad6

File tree

3 files changed

+148
-0
lines changed

3 files changed

+148
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/*
2+
* Copyright (c) 2008, 2019 Emmanuel Dupuy.
3+
* This project is distributed under the GPLv3 license.
4+
* This is a Copyleft license that gives the user the right to use,
5+
* copy and modify the code freely for non-commercial purposes.
6+
*/
7+
8+
package org.jd.core.v1.service.converter.classfiletojavasyntax.visitor;
9+
10+
import org.jd.core.v1.model.javasyntax.type.*;
11+
12+
public class CreateTypeFromTypeArgumentVisitor extends AbstractNopTypeVisitor {
13+
protected Type type;
14+
15+
public CreateTypeFromTypeArgumentVisitor() {
16+
init();
17+
}
18+
19+
public void init() {
20+
type = null;
21+
}
22+
23+
public Type getType() {
24+
return type;
25+
}
26+
27+
@Override public void visit(WildcardExtendsTypeArgument type) { this.type = type.getType(); }
28+
@Override public void visit(WildcardSuperTypeArgument type) { this.type = type.getType(); }
29+
@Override public void visit(PrimitiveType type) { this.type = type; }
30+
@Override public void visit(ObjectType type) { this.type = type; }
31+
@Override public void visit(InnerObjectType type) { this.type = type; }
32+
@Override public void visit(GenericType type) { this.type = type; }
33+
}
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
/*
2+
* Copyright (c) 2008, 2019 Emmanuel Dupuy.
3+
* This project is distributed under the GPLv3 license.
4+
* This is a Copyleft license that gives the user the right to use,
5+
* copy and modify the code freely for non-commercial purposes.
6+
*/
7+
8+
package org.jd.core.v1.service.converter.classfiletojavasyntax.visitor;
9+
10+
import org.jd.core.v1.model.javasyntax.AbstractJavaSyntaxVisitor;
11+
import org.jd.core.v1.model.javasyntax.statement.*;
12+
13+
public class RemoveLastContinueStatementVisitor extends AbstractJavaSyntaxVisitor {
14+
@Override
15+
public void visit(Statements list) {
16+
if (! list.isEmpty()) {
17+
Statement last = (Statement)list.getLast();
18+
19+
if (last.getClass() == ContinueStatement.class) {
20+
list.removeLast();
21+
visit(list);
22+
} else {
23+
last.accept(this);
24+
}
25+
}
26+
}
27+
28+
@Override public void visit(IfElseStatement statement) {
29+
safeAccept(statement.getStatements());
30+
statement.getElseStatements().accept(this);
31+
}
32+
33+
@Override public void visit(TryStatement statement) {
34+
statement.getTryStatements().accept(this);
35+
safeAcceptListStatement(statement.getCatchClauses());
36+
safeAccept(statement.getFinallyStatements());
37+
}
38+
39+
@Override public void visit(SwitchStatement statement) { acceptListStatement(statement.getBlocks()); }
40+
@Override public void visit(SwitchStatement.LabelBlock statement) { statement.getStatements().accept(this); }
41+
@Override public void visit(SwitchStatement.MultiLabelsBlock statement) { statement.getStatements().accept(this); }
42+
@Override public void visit(IfStatement statement) { safeAccept(statement.getStatements()); }
43+
@Override public void visit(SynchronizedStatement statement) { safeAccept(statement.getStatements()); }
44+
@Override public void visit(TryStatement.CatchClause statement) { safeAccept(statement.getStatements()); }
45+
46+
@Override public void visit(DoWhileStatement statement) {}
47+
@Override public void visit(ForEachStatement statement) {}
48+
@Override public void visit(ForStatement statement) {}
49+
@Override public void visit(WhileStatement statement) {}
50+
@Override public void visit(AssertStatement statement) {}
51+
@Override public void visit(BreakStatement statement) {}
52+
@Override public void visit(ByteCodeStatement statement) {}
53+
@Override public void visit(CommentStatement statement) {}
54+
@Override public void visit(ContinueStatement statement) {}
55+
@Override public void visit(ExpressionStatement statement) {}
56+
@Override public void visit(LabelStatement statement) {}
57+
@Override public void visit(LambdaExpressionStatement statement) {}
58+
@Override public void visit(LocalVariableDeclarationStatement statement) {}
59+
@Override public void visit(ReturnExpressionStatement statement) {}
60+
@Override public void visit(ReturnStatement statement) {}
61+
@Override public void visit(SwitchStatement.ExpressionLabel statement) {}
62+
@Override public void visit(ThrowStatement statement) {}
63+
@Override public void visit(TypeDeclarationStatement statement) {}
64+
@Override public void visit(TryStatement.Resource statement) {}
65+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
/*
2+
* Copyright (c) 2008, 2019 Emmanuel Dupuy.
3+
* This project is distributed under the GPLv3 license.
4+
* This is a Copyleft license that gives the user the right to use,
5+
* copy and modify the code freely for non-commercial purposes.
6+
*/
7+
8+
package org.jd.core.v1.service.converter.classfiletojavasyntax.visitor;
9+
10+
import org.jd.core.v1.model.javasyntax.type.AbstractTypeVisitor;
11+
import org.jd.core.v1.model.javasyntax.type.WildcardExtendsTypeArgument;
12+
import org.jd.core.v1.model.javasyntax.type.WildcardSuperTypeArgument;
13+
import org.jd.core.v1.model.javasyntax.type.WildcardTypeArgument;
14+
15+
public class SearchWildcardTypeArgumentVisitor extends AbstractTypeVisitor {
16+
protected boolean wildcardFound;
17+
protected boolean wildcardSuperOrExtendsTypeFound;
18+
19+
public SearchWildcardTypeArgumentVisitor() {
20+
init();
21+
}
22+
23+
public void init() {
24+
wildcardFound = false;
25+
wildcardSuperOrExtendsTypeFound = false;
26+
}
27+
28+
public boolean containsWildcard() {
29+
return wildcardFound;
30+
}
31+
32+
public boolean containsWildcardSuperOrExtendsType() {
33+
return wildcardSuperOrExtendsTypeFound;
34+
}
35+
36+
@Override
37+
public void visit(WildcardTypeArgument type) {
38+
wildcardFound = true;
39+
}
40+
41+
@Override
42+
public void visit(WildcardExtendsTypeArgument type) {
43+
wildcardSuperOrExtendsTypeFound = true;
44+
}
45+
46+
@Override
47+
public void visit(WildcardSuperTypeArgument type) {
48+
wildcardSuperOrExtendsTypeFound = true;
49+
}
50+
}

0 commit comments

Comments
 (0)