blob: 8b91c4c96aec99c147a1366364c40f2221eee477 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2007 BEA Systems, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* tyeung@bea.com - initial API and implementation
*******************************************************************************/
package org.eclipse.jdt.apt.core.internal.declaration;
import java.lang.annotation.Annotation;
import java.util.Collection;
import java.util.Collections;
import org.eclipse.jdt.core.IPackageFragment;
import com.sun.mirror.declaration.AnnotationMirror;
import com.sun.mirror.declaration.AnnotationTypeDeclaration;
import com.sun.mirror.declaration.ClassDeclaration;
import com.sun.mirror.declaration.EnumDeclaration;
import com.sun.mirror.declaration.InterfaceDeclaration;
import com.sun.mirror.declaration.Modifier;
import com.sun.mirror.declaration.PackageDeclaration;
import com.sun.mirror.util.DeclarationVisitor;
import com.sun.mirror.util.SourcePosition;
/**
* For packages that have no binding. E.g. Packages with no
* classes, like "java.lang", or possibly "" (the default package).
*/
public class PackageDeclarationImplNoBinding implements PackageDeclaration {
private final IPackageFragment[] fragments;
public PackageDeclarationImplNoBinding(final IPackageFragment[] fragments) {
this.fragments = fragments;
}
public String getQualifiedName() {
return fragments[0].getElementName();
}
public Collection<ClassDeclaration> getClasses() {
return Collections.emptyList();
}
public Collection<EnumDeclaration> getEnums() {
return Collections.emptyList();
}
public Collection<InterfaceDeclaration> getInterfaces() {
return Collections.emptyList();
}
public Collection<AnnotationTypeDeclaration> getAnnotationTypes() {
return Collections.emptyList();
}
public String getDocComment() {
// Packages have no comments
return null;
}
public Collection<AnnotationMirror> getAnnotationMirrors() {
return Collections.emptyList();
}
public <A extends Annotation> A getAnnotation(Class<A> arg0) {
return null;
}
public Collection<Modifier> getModifiers() {
// Packages do not have modifiers
return Collections.emptyList();
}
public String getSimpleName() {
String components = getQualifiedName();
int dotIndex = components.indexOf("."); //$NON-NLS-1$
if (dotIndex < 0)
return components;
return components.substring(dotIndex + 1);
}
public SourcePosition getPosition() {
// non-source, we do not have a source position
return null;
}
public void accept(final DeclarationVisitor visitor) {
visitor.visitDeclaration(this);
visitor.visitPackageDeclaration(this);
}
}