Skip to content

Commit

Permalink
Fix JavaPackageInfo creation.
Browse files Browse the repository at this point in the history
  • Loading branch information
lincolnthree authored and mbenson committed Oct 2, 2013
1 parent 83f1d50 commit d0c4db2
Show file tree
Hide file tree
Showing 19 changed files with 68 additions and 45 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*
*/
public interface Importer<O extends JavaSource<?>>
public interface Importer<O extends JavaSource<O>>
{
/**
* Add an import by qualified class name. (E.g: "com.example.Imported") unless it is in the provided 'java.lang.*'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -436,8 +436,7 @@ protected PackageDeclaration getPackageDeclaration()
@Override
public JavaPackageInfo setName(final String name)
{
getPackageDeclaration().setName(unit.getAST().newSimpleName(name));
return this;
throw new UnsupportedOperationException("Changing name of [" + getQualifiedName() + "] not supported.");
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import org.jboss.forge.parser.java.JavaClass;
import org.jboss.forge.parser.java.JavaEnum;
import org.jboss.forge.parser.java.JavaInterface;
import org.jboss.forge.parser.java.JavaPackageInfo;
import org.jboss.forge.parser.java.JavaSource;
import org.jboss.forge.parser.java.ast.TypeDeclarationFinderVisitor;
import org.jboss.forge.parser.java.impl.JavaAnnotationImpl;
Expand Down Expand Up @@ -124,7 +125,6 @@ public JavaSource<?> parse(final String data)
else if (visitor.getPackageDeclaration() != null)
{
return getJavaSource(null, document, unit, visitor.getPackageDeclaration());

}
throw new ParserException("Could not find type declaration in Java source - is this actually code?");
}
Expand Down Expand Up @@ -185,6 +185,9 @@ public <T extends JavaSource<?>> T create(final Class<T> type)
if (JavaInterface.class.isAssignableFrom(type))
return (T) parse("public interface JavaInterface { }");

if (JavaPackageInfo.class.isAssignableFrom(type))
return (T) parse("package org.example;");

throw new ParserException("Unknown JavaSource type [" + type.getName() + "]");
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
*/
public class EnumConstantAnnotationTest extends AnnotationTest<JavaEnum, EnumConstant<JavaEnum>>
{
@SuppressWarnings("resource")
@Override
public void resetTests()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ public class EnumConstantTest
{
private JavaEnum javaEnum;

@SuppressWarnings("resource")
@Before
public void reset()
{
Expand Down Expand Up @@ -59,7 +58,7 @@ public void testSetConstructorArguments()
foo.setConstructorArguments();
assertTrue(foo.getConstructorArguments().isEmpty());
}

@Test
public void testAddRemoveBody()
{
Expand Down Expand Up @@ -122,5 +121,5 @@ public void testAddRemoveBodyField()
body.removeField(fooField);
assertTrue(body.getFields().isEmpty());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
*/
public class FieldAnnotationTest extends AnnotationTest<JavaClass, Field<JavaClass>>
{
@SuppressWarnings("resource")
@Override
public void resetTests()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
public class FieldVisibilityTest extends VisibilityTest
{
@Override
@SuppressWarnings({ "rawtypes", "resource" })
@SuppressWarnings({ "rawtypes" })
public void resetTests()
{
InputStream stream = FieldVisibilityTest.class
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ public class JavaAnnotationTest
{
private JavaAnnotation javaAnnotation;

@SuppressWarnings("resource")
@Before
public void setup()
{
Expand Down Expand Up @@ -126,11 +125,13 @@ public void testCanParseInnerAnnotation() throws Exception
assertTrue(nestedAnnotation.hasAnnotationElement(metasyntacticVariables));
assertEquals("metasyntacticVariables", metasyntacticVariables.getName());
Type<JavaAnnotation> metasyntacticVariablesType = metasyntacticVariables.getTypeInspector();
assertEquals("org.jboss.forge.test.parser.java.common.MockEnumType", metasyntacticVariablesType.getQualifiedName());
assertEquals("org.jboss.forge.test.parser.java.common.MockEnumType",
metasyntacticVariablesType.getQualifiedName());
assertTrue(metasyntacticVariablesType.isArray());
assertEquals(0, metasyntacticVariables.getDefaultValue().getEnumArray(MockEnumType.class).length);
metasyntacticVariables.getDefaultValue().setEnumArray(MockEnumType.values());
assertArrayEquals(MockEnumType.values(), metasyntacticVariables.getDefaultValue().getEnumArray(MockEnumType.class));
assertArrayEquals(MockEnumType.values(), metasyntacticVariables.getDefaultValue()
.getEnumArray(MockEnumType.class));
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
@SuppressWarnings({ "unchecked", "rawtypes" })
public class JavaClassAnnotationTest extends AnnotationTest
{
@SuppressWarnings("resource")
@Override
public void resetTests()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
*/
public class JavaClassTest extends JavaClassTestBase
{
@SuppressWarnings("resource")
@Override
public JavaClass getSource()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
*/
public class JavaClassVisibilityTest extends VisibilityTest
{
@SuppressWarnings("resource")
@Override
public void resetTests()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ public class JavaEnumTest
{
private JavaEnum javaEnum;

@SuppressWarnings("resource")
@Before
public void reset()
{
Expand All @@ -43,6 +42,7 @@ public void testCanParseEnum() throws Exception
}

@Test
@SuppressWarnings("rawtypes")
public void testAddEnumConstant()
{
int i = javaEnum.getEnumConstants().size();
Expand All @@ -52,6 +52,7 @@ public void testAddEnumConstant()
}

@Test
@SuppressWarnings("rawtypes")
public void testAddEnumConstantFromDeclaration()
{
int i = javaEnum.getEnumConstants().size();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
*/
public class JavaInterfaceTest
{
@SuppressWarnings("resource")
@Test
public void testCanParseInterface() throws Exception
{
Expand All @@ -36,7 +35,6 @@ public void testCanParseInterface() throws Exception
assertEquals("MockInterface", name);
}

@SuppressWarnings("resource")
@Test
public void testCanParseBigInterface() throws Exception
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,22 @@
public class JavaPackageInfoTest
{

@SuppressWarnings("resource")
@Test
public void testCanCreatePackageInfo() throws Exception
{
JavaPackageInfo packageInfo = JavaParser.create(JavaPackageInfo.class);
packageInfo.setPackage("org.jboss.forge.parser");
Assert.assertEquals("org.jboss.forge.parser", packageInfo.getPackage());
Assert.assertEquals("package-info", packageInfo.getName());
}

@Test(expected = UnsupportedOperationException.class)
public void testSetPackageInfoNameThrowsUnsupportedOperation() throws Exception
{
JavaPackageInfo packageInfo = JavaParser.create(JavaPackageInfo.class);
packageInfo.setName("anything");
}

@Test
public void testCanParsePackageInfo() throws Exception
{
Expand All @@ -36,10 +51,10 @@ public void testCanParsePackageInfo() throws Exception
Assert.assertEquals(3, values.size());
String namespace = annotation.getLiteralValue("namespace");
Assert.assertEquals(namespace, "\"http://forge.org/Test\"");

Annotation<JavaPackageInfo> annotationXmlOrder = javaPkg.addAnnotation("javax.xml.bind.annotation.XmlAccessorOrder");

Annotation<JavaPackageInfo> annotationXmlOrder = javaPkg
.addAnnotation("javax.xml.bind.annotation.XmlAccessorOrder");
Annotation<JavaPackageInfo> annotationXmlAccessorOrder = javaPkg.getAnnotation("XmlAccessorOrder");
Assert.assertEquals(annotationXmlOrder.getName(), annotationXmlAccessorOrder.getName());

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
*/
public class MethodAnnotationTest extends AnnotationTest<JavaClass, Method<JavaClass>>
{
@SuppressWarnings("resource")
@Override
public void resetTests()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@

public class NestedJavaClassTest extends JavaClassTest
{
@SuppressWarnings("resource")
@Override
public JavaClass getSource()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
/**
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*/
@SuppressWarnings("resource")
public class ParameterAnnotationTest extends AnnotationTest<JavaClass, Parameter<JavaClass>>
{
@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ public class FormatterTest
{
private static JavaClass javaClass;

@SuppressWarnings("resource")
@BeforeClass
public static void resetTests()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,8 +115,8 @@ public void testCreateToStringFromFields() throws Exception
assertTrue(javaClass.getMethod("toString").getBody().contains("firstName != null"));
assertFalse(javaClass.hasSyntaxErrors());
}
@Test(expected=IllegalArgumentException.class)

@Test(expected = IllegalArgumentException.class)
public void testCreateHashCodeAndEqualsForStatics() throws Exception
{
JavaClass aClass = JavaParser
Expand All @@ -125,7 +125,7 @@ public void testCreateHashCodeAndEqualsForStatics() throws Exception
Field<JavaClass> booleanField = aClass.getField("flag");
Refactory.createHashCodeAndEquals(aClass, booleanField);
}

@Test
public void testCreateHashCodeAndEqualsForPrimitives() throws Exception
{
Expand Down Expand Up @@ -155,8 +155,12 @@ public void testCreateHashCodeAndEqualsForPrimitives() throws Exception
assertThat(equals.getBody(), containsString("if (aShort != other.aShort) {\n return false;\n}"));
assertThat(equals.getBody(), containsString("if (anInt != other.anInt) {\n return false;\n}"));
assertThat(equals.getBody(), containsString("if (aLong != other.aLong) {\n return false;\n}"));
assertThat(equals.getBody(), containsString("if (Float.floatToIntBits(aFloat) != Float.floatToIntBits(other.aFloat)) {\n return false;\n}"));
assertThat(equals.getBody(), containsString("if (Double.doubleToLongBits(aDouble) != Double.doubleToLongBits(other.aDouble)) {\n return false;\n}"));
assertThat(
equals.getBody(),
containsString("if (Float.floatToIntBits(aFloat) != Float.floatToIntBits(other.aFloat)) {\n return false;\n}"));
assertThat(
equals.getBody(),
containsString("if (Double.doubleToLongBits(aDouble) != Double.doubleToLongBits(other.aDouble)) {\n return false;\n}"));

assertEquals("hashCode", hashcode.getName());
assertEquals(0, hashcode.getParameters().size());
Expand Down Expand Up @@ -200,7 +204,7 @@ public void testCreateHashCodeAndEqualsForArrays() throws Exception
assertThat(hashcode.getBody(), containsString("result=prime * result + Arrays.hashCode(objects);"));
assertFalse(aClass.hasSyntaxErrors());
}

@Test
public void testCreateHashCodeAndEqualsForObjects() throws Exception
{
Expand All @@ -217,13 +221,17 @@ public void testCreateHashCodeAndEqualsForObjects() throws Exception

assertEquals("equals", equals.getName());
assertEquals(1, equals.getParameters().size());
assertThat(equals.getBody(), containsString("if (object != null) {\n if (!object.equals(other.object)) {\n return false;\n }\n}"));
assertThat(equals.getBody(), containsString("if (date != null) {\n if (!date.equals(other.date)) {\n return false;\n }\n}"));
assertThat(
equals.getBody(),
containsString("if (object != null) {\n if (!object.equals(other.object)) {\n return false;\n }\n}"));
assertThat(equals.getBody(),
containsString("if (date != null) {\n if (!date.equals(other.date)) {\n return false;\n }\n}"));

assertEquals("hashCode", hashcode.getName());
assertEquals(0, hashcode.getParameters().size());
assertEquals("int", hashcode.getReturnType());
assertThat(hashcode.getBody(), containsString("result=prime * result + ((object == null) ? 0 : object.hashCode());"));
assertThat(hashcode.getBody(),
containsString("result=prime * result + ((object == null) ? 0 : object.hashCode());"));
assertThat(hashcode.getBody(), containsString("result=prime * result + ((date == null) ? 0 : date.hashCode());"));
assertFalse(aClass.hasSyntaxErrors());
}
Expand Down Expand Up @@ -271,7 +279,7 @@ public void testCreateHashCodeAndEqualsSubclass() throws Exception
assertThat(hashcode.getBody(), containsString("int result=super.hashCode();"));
assertFalse(subClass.hasSyntaxErrors());
}

@Test
public void testCreateHashCodeAndEqualsOuterClass() throws Exception
{
Expand All @@ -287,15 +295,16 @@ public void testCreateHashCodeAndEqualsOuterClass() throws Exception

assertEquals("equals", equals.getName());
assertEquals(1, equals.getParameters().size());
assertThat(equals.getBody(), containsString("if (bar != null) {\n if (!bar.equals(other.bar)) {\n return false;\n }\n}"));
assertThat(equals.getBody(),
containsString("if (bar != null) {\n if (!bar.equals(other.bar)) {\n return false;\n }\n}"));

assertEquals("hashCode", hashcode.getName());
assertEquals(0, hashcode.getParameters().size());
assertEquals("int", hashcode.getReturnType());
assertThat(hashcode.getBody(), containsString("result=prime * result + ((bar == null) ? 0 : bar.hashCode());"));
assertFalse(outerClass.hasSyntaxErrors());
}

@Test
@Ignore
// This is not supported for now
Expand All @@ -312,13 +321,15 @@ public void testCreateHashCodeAndEqualsInnerClass() throws Exception
Method<JavaClass> equals = methods.get(0);
Method<JavaClass> hashcode = methods.get(1);
Method<JavaClass> outerTypeAccessor = methods.get(2);

assertEquals("getOuterType", outerTypeAccessor.getName());

assertEquals("equals", equals.getName());
assertEquals(1, equals.getParameters().size());
assertThat(equals.getBody(), containsString("if ((!getOuterType().equals(other.getOuterType()))) {\n return false;\n}"));
assertThat(equals.getBody(), containsString("if (flag != null) {\n if (!flag.equals(other.flag)) {\n return false;\n }\n}"));
assertThat(equals.getBody(),
containsString("if ((!getOuterType().equals(other.getOuterType()))) {\n return false;\n}"));
assertThat(equals.getBody(),
containsString("if (flag != null) {\n if (!flag.equals(other.flag)) {\n return false;\n }\n}"));

assertEquals("hashCode", hashcode.getName());
assertEquals(0, hashcode.getParameters().size());
Expand All @@ -344,8 +355,12 @@ public void testCreateHashCodeAndEqualsMultipleLongFields() throws Exception

assertEquals("equals", equals.getName());
assertEquals(1, equals.getParameters().size());
assertThat(equals.getBody(), containsString("if (Double.doubleToLongBits(firstDouble) != Double.doubleToLongBits(other.firstDouble)) {\n return false;\n}"));
assertThat(equals.getBody(), containsString("if (Double.doubleToLongBits(secondDouble) != Double.doubleToLongBits(other.secondDouble)) {\n return false;\n}"));
assertThat(
equals.getBody(),
containsString("if (Double.doubleToLongBits(firstDouble) != Double.doubleToLongBits(other.firstDouble)) {\n return false;\n}"));
assertThat(
equals.getBody(),
containsString("if (Double.doubleToLongBits(secondDouble) != Double.doubleToLongBits(other.secondDouble)) {\n return false;\n}"));

assertEquals("hashCode", hashcode.getName());
assertEquals(0, hashcode.getParameters().size());
Expand All @@ -355,6 +370,7 @@ public void testCreateHashCodeAndEqualsMultipleLongFields() throws Exception
assertThat(hashcode.getBody(), containsString("temp=Double.doubleToLongBits(firstDouble);"));
assertThat(hashcode.getBody(), containsString("temp=Double.doubleToLongBits(secondDouble);"));
assertThat(hashcode.getBody(), containsString("prime * result + (int)(temp ^ (temp >>> 32));"));
assertEquals(2, Strings.countNumberOfOccurences(hashcode.getBody(), "prime * result + (int)(temp ^ (temp >>> 32));"));
assertEquals(2,
Strings.countNumberOfOccurences(hashcode.getBody(), "prime * result + (int)(temp ^ (temp >>> 32));"));
}
}

0 comments on commit d0c4db2

Please sign in to comment.