Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 984da2f

Browse filesBrowse files
author
daan.vandenheuvel
committed
Merge branch 'develop'
* develop: Bump JP version
2 parents 535e0d1 + e6d6d05 commit 984da2f
Copy full SHA for 984da2f

File tree

Expand file treeCollapse file tree

5 files changed

+25
-22
lines changed
Filter options
Expand file treeCollapse file tree

5 files changed

+25
-22
lines changed

‎README.md

Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ Add the dependency below to the pom of your project.
5858
<dependency>
5959
<groupId>com.github.daanvdh.javadataflow</groupId>
6060
<artifactId>JavaDataFlow</artifactId>
61-
<version>0.0.4</version>
61+
<version>0.0.5</version>
6262
</dependency>
6363
## Definitions
6464

‎pom.xml

Copy file name to clipboardExpand all lines: pom.xml
+2-2Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<groupId>com.github.daanvdh.javadataflow</groupId>
66
<artifactId>JavaDataFlow</artifactId>
7-
<version>0.0.4</version>
7+
<version>0.0.5</version>
88
<packaging>jar</packaging>
99

1010
<name>JavaDataFlow</name>
@@ -154,7 +154,7 @@
154154
<dependency>
155155
<groupId>com.github.javaparser</groupId>
156156
<artifactId>javaparser-symbol-solver-core</artifactId>
157-
<version>3.15.4</version>
157+
<version>3.24.0</version>
158158
</dependency>
159159
<!-- https://mvnrepository.com/artifact/org.hamcrest/java-hamcrest -->
160160
<dependency>

‎src/main/java/factory/DataFlowNodeFactory.java

Copy file name to clipboardExpand all lines: src/main/java/factory/DataFlowNodeFactory.java
+6-3Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,10 @@
2121
import org.slf4j.LoggerFactory;
2222

2323
import com.github.javaparser.ast.Node;
24+
import com.github.javaparser.ast.expr.SimpleName;
2425
import com.github.javaparser.ast.nodeTypes.NodeWithSimpleName;
2526
import com.github.javaparser.ast.stmt.ReturnStmt;
26-
import com.github.javaparser.printer.Printable;
27+
import com.github.javaparser.printer.Stringable;
2728

2829
import model.DataFlowNode;
2930
import model.OwnedNode;
@@ -45,8 +46,10 @@ public DataFlowNode create(Node n, OwnedNode<?> owner) {
4546

4647
if (nodeWithName instanceof NodeWithSimpleName) {
4748
builder.name(((NodeWithSimpleName<?>) nodeWithName).getNameAsString());
48-
} else if (nodeWithName instanceof Printable) {
49-
builder.name(((Printable) nodeWithName).asString());
49+
} else if (nodeWithName instanceof Stringable) {
50+
builder.name(((Stringable) nodeWithName).asString());
51+
} else if (nodeWithName instanceof SimpleName) {
52+
builder.name(((SimpleName) nodeWithName).asString());
5053
} else {
5154
LOG.warn("Not supported to add a name to a created DataFlowNode for node of type {}, input node is {}", n.getClass(), n);
5255
}

‎src/main/java/factory/MethodNodeHandler.java

Copy file name to clipboardExpand all lines: src/main/java/factory/MethodNodeHandler.java
+13-13Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -268,30 +268,30 @@ private Optional<DataFlowNode> handleAssignExpr(DataFlowGraph graph, DataFlowMet
268268
return Optional.of(flowNode);
269269
}
270270

271-
/**
272-
* TODO javadoc
273-
*
274-
* @param graph
275-
* @param method
276-
* @param overwriddenValues
277-
* @param node
278-
* @return
279-
*/
280271
private Optional<DataFlowNode> getDataFlowNode(DataFlowGraph graph, DataFlowMethod method, Map<Node, DataFlowNode> overwriddenValues, Node node) {
281272
Optional<Node> optionalResolvedNode = parserUtil.getJavaParserNode(method, node);
282273
DataFlowNode flowNode = null;
283274
if (optionalResolvedNode.isPresent()) {
284275
Node resolvedNode = optionalResolvedNode.get();
285-
flowNode = overwriddenValues.get(resolvedNode);
286-
flowNode = flowNode != null ? flowNode : graph.getNode(resolvedNode);
287-
flowNode = flowNode != null ? flowNode : method.getNode(resolvedNode);
276+
flowNode = getLastFlowNode(graph, method, overwriddenValues, resolvedNode);
277+
flowNode = (flowNode != null && !(resolvedNode instanceof VariableDeclarationExpr)) ? flowNode
278+
: ((VariableDeclarationExpr) resolvedNode).getVariables().stream().map(child -> getLastFlowNode(graph, method, overwriddenValues, child))
279+
.filter(n -> n != null).findFirst().orElse(null);
288280
}
289281
if (flowNode == null) {
290-
LOG.warn("In method {} did not resolve the type of node {} of type {}", method.getName(), node, node.getClass());
282+
LOG.warn("In method {} did not resolve the type of node {} of type {}, resolvedNode was {}", method.getName(), node, node.getClass(),
283+
optionalResolvedNode);
291284
}
292285
return Optional.ofNullable(flowNode);
293286
}
294287

288+
private DataFlowNode getLastFlowNode(DataFlowGraph graph, DataFlowMethod method, Map<Node, DataFlowNode> overwriddenValues, Node resolvedNode) {
289+
DataFlowNode flowNode = overwriddenValues.get(resolvedNode);
290+
flowNode = flowNode != null ? flowNode : method.getNode(resolvedNode);
291+
flowNode = flowNode != null ? flowNode : graph.getNode(resolvedNode);
292+
return flowNode;
293+
}
294+
295295
private String nameForInBetweenNode(DataFlowMethod method, Map<Node, DataFlowNode> overriddenValues, Node realAssignedJP,
296296
NodeWithSimpleName<?> nodeWithName) {
297297
String namePostFix = "";

‎src/main/java/util/ParserUtil.java

Copy file name to clipboardExpand all lines: src/main/java/util/ParserUtil.java
+3-3Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
import com.github.javaparser.resolution.Resolvable;
3535
import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserFieldDeclaration;
3636
import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserParameterDeclaration;
37-
import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserSymbolDeclaration;
37+
import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserVariableDeclaration;
3838
import com.google.common.util.concurrent.UncheckedExecutionException;
3939

4040
import model.DataFlowMethod;
@@ -58,8 +58,8 @@ public Optional<Node> getJavaParserNode(DataFlowMethod method, Node node) {
5858
resolvedNode = ((JavaParserFieldDeclaration) resolved).getVariableDeclarator();
5959
} else if (resolved instanceof JavaParserParameterDeclaration) {
6060
resolvedNode = ((JavaParserParameterDeclaration) resolved).getWrappedNode();
61-
} else if (resolved instanceof JavaParserSymbolDeclaration) {
62-
resolvedNode = ((JavaParserSymbolDeclaration) resolved).getWrappedNode();
61+
} else if (resolved instanceof JavaParserVariableDeclaration) {
62+
resolvedNode = ((JavaParserVariableDeclaration) resolved).getWrappedNode();
6363
} else {
6464
LOG.warn("In method {}, resolving is not supported for node {} of type {}", method.getName(), node, resolved == null ? null : resolved.getClass());
6565
}

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.