* @param unit - the compilation unit.
* @return the package meta data of a compilation unit.
*/
@SuppressWarnings( "unchecked" )
protected PackageMetadata createPackageMetadata( CompilationUnit unit ) {
PackageMetadata packageMetadata = null;
List<Annotation> annotations = null;
PackageDeclaration packageDeclaration = unit.getPackage();
if (packageDeclaration != null) {
annotations = packageDeclaration.annotations();
packageMetadata = new PackageMetadata();
packageMetadata.setName(JavaMetadataUtil.getName(unit.getPackage().getName()));
if (!annotations.isEmpty()) {
for (Object object : annotations) {
if (object instanceof NormalAnnotation) {
NormalAnnotation normalAnnotation = (NormalAnnotation)object;
NormalAnnotationMetadata normalAnnotationMetadata = new NormalAnnotationMetadata();
normalAnnotationMetadata.setName(JavaMetadataUtil.getName(normalAnnotation.getTypeName()));
normalAnnotationMetadata.setNormal(Boolean.TRUE);
packageMetadata.getAnnotationMetada().add(normalAnnotationMetadata);
}
if (object instanceof MarkerAnnotation) {
MarkerAnnotation markerAnnotation = (MarkerAnnotation)object;
MarkerAnnotationMetadata markerAnnotationMetadata = new MarkerAnnotationMetadata();
markerAnnotationMetadata.setName(JavaMetadataUtil.getName(markerAnnotation.getTypeName()));
markerAnnotationMetadata.setMarker(Boolean.TRUE);
packageMetadata.getAnnotationMetada().add(markerAnnotationMetadata);
}
if (object instanceof SingleMemberAnnotation) {
SingleMemberAnnotation singleMemberAnnotation = (SingleMemberAnnotation)object;
SingleMemberAnnotationMetadata singleMemberAnnotationMetadata = new SingleMemberAnnotationMetadata();
singleMemberAnnotationMetadata.setName(JavaMetadataUtil.getName(singleMemberAnnotation.getTypeName()));
singleMemberAnnotationMetadata.setSingle(Boolean.TRUE);
packageMetadata.getAnnotationMetada().add(singleMemberAnnotationMetadata);
}
}
}
}