package org.bundlemaker.core.jtype;
import org.bundlemaker.core.analysis.IBundleMakerArtifact;
import org.bundlemaker.core.analysis.IResourceArtifact;
import org.bundlemaker.core.analysis.IResourceArtifact.IResourceArtifactContent;
import org.bundlemaker.core.resource.IModuleAwareMovableUnit;
/**
* <p>
* Defines an {@link IBundleMakerArtifact} that represented an {@link IType} instance.
* </p>
*
* @author Nils Hartmann (nils@nilshartmann.net)
* @author Gerd Wütherich (gerd@gerd-wuetherich.de)
*/
public interface ITypeArtifact extends IBundleMakerArtifact, IModuleAwareMovableUnit, IResourceArtifact.IResourceArtifactContent {
/**
* <p>
* Returns the {@link IType} that is represented by this {@link ITypeArtifact}, never {@code null}.
* </p>
*
* @return the {@link IType} that is represented by this {@link ITypeArtifact}, never {@code null}.
*/
IType getAssociatedType();
/**
* <p>
* </p>
*
* @return the fully qualified (Java) type name, e.g. com.example.MyClass, never null
*/
String getQualifiedTypeName();
/**
* <p>
* Returns the simple type name, e.g. {@code MyClass}, never {@code null}.
* </p>
*
* @return the simple type name, e.g. {@code MyClass}, never {@code null}.
*/
String getName();
/**
* <p>
* Returns the fully qualified (Java) type name, e.g. {@code com.example.MyClass}, never {@code null}.
* </p>
*
* @return the fully qualified (Java) type name, e.g. {@code com.example.MyClass}, never {@code null}.
*/
String getQualifiedName();
}