Skip to content

Commit

Permalink
Merge master
Browse files Browse the repository at this point in the history
  • Loading branch information
matozoid committed Jan 30, 2017
1 parent 06e5337 commit 9fc1613
Show file tree
Hide file tree
Showing 22 changed files with 25 additions and 52 deletions.
Expand Up @@ -2,20 +2,17 @@

import com.github.javaparser.JavaParser;
import com.github.javaparser.generator.utils.SourceRoot;
import com.github.javaparser.metamodel.JavaParserMetaModel;

/**
* A general pattern that the generators in this module will follow.
*/
public abstract class Generator {
protected final JavaParser javaParser;
protected final SourceRoot sourceRoot;
protected final JavaParserMetaModel javaParserMetaModel;

protected Generator(JavaParser javaParser, SourceRoot sourceRoot, JavaParserMetaModel javaParserMetaModel) {
protected Generator(JavaParser javaParser, SourceRoot sourceRoot) {
this.javaParser = javaParser;
this.sourceRoot = sourceRoot;
this.javaParserMetaModel = javaParserMetaModel;
}

public abstract void generate() throws Exception;
Expand Down
Expand Up @@ -16,12 +16,12 @@
* ready for modification.
*/
public abstract class NodeGenerator extends Generator {
protected NodeGenerator(JavaParser javaParser, SourceRoot sourceRoot, JavaParserMetaModel javaParserMetaModel) {
super(javaParser, sourceRoot, javaParserMetaModel);
protected NodeGenerator(JavaParser javaParser, SourceRoot sourceRoot) {
super(javaParser, sourceRoot);
}

public final void generate() throws IOException {
for (BaseNodeMetaModel nodeMetaModel : javaParserMetaModel.getNodeMetaModels()) {
for (BaseNodeMetaModel nodeMetaModel : JavaParserMetaModel.getNodeMetaModels()) {
CompilationUnit nodeCu = sourceRoot.parse(nodeMetaModel.getPackageName(), nodeMetaModel.getTypeName() + ".java", javaParser).orElseThrow(() -> new IOException(f("java file for %s not found", nodeMetaModel.getTypeName())));
ClassOrInterfaceDeclaration nodeCoid = nodeCu.getClassByName(nodeMetaModel.getTypeName()).orElseThrow(() -> new IOException("Can't find class"));
generateNode(nodeMetaModel, nodeCu, nodeCoid);
Expand Down
Expand Up @@ -2,20 +2,16 @@

import com.github.javaparser.JavaParser;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.Modifier;
import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
import com.github.javaparser.ast.body.MethodDeclaration;
import com.github.javaparser.generator.utils.SourceRoot;
import com.github.javaparser.metamodel.BaseNodeMetaModel;
import com.github.javaparser.metamodel.JavaParserMetaModel;
import com.github.javaparser.metamodel.PropertyMetaModel;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

import static com.github.javaparser.ast.Modifier.*;
import static com.github.javaparser.ast.Modifier.PUBLIC;

/**
* Makes it easier to generate visitor classes.
Expand All @@ -29,8 +25,8 @@ public abstract class VisitorGenerator extends Generator {
private final String argumentType;
private final boolean createMissingVisitMethods;

public VisitorGenerator(JavaParser javaParser, SourceRoot sourceRoot, String pkg, String visitorClassName, String returnType, String argumentType, boolean createMissingVisitMethods) {
super(javaParser, sourceRoot, javaParserMetaModel);
protected VisitorGenerator(JavaParser javaParser, SourceRoot sourceRoot, String pkg, String visitorClassName, String returnType, String argumentType, boolean createMissingVisitMethods) {
super(javaParser, sourceRoot);
this.pkg = pkg;
this.visitorClassName = visitorClassName;
this.returnType = returnType;
Expand Down
@@ -1,12 +1,10 @@
package com.github.javaparser.generator.core;

import com.github.javaparser.JavaParser;
import com.github.javaparser.generator.VisitorGenerator;
import com.github.javaparser.generator.core.node.GetNodeListsGenerator;
import com.github.javaparser.generator.core.visitor.*;
import com.github.javaparser.generator.utils.GeneratorUtils;
import com.github.javaparser.generator.utils.SourceRoot;
import com.github.javaparser.metamodel.JavaParserMetaModel;

import java.io.IOException;
import java.nio.file.Path;
Expand All @@ -32,7 +30,7 @@ public static void main(String[] args) throws IOException {
new CloneVisitorGenerator(javaParser, sourceRoot).generate();
new TreeStructureVisitorGenerator(javaParser, sourceRoot).generate();

new GetNodeListsGenerator(javaParser, sourceRoot, javaParserMetaModel).generate();
new GetNodeListsGenerator(javaParser, sourceRoot).generate();

sourceRoot.saveAll();
}
Expand Down
Expand Up @@ -10,7 +10,6 @@
import com.github.javaparser.generator.utils.SeparatedItemStringBuilder;
import com.github.javaparser.generator.utils.SourceRoot;
import com.github.javaparser.metamodel.BaseNodeMetaModel;
import com.github.javaparser.metamodel.JavaParserMetaModel;
import com.github.javaparser.metamodel.PropertyMetaModel;

import java.util.List;
Expand All @@ -19,8 +18,8 @@
import static com.github.javaparser.generator.utils.GeneratorUtils.f;

public class GetNodeListsGenerator extends NodeGenerator {
public GetNodeListsGenerator(JavaParser javaParser, SourceRoot sourceRoot, JavaParserMetaModel javaParserMetaModel) {
super(javaParser, sourceRoot, javaParserMetaModel);
public GetNodeListsGenerator(JavaParser javaParser, SourceRoot sourceRoot) {
super(javaParser, sourceRoot);
}

@Override
Expand Down
@@ -1,9 +1,10 @@
package com.github.javaparser.generator.visitor;
package com.github.javaparser.generator.core.visitor;

import com.github.javaparser.JavaParser;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.body.MethodDeclaration;
import com.github.javaparser.ast.stmt.BlockStmt;
import com.github.javaparser.generator.VisitorGenerator;
import com.github.javaparser.generator.utils.SourceRoot;
import com.github.javaparser.metamodel.BaseNodeMetaModel;
import com.github.javaparser.metamodel.JavaParserMetaModel;
Expand All @@ -19,7 +20,9 @@ public TreeStructureVisitorGenerator(JavaParser javaParser, SourceRoot sourceRoo
}

@Override
protected void generateVisitMethodBody(BaseNodeMetaModel node, MethodDeclaration visitMethod, List<PropertyMetaModel> allPropertyMetaModels, CompilationUnit compilationUnit) {
protected void generateVisitMethodBody(BaseNodeMetaModel node, MethodDeclaration visitMethod, CompilationUnit compilationUnit) {
final List<PropertyMetaModel> allPropertyMetaModels = node.getAllPropertyMetaModels();

BlockStmt body = visitMethod.getBody().get();
body.getStatements().clear();

Expand Down
21 changes: 10 additions & 11 deletions javaparser-core/src/main/java/com/github/javaparser/ast/Node.java
Expand Up @@ -35,13 +35,11 @@
import com.github.javaparser.ast.visitor.Visitable;
import com.github.javaparser.printer.PrettyPrinter;
import com.github.javaparser.printer.PrettyPrinterConfiguration;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.*;

import static java.util.Collections.unmodifiableList;

/**
Expand Down Expand Up @@ -112,7 +110,7 @@ public enum ObserverRegistrationMode {
/**
* This can be used to sort nodes on position.
*/
public static Comparator<Node> NODE_BY_BEGIN_POSITION = (a, b) -> {
public static Comparator<Node> NODE_BY_BEGIN_POSITION = ( a, b) -> {
if (a.getRange().isPresent() && b.getRange().isPresent()) {
return a.getRange().get().begin.compareTo(b.getRange().get().begin);
}
Expand Down Expand Up @@ -342,7 +340,7 @@ public List<Comment> getAllContainedComments() {
*/
@Override
public Node setParentNode(Node parentNode) {
observers.forEach(o -> o.parentChange(this, this.parentNode, parentNode));
observers.forEach( o -> o.parentChange(this, this.parentNode, parentNode));
// remove from old parent, if any
if (this.parentNode != null) {
this.parentNode.childNodes.remove(this);
Expand Down Expand Up @@ -381,7 +379,7 @@ public boolean hasComment() {
}

public void tryAddImportToParentCompilationUnit(Class<?> clazz) {
getAncestorOfType(CompilationUnit.class).ifPresent(p -> p.addImport(clazz));
getAncestorOfType(CompilationUnit.class).ifPresent( p -> p.addImport(clazz));
}

/**
Expand Down Expand Up @@ -459,7 +457,7 @@ public boolean remove() {
// ok, we found a potential getter. Before invoking let's check there is a corresponding setter,
// otherwise there is no point
String setterName = "set" + method.getName().substring("get".length());
Optional<Method> optSetter = Arrays.stream(parentClass.getMethods()).filter(m -> m.getName().equals(setterName)).filter(m -> !java.lang.reflect.Modifier.isStatic(m.getModifiers())).filter(m -> m.getParameterCount() == 1).filter(m -> m.getParameterTypes()[0].equals(setterParamType)).findFirst();
Optional<Method> optSetter = Arrays.stream(parentClass.getMethods()).filter( m -> m.getName().equals(setterName)).filter( m -> !java.lang.reflect.Modifier.isStatic(m.getModifiers())).filter( m -> m.getParameterCount() == 1).filter( m -> m.getParameterTypes()[0].equals(setterParamType)).findFirst();
if (optSetter.isPresent()) {
try {
Object resultRaw = method.invoke(parentNode);
Expand Down Expand Up @@ -502,7 +500,7 @@ protected void setAsParentNodeOf(NodeList<? extends Node> list) {
}

protected <P> void notifyPropertyChange(ObservableProperty property, P oldValue, P newValue) {
this.observers.forEach(o -> o.propertyChange(this, property, oldValue, newValue));
this.observers.forEach( o -> o.propertyChange(this, property, oldValue, newValue));
}

@Override
Expand All @@ -523,7 +521,7 @@ public void register(AstObserver observer, ObserverRegistrationMode mode) {
if (mode == null) {
throw new IllegalArgumentException("Mode should be not null");
}
switch (mode) {
switch(mode) {
case JUST_THIS_NODE:
register(observer);
break;
Expand All @@ -543,9 +541,10 @@ public void register(AstObserver observer, ObserverRegistrationMode mode) {
*/
public void registerForSubtree(AstObserver observer) {
register(observer);
this.getChildNodes().forEach(c -> c.registerForSubtree(observer));
this.getNodeLists().forEach(nl -> {
if (nl != null) nl.register(observer);
this.getChildNodes().forEach( c -> c.registerForSubtree(observer));
this.getNodeLists().forEach( nl -> {
if (nl != null)
nl.register(observer);
});
}

Expand Down
Expand Up @@ -26,10 +26,8 @@
import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;

import java.util.Arrays;
import java.util.List;

import static com.github.javaparser.utils.Utils.assertNotNull;

/**
Expand Down
Expand Up @@ -33,7 +33,6 @@
import com.github.javaparser.ast.type.Type;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;

import java.util.Arrays;
import java.util.List;
import java.util.Optional;
Expand Down
Expand Up @@ -29,7 +29,6 @@
import com.github.javaparser.ast.type.Type;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;

import java.util.Arrays;
import java.util.List;
import java.util.Optional;
Expand Down
Expand Up @@ -29,7 +29,6 @@
import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;

import java.util.Arrays;
import java.util.List;
import java.util.Optional;
Expand Down
Expand Up @@ -28,7 +28,6 @@
import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;

import java.util.Arrays;
import java.util.List;
import java.util.Optional;
Expand Down
Expand Up @@ -28,10 +28,8 @@
import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;

import java.util.Arrays;
import java.util.List;

import static com.github.javaparser.utils.Utils.assertNotNull;

/**
Expand Down
Expand Up @@ -27,7 +27,6 @@
import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;

import java.util.Arrays;
import java.util.List;
import java.util.Optional;
Expand Down
Expand Up @@ -31,7 +31,6 @@
import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;

import java.util.Arrays;
import java.util.List;
import java.util.Optional;
Expand Down
Expand Up @@ -28,10 +28,8 @@
import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;

import java.util.Arrays;
import java.util.List;

import static com.github.javaparser.utils.Utils.assertNotNull;

/**
Expand Down
Expand Up @@ -28,7 +28,6 @@
import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
Expand Down
Expand Up @@ -30,10 +30,8 @@
import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;

import java.util.Arrays;
import java.util.List;

import static com.github.javaparser.utils.Utils.assertNotNull;

/**
Expand Down
Expand Up @@ -31,7 +31,6 @@
import java.io.IOException;
import java.util.Arrays;
import java.util.List;

import static com.github.javaparser.utils.Utils.assertNotNull;

/**
Expand Down
Expand Up @@ -26,7 +26,6 @@
import com.github.javaparser.ast.expr.AnnotationExpr;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;

import java.util.Arrays;
import java.util.List;

Expand Down
Expand Up @@ -27,7 +27,6 @@
import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;

import java.util.Arrays;
import java.util.List;

Expand Down
Expand Up @@ -28,7 +28,6 @@
import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;

import java.util.Arrays;
import java.util.List;
import java.util.Optional;
Expand Down

0 comments on commit 9fc1613

Please sign in to comment.