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")); assertThat(moduleOpensStmt.getModuleNames()).containsExactly(parseName("T1.U1"), parseName("T2.U2"));


ModuleUsesStmt moduleUsesStmt = module.getModuleStmts().get(8).asModuleUsesStmt(); 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(); ModuleProvidesStmt moduleProvidesStmt = module.getModuleStmts().get(9).asModuleProvidesStmt();
assertThat(moduleProvidesStmt.getType().toString()).isEqualTo("X.Y"); assertThat(moduleProvidesStmt.getNameAsString()).isEqualTo("X.Y");
assertThat(moduleProvidesStmt.getWithTypes()).containsExactly( assertThat(moduleProvidesStmt.getWith()).containsExactly(
new ClassOrInterfaceType(parseClassOrInterfaceType("Z1"), "Z2"), parseName("Z1.Z2"),
new ClassOrInterfaceType(parseClassOrInterfaceType("Z3"), "Z4")); parseName("Z3.Z4"));


} }


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


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

import java.util.Optional; import java.util.Optional;


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


public abstract ResolvedReferenceTypeDeclaration resolve(); public abstract ResolvedReferenceTypeDeclaration resolve();

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

import java.util.Optional; import java.util.Optional;

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

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

import javax.annotation.Generated; import javax.annotation.Generated;

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

import java.util.function.Consumer; 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.stmt.ExplicitConstructorInvocationStmt;
import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor; import com.github.javaparser.ast.visitor.VoidVisitor;

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

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

import javax.annotation.Generated; import javax.annotation.Generated;

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

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


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

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


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

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

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

import javax.annotation.Generated; import javax.annotation.Generated;

import com.github.javaparser.TokenRange; import com.github.javaparser.TokenRange;


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

import static com.github.javaparser.JavaParser.parseName; import static com.github.javaparser.JavaParser.parseName;
import static com.github.javaparser.utils.Utils.assertNotNull; import static com.github.javaparser.utils.Utils.assertNotNull;
import javax.annotation.Generated; import javax.annotation.Generated;
Expand Down
Expand Up @@ -3,7 +3,8 @@
import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.AllFieldsConstructor;
import com.github.javaparser.ast.Node; import com.github.javaparser.ast.Node;
import com.github.javaparser.ast.NodeList; 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.observer.ObservableProperty;
import com.github.javaparser.ast.type.ClassOrInterfaceType; import com.github.javaparser.ast.type.ClassOrInterfaceType;
import com.github.javaparser.ast.type.Type; import com.github.javaparser.ast.type.Type;
Expand All @@ -12,8 +13,6 @@
import com.github.javaparser.ast.visitor.VoidVisitor; import com.github.javaparser.ast.visitor.VoidVisitor;
import com.github.javaparser.metamodel.JavaParserMetaModel; import com.github.javaparser.metamodel.JavaParserMetaModel;
import com.github.javaparser.metamodel.ModuleProvidesStmtMetaModel; import com.github.javaparser.metamodel.ModuleProvidesStmtMetaModel;
import java.util.Arrays;
import java.util.List;
import static com.github.javaparser.utils.Utils.assertNotNull; import static com.github.javaparser.utils.Utils.assertNotNull;
import javax.annotation.Generated; import javax.annotation.Generated;
import com.github.javaparser.TokenRange; 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> * 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() { public ModuleProvidesStmt() {
this(null, new ClassOrInterfaceType(), new NodeList<>()); this(null, new Name(), new NodeList<>());
} }


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


/** /**
* This constructor is used by the parser and is considered private. * This constructor is used by the parser and is considered private.
*/ */
@Generated("com.github.javaparser.generator.core.node.MainConstructorGenerator") @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); super(tokenRange);
setType(type); setName(name);
setWithTypes(withTypes); setWith(with);
customInitialization(); customInitialization();
} }


Expand All @@ -66,53 +65,15 @@ public <A> void accept(final VoidVisitor<A> v, final A arg) {
public boolean remove(Node node) { public boolean remove(Node node) {
if (node == null) if (node == null)
return false; return false;
for (int i = 0; i < withTypes.size(); i++) { for (int i = 0; i < with.size(); i++) {
if (withTypes.get(i) == node) { if (with.get(i) == node) {
withTypes.remove(i); with.remove(i);
return true; return true;
} }
} }
return super.remove(node); 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 @Override
@Generated("com.github.javaparser.generator.core.node.CloneGenerator") @Generated("com.github.javaparser.generator.core.node.CloneGenerator")
public ModuleProvidesStmt clone() { public ModuleProvidesStmt clone() {
Expand All @@ -125,24 +86,6 @@ public ModuleProvidesStmtMetaModel getMetaModel() {
return JavaParserMetaModel.moduleProvidesStmtMetaModel; 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 @Override
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator") @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isModuleProvidesStmt() { public boolean isModuleProvidesStmt() {
Expand All @@ -165,4 +108,59 @@ public void ifModuleProvidesStmt(Consumer<ModuleProvidesStmt> action) {
public Optional<ModuleProvidesStmt> toModuleProvidesStmt() { public Optional<ModuleProvidesStmt> toModuleProvidesStmt() {
return Optional.of(this); 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.