Navigation Menu

Skip to content

Commit

Permalink
basic isEditable() check on JavaSource with accompanying test asserti…
Browse files Browse the repository at this point in the history
…ons; java-parser-impl JavaSources are always editable
  • Loading branch information
mbenson committed Aug 1, 2013
1 parent 19c9fe4 commit a54fdb0
Show file tree
Hide file tree
Showing 16 changed files with 35 additions and 1 deletion.
5 changes: 5 additions & 0 deletions api/src/main/java/org/jboss/forge/parser/java/JavaSource.java
Expand Up @@ -88,4 +88,9 @@ public interface JavaSource<T extends JavaSource<T>> extends
* Return the {@link SourceType} of this {@link JavaSource} instance.
*/
public SourceType getSourceType();

/**
* Return true if this {@link JavaSource} can be edited.
*/
public boolean isEditable();
}
Expand Up @@ -878,6 +878,12 @@ public List<JavaSource<?>> getNestedClasses()
return result;
}

@Override
public boolean isEditable()
{
return true;
}

private List<AbstractTypeDeclaration> getNestedDeclarations(BodyDeclaration body)
{

Expand Down
Expand Up @@ -739,6 +739,12 @@ public List<JavaSource<?>> getNestedClasses()
return result;
}

@Override
public boolean isEditable()
{
return true;
}

private List<AbstractTypeDeclaration> getNestedDeclarations(ASTNode body)
{

Expand Down
Expand Up @@ -34,6 +34,7 @@ public void reset()
stream = FieldTest.class.getResourceAsStream("/org/jboss/forge/grammar/java/MockAnnotatedField.java");
javaClass = JavaParser.parse(JavaClass.class, stream);
field = javaClass.getFields().get(javaClass.getFields().size() - 1);
assertTrue(field.getOrigin().isEditable());
}

@Test
Expand Down
Expand Up @@ -41,6 +41,7 @@ public void setup()
JavaAnnotationTest.class
.getResourceAsStream("/org/jboss/forge/grammar/java/MockJavaAnnotationType.java");
javaAnnotation = JavaParser.parse(JavaAnnotation.class, stream);
assertTrue(javaAnnotation.isEditable());
}

@Test
Expand Down
Expand Up @@ -32,6 +32,7 @@ public void testClassCreatesStub() throws Exception
{
assertEquals("JavaClass", jc.getName());
assertTrue(jc.isPublic());
assertTrue(jc.isEditable());
}

}
Expand Up @@ -37,6 +37,7 @@ public void reset()
javaClass = JavaParser.parse(JavaClass.class, stream);
javaClass.addMethod("public URL rewriteURL(String pattern, String replacement) { return null; }");
method = javaClass.getMethods().get(javaClass.getMethods().size() - 1);
assertTrue(method.getOrigin().isEditable());
}

@Test
Expand Down
Expand Up @@ -34,6 +34,7 @@ public void reset()
stream = JavaEnumFieldTest.class.getResourceAsStream("/org/jboss/forge/grammar/java/MockEnum.java");
javaEnum = JavaParser.parse(JavaEnum.class, stream);
field = javaEnum.getFields().get(javaEnum.getFields().size() - 1);
assertTrue(field.getOrigin().isEditable());
}

@Test
Expand Down
Expand Up @@ -38,6 +38,7 @@ public void reset()
javaEnum = JavaParser.parse(JavaEnum.class, stream);
javaEnum.addMethod("public URL rewriteURL(String pattern, String replacement) { return null; }");
method = javaEnum.getMethods().get(javaEnum.getMethods().size() - 1);
assertTrue(method.getOrigin().isEditable());
}

@Test
Expand Down
Expand Up @@ -58,6 +58,7 @@ public void testImportJavaSource() throws Exception
assertFalse(foo.hasImport(bar));
assertFalse(bar.hasImport(foo));

assertTrue(foo.isEditable());
Import importBar = foo.addImport(bar);
assertTrue(foo.hasImport(bar));
assertFalse(bar.hasImport(foo));
Expand All @@ -74,6 +75,7 @@ public void testImportJavaSource() throws Exception
public void testImportImport() throws Exception
{
JavaInterface foo = JavaParser.parse(JavaInterface.class, "public interface Foo{}");
assertTrue(foo.isEditable());
Import i = foo.addImport(getClass());

foo.removeImport(getClass());
Expand Down
Expand Up @@ -64,6 +64,7 @@ public void testModifyNestedClassModifiesParentSource()

List<JavaSource<?>> nestedClasses = javaClass.getNestedClasses();
JavaSource<?> inner1 = nestedClasses.get(0);
Assert.assertTrue(inner1.isEditable());
inner1.addAnnotation(Deprecated.class);

Assert.assertTrue(javaClass.toString().contains("@Deprecated"));
Expand Down
Expand Up @@ -44,6 +44,7 @@ protected void setTarget(final AnnotationTarget<O, T> target)
public void reset()
{
resetTests();
assertTrue(target.getOrigin().isEditable());
}

public abstract void resetTests();
Expand Down
Expand Up @@ -33,6 +33,7 @@ public abstract class InterfacedTestBase<T extends JavaSource<T> & InterfaceCapa
public void reset()
{
this.source = getSource();
assertTrue(this.source.isEditable());
}

protected abstract T getSource();
Expand Down
Expand Up @@ -34,6 +34,7 @@ public abstract class JavaClassTestBase
public void reset()
{
this.source = getSource();
assertTrue(this.source.isEditable());
}

protected abstract JavaClass getSource();
Expand Down Expand Up @@ -283,7 +284,7 @@ public void testAddConstructor() throws Exception
}

@Test
public void testAddConstructorIngoresReturnTypeAndName() throws Exception
public void testAddConstructorIgnoresReturnTypeAndName() throws Exception
{
int size = source.getMethods().size();
Method<JavaClass> method = source.addMethod().setName("testMethod").setConstructor(true).setPrivate()
Expand Down
Expand Up @@ -9,6 +9,7 @@
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

import org.jboss.forge.parser.java.JavaSource;
import org.jboss.forge.parser.java.VisibilityScoped;
import org.junit.Before;
import org.junit.Test;
Expand All @@ -29,6 +30,9 @@ public void setTarget(VisibilityScoped<?> target)
public void reset() throws Exception
{
resetTests();
if (this.target instanceof JavaSource<?>) {
assertTrue(((JavaSource<?>) this.target).isEditable());
}
}

public abstract void resetTests() throws Exception;
Expand Down
Expand Up @@ -37,6 +37,7 @@ public void before()
javaClass = JavaParser
.parse(JavaClass.class,
"import java.util.Set; public class Foo { private int foo; private String firstName; private Set<String> names; private final int bar; }");
assertTrue(javaClass.isEditable());
}

@Test
Expand Down

0 comments on commit a54fdb0

Please sign in to comment.