Skip to content

Commit

Permalink
Use Name only in modules, no type
Browse files Browse the repository at this point in the history
  • Loading branch information
matozoid committed Jul 31, 2018
1 parent bb99ed8 commit 25ccb28
Show file tree
Hide file tree
Showing 27 changed files with 178 additions and 195 deletions.
Expand Up @@ -88,13 +88,13 @@ public void jlsExample1() {
assertThat(moduleOpensStmt.getModuleNames()).containsExactly(parseName("T1.U1"), parseName("T2.U2"));

ModuleUsesStmt moduleUsesStmt = module.getModuleStmts().get(8).asModuleUsesStmt();
assertThat(moduleUsesStmt.getType().toString()).isEqualTo("V.W");
assertThat(moduleUsesStmt.getNameAsString()).isEqualTo("V.W");

ModuleProvidesStmt moduleProvidesStmt = module.getModuleStmts().get(9).asModuleProvidesStmt();
assertThat(moduleProvidesStmt.getType().toString()).isEqualTo("X.Y");
assertThat(moduleProvidesStmt.getWithTypes()).containsExactly(
new ClassOrInterfaceType(parseClassOrInterfaceType("Z1"), "Z2"),
new ClassOrInterfaceType(parseClassOrInterfaceType("Z3"), "Z4"));
assertThat(moduleProvidesStmt.getNameAsString()).isEqualTo("X.Y");
assertThat(moduleProvidesStmt.getWith()).containsExactly(
parseName("Z1.Z2"),
parseName("Z3.Z4"));

}

Expand Down
Expand Up @@ -61,6 +61,7 @@
import static com.github.javaparser.Providers.provider;
import static com.github.javaparser.utils.CodeGenerationUtils.subtractPaths;
import static com.github.javaparser.utils.Utils.assertNotNull;
import com.github.javaparser.ast.Node;

/**
* <p>
Expand Down
Expand Up @@ -42,7 +42,6 @@
import static java.util.stream.Collectors.toList;
import com.github.javaparser.ast.Node;
import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;

import java.util.Optional;

/**
Expand Down Expand Up @@ -247,5 +246,4 @@ public Optional<TypeDeclaration> toTypeDeclaration() {
}

public abstract ResolvedReferenceTypeDeclaration resolve();

}
Expand Up @@ -30,24 +30,18 @@
import com.github.javaparser.ast.type.Type;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;

import java.util.Optional;

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

import com.github.javaparser.ast.Node;
import com.github.javaparser.ast.visitor.CloneVisitor;
import com.github.javaparser.metamodel.FieldAccessExprMetaModel;
import com.github.javaparser.metamodel.JavaParserMetaModel;

import javax.annotation.Generated;

import com.github.javaparser.TokenRange;
import com.github.javaparser.metamodel.OptionalProperty;
import com.github.javaparser.resolution.Resolvable;
import com.github.javaparser.resolution.UnsolvedSymbolException;
import com.github.javaparser.resolution.declarations.ResolvedValueDeclaration;

import java.util.function.Consumer;

/**
Expand Down
Expand Up @@ -26,22 +26,17 @@
import com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;

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

import com.github.javaparser.ast.Node;
import com.github.javaparser.ast.visitor.CloneVisitor;
import com.github.javaparser.metamodel.NameExprMetaModel;
import com.github.javaparser.metamodel.JavaParserMetaModel;

import javax.annotation.Generated;

import com.github.javaparser.TokenRange;
import com.github.javaparser.resolution.Resolvable;
import com.github.javaparser.resolution.UnsolvedSymbolException;
import com.github.javaparser.resolution.declarations.ResolvedValueDeclaration;
import com.github.javaparser.resolution.types.ResolvedUnionType;

import java.util.function.Consumer;
import java.util.Optional;

Expand Down
Expand Up @@ -45,7 +45,6 @@
import com.github.javaparser.resolution.Resolvable;
import com.github.javaparser.resolution.UnsolvedSymbolException;
import com.github.javaparser.resolution.declarations.ResolvedConstructorDeclaration;

import java.util.function.Consumer;

/**
Expand Down
Expand Up @@ -14,14 +14,10 @@
import com.github.javaparser.ast.visitor.VoidVisitor;
import com.github.javaparser.metamodel.JavaParserMetaModel;
import com.github.javaparser.metamodel.ModuleDeclarationMetaModel;

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

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

import javax.annotation.Generated;

import com.github.javaparser.TokenRange;

/**
Expand Down
Expand Up @@ -11,7 +11,6 @@
import com.github.javaparser.ast.visitor.VoidVisitor;
import com.github.javaparser.metamodel.JavaParserMetaModel;
import com.github.javaparser.metamodel.ModuleExportsStmtMetaModel;

import static com.github.javaparser.JavaParser.parseName;
import static com.github.javaparser.utils.Utils.assertNotNull;
import javax.annotation.Generated;
Expand Down
Expand Up @@ -3,7 +3,8 @@
import com.github.javaparser.ast.AllFieldsConstructor;
import com.github.javaparser.ast.Node;
import com.github.javaparser.ast.NodeList;
import com.github.javaparser.ast.nodeTypes.NodeWithType;
import com.github.javaparser.ast.expr.Name;
import com.github.javaparser.ast.nodeTypes.NodeWithName;
import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.type.ClassOrInterfaceType;
import com.github.javaparser.ast.type.Type;
Expand All @@ -12,8 +13,6 @@
import com.github.javaparser.ast.visitor.VoidVisitor;
import com.github.javaparser.metamodel.JavaParserMetaModel;
import com.github.javaparser.metamodel.ModuleProvidesStmtMetaModel;
import java.util.Arrays;
import java.util.List;
import static com.github.javaparser.utils.Utils.assertNotNull;
import javax.annotation.Generated;
import com.github.javaparser.TokenRange;
Expand All @@ -23,29 +22,29 @@
/**
* A provides directive in module-info.java. <code>provides X.Y with Z1.Z2, Z3.Z4;</code>
*/
public final class ModuleProvidesStmt extends ModuleStmt implements NodeWithType<ModuleProvidesStmt, Type> {
public final class ModuleProvidesStmt extends ModuleStmt implements NodeWithName<ModuleProvidesStmt> {

private Type type;
private Name name;

private NodeList<Type> withTypes;
private NodeList<Name> with;

public ModuleProvidesStmt() {
this(null, new ClassOrInterfaceType(), new NodeList<>());
this(null, new Name(), new NodeList<>());
}

@AllFieldsConstructor
public ModuleProvidesStmt(Type type, NodeList<Type> withTypes) {
this(null, type, withTypes);
public ModuleProvidesStmt(Name name, NodeList<Name> with) {
this(null, name, with);
}

/**
* This constructor is used by the parser and is considered private.
*/
@Generated("com.github.javaparser.generator.core.node.MainConstructorGenerator")
public ModuleProvidesStmt(TokenRange tokenRange, Type type, NodeList<Type> withTypes) {
public ModuleProvidesStmt(TokenRange tokenRange, Name name, NodeList<Name> with) {
super(tokenRange);
setType(type);
setWithTypes(withTypes);
setName(name);
setWith(with);
customInitialization();
}

Expand All @@ -66,53 +65,15 @@ public <A> void accept(final VoidVisitor<A> v, final A arg) {
public boolean remove(Node node) {
if (node == null)
return false;
for (int i = 0; i < withTypes.size(); i++) {
if (withTypes.get(i) == node) {
withTypes.remove(i);
for (int i = 0; i < with.size(); i++) {
if (with.get(i) == node) {
with.remove(i);
return true;
}
}
return super.remove(node);
}

@Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
public Type getType() {
return type;
}

@Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
public ModuleProvidesStmt setType(final Type type) {
assertNotNull(type);
if (type == this.type) {
return (ModuleProvidesStmt) this;
}
notifyPropertyChange(ObservableProperty.TYPE, this.type, type);
if (this.type != null)
this.type.setParentNode(null);
this.type = type;
setAsParentNodeOf(type);
return this;
}

@Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
public NodeList<Type> getWithTypes() {
return withTypes;
}

@Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
public ModuleProvidesStmt setWithTypes(final NodeList<Type> withTypes) {
assertNotNull(withTypes);
if (withTypes == this.withTypes) {
return (ModuleProvidesStmt) this;
}
notifyPropertyChange(ObservableProperty.WITH_TYPES, this.withTypes, withTypes);
if (this.withTypes != null)
this.withTypes.setParentNode(null);
this.withTypes = withTypes;
setAsParentNodeOf(withTypes);
return this;
}

@Override
@Generated("com.github.javaparser.generator.core.node.CloneGenerator")
public ModuleProvidesStmt clone() {
Expand All @@ -125,24 +86,6 @@ public ModuleProvidesStmtMetaModel getMetaModel() {
return JavaParserMetaModel.moduleProvidesStmtMetaModel;
}

@Override
@Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator")
public boolean replace(Node node, Node replacementNode) {
if (node == null)
return false;
if (node == type) {
setType((Type) replacementNode);
return true;
}
for (int i = 0; i < withTypes.size(); i++) {
if (withTypes.get(i) == node) {
withTypes.set(i, (Type) replacementNode);
return true;
}
}
return super.replace(node, replacementNode);
}

@Override
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isModuleProvidesStmt() {
Expand All @@ -165,4 +108,59 @@ public void ifModuleProvidesStmt(Consumer<ModuleProvidesStmt> action) {
public Optional<ModuleProvidesStmt> toModuleProvidesStmt() {
return Optional.of(this);
}

@Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
public Name getName() {
return name;
}

@Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
public ModuleProvidesStmt setName(final Name name) {
assertNotNull(name);
if (name == this.name) {
return (ModuleProvidesStmt) this;
}
notifyPropertyChange(ObservableProperty.NAME, this.name, name);
if (this.name != null)
this.name.setParentNode(null);
this.name = name;
setAsParentNodeOf(name);
return this;
}

@Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
public ModuleProvidesStmt setWith(final NodeList<Name> with) {
assertNotNull(with);
if (with == this.with) {
return (ModuleProvidesStmt) this;
}
notifyPropertyChange(ObservableProperty.WITH, this.with, with);
if (this.with != null)
this.with.setParentNode(null);
this.with = with;
setAsParentNodeOf(with);
return this;
}

@Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
public NodeList<Name> getWith() {
return with;
}

@Override
public boolean replace(Node node, Node replacementNode) {
if (node == null)
return false;
if (node == name) {
setName((Name) replacementNode);
return true;
}
for (int i = 0; i < with.size(); i++) {
if (with.get(i) == node) {
with.set(i, (Name) replacementNode);
return true;
}
}
return super.replace(node, replacementNode);
}
}

0 comments on commit 25ccb28

Please sign in to comment.