Skip to content

Commit

Permalink
Split off JavaParser static interface to QuickJavaParser class
Browse files Browse the repository at this point in the history
  • Loading branch information
matozoid committed Feb 7, 2019
1 parent 7012fa2 commit bec5b1b
Show file tree
Hide file tree
Showing 155 changed files with 2,339 additions and 1,885 deletions.
2 changes: 1 addition & 1 deletion changelog.md
Expand Up @@ -523,7 +523,7 @@ private final JavaParser parser = new JavaParser(new ParserConfiguration().setVa
```
and like this for the static parse methods:
```java
JavaParser.getStaticConfiguration().setValidator(new Java9Validator());
QuickJavaParser.getConfiguration().setValidator(new Java9Validator());
```

* 862 552 "_" is an illegal identifier on source level 9.
Expand Down
@@ -1,7 +1,7 @@
package com.github.javaparser.generator.core;

import com.github.javaparser.JavaParser;
import com.github.javaparser.ParserConfiguration;
import com.github.javaparser.QuickJavaParser;
import com.github.javaparser.generator.core.node.*;
import com.github.javaparser.generator.core.other.TokenKindGenerator;
import com.github.javaparser.generator.core.visitor.*;
Expand Down Expand Up @@ -35,7 +35,7 @@ public static void main(String[] args) throws Exception {
final SourceRoot sourceRoot = new SourceRoot(root, parserConfiguration)
// .setPrinter(LexicalPreservingPrinter::print)
;
JavaParser.setStaticConfiguration(parserConfiguration);
QuickJavaParser.setConfiguration(parserConfiguration);

final Path generatedJavaCcRoot = Paths.get(args[0], "..", "javaparser-core", "target", "generated-sources", "javacc");
final SourceRoot generatedJavaCcSourceRoot = new SourceRoot(generatedJavaCcRoot, parserConfiguration)
Expand Down
Expand Up @@ -9,7 +9,7 @@
import com.github.javaparser.metamodel.BaseNodeMetaModel;
import com.github.javaparser.utils.SourceRoot;

import static com.github.javaparser.JavaParser.parseBodyDeclaration;
import static com.github.javaparser.QuickJavaParser.parseBodyDeclaration;

public class AcceptGenerator extends NodeGenerator {
private final MethodDeclaration genericAccept;
Expand Down
Expand Up @@ -8,7 +8,7 @@
import com.github.javaparser.metamodel.BaseNodeMetaModel;
import com.github.javaparser.utils.SourceRoot;

import static com.github.javaparser.JavaParser.parseBodyDeclaration;
import static com.github.javaparser.QuickJavaParser.parseBodyDeclaration;
import static com.github.javaparser.utils.CodeGenerationUtils.f;

public class CloneGenerator extends NodeGenerator {
Expand Down
Expand Up @@ -8,7 +8,7 @@
import com.github.javaparser.metamodel.JavaParserMetaModel;
import com.github.javaparser.utils.SourceRoot;

import static com.github.javaparser.JavaParser.parseBodyDeclaration;
import static com.github.javaparser.QuickJavaParser.parseBodyDeclaration;
import static com.github.javaparser.utils.CodeGenerationUtils.f;

public class GetMetaModelGenerator extends NodeGenerator {
Expand Down
Expand Up @@ -12,7 +12,7 @@
import com.github.javaparser.utils.SeparatedItemStringBuilder;
import com.github.javaparser.utils.SourceRoot;

import static com.github.javaparser.JavaParser.parseExplicitConstructorInvocationStmt;
import static com.github.javaparser.QuickJavaParser.parseExplicitConstructorInvocationStmt;
import static com.github.javaparser.utils.CodeGenerationUtils.f;

public class MainConstructorGenerator extends NodeGenerator {
Expand Down
Expand Up @@ -18,7 +18,7 @@
import java.util.List;
import java.util.Map;

import static com.github.javaparser.JavaParser.parseType;
import static com.github.javaparser.QuickJavaParser.parseType;
import static com.github.javaparser.ast.Modifier.Keyword.FINAL;
import static com.github.javaparser.ast.Modifier.Keyword.PUBLIC;
import static com.github.javaparser.ast.Modifier.createModifierList;
Expand Down
Expand Up @@ -10,7 +10,7 @@
import com.github.javaparser.metamodel.BaseNodeMetaModel;
import com.github.javaparser.metamodel.PropertyMetaModel;

import static com.github.javaparser.JavaParser.*;
import static com.github.javaparser.QuickJavaParser.parseBodyDeclaration;
import static com.github.javaparser.utils.CodeGenerationUtils.f;
import static com.github.javaparser.utils.Utils.capitalize;

Expand Down
Expand Up @@ -10,7 +10,7 @@
import com.github.javaparser.metamodel.PropertyMetaModel;
import com.github.javaparser.utils.SourceRoot;

import static com.github.javaparser.JavaParser.parseBodyDeclaration;
import static com.github.javaparser.QuickJavaParser.parseBodyDeclaration;
import static com.github.javaparser.utils.CodeGenerationUtils.f;

public class ReplaceMethodGenerator extends NodeGenerator {
Expand Down
Expand Up @@ -13,7 +13,7 @@
import java.util.Set;
import java.util.function.Consumer;

import static com.github.javaparser.JavaParser.parseBodyDeclaration;
import static com.github.javaparser.QuickJavaParser.parseBodyDeclaration;
import static com.github.javaparser.utils.CodeGenerationUtils.f;
import static com.github.javaparser.utils.Utils.set;

Expand Down
Expand Up @@ -11,7 +11,7 @@

import java.util.List;

import static com.github.javaparser.JavaParser.parseStatement;
import static com.github.javaparser.QuickJavaParser.parseStatement;

/**
* Generates JavaParser's HashCodeVisitor.
Expand Down
@@ -1,89 +1,89 @@
/*
* Copyright (C) 2007-2010 Júlio Vilmar Gesser.
* Copyright (C) 2011, 2013-2016 The JavaParser Team.
*
* This file is part of JavaParser.
*
* JavaParser can be used either under the terms of
* a) the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* b) the terms of the Apache License
*
* You should have received a copy of both licenses in LICENCE.LGPL and
* LICENCE.APACHE. Please refer to those files for details.
*
* JavaParser is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*/

package com.github.javaparser.generator.core.visitor;

import static com.github.javaparser.JavaParser.parseStatement;

import java.util.List;

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.metamodel.BaseNodeMetaModel;
import com.github.javaparser.metamodel.JavaParserMetaModel;
import com.github.javaparser.metamodel.PropertyMetaModel;
import com.github.javaparser.utils.SeparatedItemStringBuilder;
import com.github.javaparser.utils.SourceRoot;

public class NoCommentHashCodeVisitorGenerator extends VisitorGenerator {

public NoCommentHashCodeVisitorGenerator(SourceRoot sourceRoot) {
super(sourceRoot, "com.github.javaparser.ast.visitor", "NoCommentHashCodeVisitor", "Integer", "Void", true);
}

@Override
protected void generateVisitMethodBody(BaseNodeMetaModel node, MethodDeclaration visitMethod,
CompilationUnit compilationUnit) {
visitMethod.getParameters().forEach(p -> p.setFinal(true));

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

final SeparatedItemStringBuilder builder = new SeparatedItemStringBuilder("return ", "* 31 +", ";");
final List<PropertyMetaModel> propertyMetaModels = node.getAllPropertyMetaModels();
if (node.equals(JavaParserMetaModel.lineCommentMetaModel)
|| node.equals(JavaParserMetaModel.blockCommentMetaModel)
|| node.equals(JavaParserMetaModel.javadocCommentMetaModel) || propertyMetaModels.isEmpty()) {
builder.append("0");
} else {
for (PropertyMetaModel field : propertyMetaModels) {
final String getter = field.getGetterMethodName() + "()";
if (field.equals(JavaParserMetaModel.nodeMetaModel.commentPropertyMetaModel)) {
if (propertyMetaModels.size() == 1) {
builder.append("0");
break;
} else
continue;
}
// Is this field another AST node? Visit it.
if (field.getNodeReference().isPresent()) {
if (field.isOptional()) {
builder.append("(n.%s.isPresent()? n.%s.get().accept(this, arg):0)", getter, getter);
} else {
builder.append("(n.%s.accept(this, arg))", getter);
}
} else {
Class<?> type = field.getType();
if (type.equals(boolean.class)) {
builder.append("(n.%s?1:0)", getter);
} else if (type.equals(int.class)) {
builder.append("n.%s", getter);
} else {
builder.append("(n.%s.hashCode())", getter);
}
}
}
}
body.addStatement(parseStatement(builder.toString()));
}
}
/*
* Copyright (C) 2007-2010 Júlio Vilmar Gesser.
* Copyright (C) 2011, 2013-2016 The JavaParser Team.
*
* This file is part of JavaParser.
*
* JavaParser can be used either under the terms of
* a) the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* b) the terms of the Apache License
*
* You should have received a copy of both licenses in LICENCE.LGPL and
* LICENCE.APACHE. Please refer to those files for details.
*
* JavaParser is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*/

package com.github.javaparser.generator.core.visitor;

import java.util.List;

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.metamodel.BaseNodeMetaModel;
import com.github.javaparser.metamodel.JavaParserMetaModel;
import com.github.javaparser.metamodel.PropertyMetaModel;
import com.github.javaparser.utils.SeparatedItemStringBuilder;
import com.github.javaparser.utils.SourceRoot;

import static com.github.javaparser.QuickJavaParser.parseStatement;

public class NoCommentHashCodeVisitorGenerator extends VisitorGenerator {

public NoCommentHashCodeVisitorGenerator(SourceRoot sourceRoot) {
super(sourceRoot, "com.github.javaparser.ast.visitor", "NoCommentHashCodeVisitor", "Integer", "Void", true);
}

@Override
protected void generateVisitMethodBody(BaseNodeMetaModel node, MethodDeclaration visitMethod,
CompilationUnit compilationUnit) {
visitMethod.getParameters().forEach(p -> p.setFinal(true));

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

final SeparatedItemStringBuilder builder = new SeparatedItemStringBuilder("return ", "* 31 +", ";");
final List<PropertyMetaModel> propertyMetaModels = node.getAllPropertyMetaModels();
if (node.equals(JavaParserMetaModel.lineCommentMetaModel)
|| node.equals(JavaParserMetaModel.blockCommentMetaModel)
|| node.equals(JavaParserMetaModel.javadocCommentMetaModel) || propertyMetaModels.isEmpty()) {
builder.append("0");
} else {
for (PropertyMetaModel field : propertyMetaModels) {
final String getter = field.getGetterMethodName() + "()";
if (field.equals(JavaParserMetaModel.nodeMetaModel.commentPropertyMetaModel)) {
if (propertyMetaModels.size() == 1) {
builder.append("0");
break;
} else
continue;
}
// Is this field another AST node? Visit it.
if (field.getNodeReference().isPresent()) {
if (field.isOptional()) {
builder.append("(n.%s.isPresent()? n.%s.get().accept(this, arg):0)", getter, getter);
} else {
builder.append("(n.%s.accept(this, arg))", getter);
}
} else {
Class<?> type = field.getType();
if (type.equals(boolean.class)) {
builder.append("(n.%s?1:0)", getter);
} else if (type.equals(int.class)) {
builder.append("n.%s", getter);
} else {
builder.append("(n.%s.hashCode())", getter);
}
}
}
}
body.addStatement(parseStatement(builder.toString()));
}
}
Expand Up @@ -9,7 +9,7 @@
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;

import static com.github.javaparser.JavaParser.parseStatement;
import static com.github.javaparser.QuickJavaParser.parseStatement;
import static com.github.javaparser.generator.metamodel.MetaModelGenerator.nodeMetaModelFieldName;
import static com.github.javaparser.generator.metamodel.MetaModelGenerator.propertyMetaModelFieldName;
import static com.github.javaparser.utils.CodeGenerationUtils.f;
Expand Down
Expand Up @@ -9,7 +9,7 @@
import java.lang.reflect.Field;
import java.lang.reflect.Method;

import static com.github.javaparser.JavaParser.parseStatement;
import static com.github.javaparser.QuickJavaParser.parseStatement;
import static com.github.javaparser.ast.Modifier.Keyword.PUBLIC;
import static com.github.javaparser.generator.metamodel.MetaModelGenerator.isNode;
import static com.github.javaparser.generator.metamodel.MetaModelGenerator.nodeMetaModelName;
Expand Down
Expand Up @@ -2,6 +2,7 @@

import com.github.javaparser.JavaParser;
import com.github.javaparser.ParserConfiguration;
import com.github.javaparser.QuickJavaParser;
import com.github.javaparser.ast.*;
import com.github.javaparser.ast.body.*;
import com.github.javaparser.ast.comments.BlockComment;
Expand Down Expand Up @@ -164,7 +165,7 @@ public static void main(String[] args) throws NoSuchMethodException {
.setStoreTokens(false);
final SourceRoot sourceRoot = new SourceRoot(root, parserConfiguration);
sourceRoot.setPrinter(new PrettyPrinter(new PrettyPrinterConfiguration().setEndOfLineCharacter("\n"))::print);
JavaParser.setStaticConfiguration(parserConfiguration);
QuickJavaParser.setConfiguration(parserConfiguration);

new MetaModelGenerator().run(sourceRoot);

Expand Down
Expand Up @@ -16,7 +16,7 @@
import java.util.Comparator;
import java.util.List;

import static com.github.javaparser.JavaParser.*;
import static com.github.javaparser.QuickJavaParser.*;
import static com.github.javaparser.ast.Modifier.Keyword.*;
import static com.github.javaparser.generator.metamodel.MetaModelGenerator.*;
import static com.github.javaparser.utils.CodeGenerationUtils.f;
Expand Down
Expand Up @@ -192,9 +192,9 @@ protected JavaToken readToken(String name, JsonObject jsonObject) {
* @see com.github.javaparser.ParserConfiguration#ParserConfiguration()
*/
private void setSymbolResolverIfCompilationUnit(Node node) {
if (node instanceof CompilationUnit && JavaParser.getStaticConfiguration().getSymbolResolver().isPresent()) {
if (node instanceof CompilationUnit && QuickJavaParser.getConfiguration().getSymbolResolver().isPresent()) {
CompilationUnit cu = (CompilationUnit)node;
cu.setData(Node.SYMBOL_RESOLVER_KEY, JavaParser.getStaticConfiguration().getSymbolResolver().get());
cu.setData(Node.SYMBOL_RESOLVER_KEY, QuickJavaParser.getConfiguration().getSymbolResolver().get());
}
}

Expand Down

0 comments on commit bec5b1b

Please sign in to comment.