Author: spagop
Date: 2008-07-01 20:57:10 -0400 (Tue, 01 Jul 2008)
New Revision: 331
Modified:
trunk/sequencers/dna-sequencer-java/src/test/java/org/jboss/dna/sequencer/java/JavaMetadataSequencerTest.java
trunk/sequencers/dna-sequencer-java/src/test/java/org/jboss/dna/sequencer/java/JavaMetadataTest.java
Log:
more metadata for a compilation unit: import metadata, starting with programming of top
level type (class, interface) metadata and enhancement of the unit test for metadata
Modified:
trunk/sequencers/dna-sequencer-java/src/test/java/org/jboss/dna/sequencer/java/JavaMetadataSequencerTest.java
===================================================================
---
trunk/sequencers/dna-sequencer-java/src/test/java/org/jboss/dna/sequencer/java/JavaMetadataSequencerTest.java 2008-07-02
00:55:39 UTC (rev 330)
+++
trunk/sequencers/dna-sequencer-java/src/test/java/org/jboss/dna/sequencer/java/JavaMetadataSequencerTest.java 2008-07-02
00:57:10 UTC (rev 331)
@@ -86,6 +86,10 @@
assertThat(output.getPropertyValues("java:compilationUnit",
"jcr:primaryType"), is(new Object[] {"java:compilationUnit"}));
assertThat(output.getPropertyValues("java:compilationUnit/java:package/java:packageDeclaration",
"java:packageName"),
is(new Object[] {"org.acme"}));
+
assertThat(output.getPropertyValues("java:compilationUnit/java:package/java:packageDeclaration/java:annotation/java:annotationDeclaration/java:annotationType/java:markerAnnotation",
+ "java:typeName"),
+ is(new Object[]
{"org.acme.annotation.MyPackageAnnotation"}));
+
}
}
Modified:
trunk/sequencers/dna-sequencer-java/src/test/java/org/jboss/dna/sequencer/java/JavaMetadataTest.java
===================================================================
---
trunk/sequencers/dna-sequencer-java/src/test/java/org/jboss/dna/sequencer/java/JavaMetadataTest.java 2008-07-02
00:55:39 UTC (rev 330)
+++
trunk/sequencers/dna-sequencer-java/src/test/java/org/jboss/dna/sequencer/java/JavaMetadataTest.java 2008-07-02
00:57:10 UTC (rev 331)
@@ -29,11 +29,21 @@
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
+import java.util.Iterator;
import java.util.List;
+import java.util.Set;
import org.eclipse.jdt.core.dom.ASTNode;
import org.eclipse.jdt.core.dom.Annotation;
import org.eclipse.jdt.core.dom.CompilationUnit;
import org.eclipse.jdt.core.dom.MarkerAnnotation;
+import org.jboss.dna.sequencer.java.annotationmetadata.AnnotationMetadata;
+import org.jboss.dna.sequencer.java.annotationmetadata.MarkerAnnotationMetadata;
+import org.jboss.dna.sequencer.java.fieldmetadata.FieldMetadata;
+import org.jboss.dna.sequencer.java.importmetadata.ImportMetadata;
+import org.jboss.dna.sequencer.java.importmetadata.ImportOnDemandMetadata;
+import org.jboss.dna.sequencer.java.importmetadata.SingleImportMetadata;
+import org.jboss.dna.sequencer.java.packagemetadata.PackageMetadata;
+import org.jboss.dna.sequencer.java.typemetadata.TypeMetadata;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -44,12 +54,17 @@
public class JavaMetadataTest {
private File source;
private InputStream stream;
- JavaMetadata javaMetadata;
+ private JavaMetadata javaMetadata;
+ private ASTNode rootNode = null;
@Before
public void beforeEach() throws Exception {
source = new File("src/test/resources/org/acme/MySource.java");
stream = getJavaSrc(source);
+ javaMetadata = JavaMetadata.instance(stream, JavaMetadataUtil.length(stream),
null, null);
+ rootNode =
CompilationUnitParser.runJLS3Conversion(JavaMetadataUtil.getJavaSourceFromTheInputStream(getJavaSrc(source),
+
source.length(),
+
null), true);
}
@@ -77,10 +92,6 @@
@Test
public void shouldRunJLS3Conversion() throws Exception {
- ASTNode rootNode =
CompilationUnitParser.runJLS3Conversion(JavaMetadataUtil.getJavaSourceFromTheInputStream(getJavaSrc(source),
-
source.length(),
-
null),
- true);
assertThat(rootNode, is(notNullValue()));
// Verify we get a compilation unit node and that binding are correct
assertTrue("Not a compilation unit", rootNode.getNodeType() ==
ASTNode.COMPILATION_UNIT);
@@ -88,19 +99,39 @@
@Test
public void shouldCreatePackageMetadata() throws Exception {
- javaMetadata = JavaMetadata.instance(stream, JavaMetadataUtil.length(stream),
null, null);
- ASTNode rootNode =
CompilationUnitParser.runJLS3Conversion(JavaMetadataUtil.getJavaSourceFromTheInputStream(getJavaSrc(source),
-
source.length(),
-
null),
- true);
PackageMetadata packageMetadata =
javaMetadata.createPackageMetadata((CompilationUnit)rootNode);
assertThat(packageMetadata, is(notNullValue()));
assertThat(packageMetadata.getName(), is("org.acme"));
- List<Annotation> annotations = packageMetadata.getAnnotations();
- for (Annotation annotation : annotations) {
- if (annotation instanceof MarkerAnnotation) {
- assertThat(annotation.getTypeName().getFullyQualifiedName(),
is("org.acme.annotation.MyPackageAnnotation"));
+ List<AnnotationMetadata> annotations =
packageMetadata.getAnnotationMetada();
+ for (AnnotationMetadata annotationMetadata : annotations) {
+ if (annotationMetadata instanceof MarkerAnnotationMetadata) {
+ MarkerAnnotationMetadata maker =
(MarkerAnnotationMetadata)annotationMetadata;
+ assertThat(maker.getName(),
is("org.acme.annotation.MyPackageAnnotation"));
+
}
}
}
+
+ @Test
+ public void shouldCreateImportMetadata() throws Exception {
+ List<ImportMetadata> data =
javaMetadata.createImportMetadata((CompilationUnit)rootNode);
+ for (Iterator<ImportMetadata> i = data.iterator(); i.hasNext();) {
+ Object o = i.next();
+ if (o instanceof ImportOnDemandMetadata) {
+ ImportOnDemandMetadata onDemand = (ImportOnDemandMetadata)o;
+ assertThat(onDemand.getName(), is("java.util"));
+ } else {
+ SingleImportMetadata singleImport = (SingleImportMetadata)o;
+ assertThat(singleImport.getName(),
is("org.acme.annotation.MyClassAnnotation"));
+ }
+
+ }
+ }
+
+ @Test
+ public void shouldCreateTopLevelTypeMetadata() throws Exception {
+ List<TypeMetadata> data =
javaMetadata.createTypeMetadata((CompilationUnit)rootNode);
+ assertTrue(data.size() > 0);
+ }
+
}
Show replies by date