package org.springframework.roo.classpath.details; import org.springframework.roo.classpath.details.comments.CommentStructure; import org.springframework.roo.model.JavaPackage; import org.springframework.roo.model.JavaType; /** * Builder for {@link ImportMetadata}. * * @author James Tyrrell * @since 1.1.1 */ public class ImportMetadataBuilder extends AbstractIdentifiableJavaStructureBuilder<ImportMetadata> { /** * Builds an import of the given {@link JavaType} for use by the given * caller. * * @param callerMID the metadata ID of the compilation unit to receive the * import (required) * @param typeToImport the type to import (required) * @return a non-<code>null</code>, non-static, non-wildcard import * @since 1.2.0 */ public static ImportMetadata getImport(final String callerMID, final JavaType typeToImport) { return new ImportMetadataBuilder(callerMID, 0, typeToImport.getPackage(), typeToImport, false, false).build(); } private JavaPackage importPackage; private JavaType importType; private boolean isAsterisk; private boolean isStatic; private CommentStructure commentStructure; public ImportMetadataBuilder(final ImportMetadata existing) { super(existing); importPackage = existing.getImportPackage(); importType = existing.getImportType(); isStatic = existing.isStatic(); isAsterisk = existing.isAsterisk(); commentStructure = existing.getCommentStructure(); } public ImportMetadataBuilder(final String declaredbyMetadataId) { super(declaredbyMetadataId); } public ImportMetadataBuilder(final String declaredbyMetadataId, final int modifier, final JavaPackage importPackage, final JavaType importType, final boolean isStatic, final boolean isAsterisk) { this(declaredbyMetadataId); setModifier(modifier); this.importPackage = importPackage; this.importType = importType; this.isStatic = isStatic; this.isAsterisk = isAsterisk; } public ImportMetadata build() { return new DefaultImportMetadata(getCustomData().build(), getDeclaredByMetadataId(), getModifier(), importPackage, importType, isStatic, isAsterisk); } public JavaPackage getImportPackage() { return importPackage; } public JavaType getImportType() { return importType; } public boolean isAsterisk() { return isAsterisk; } public boolean isStatic() { return isStatic; } public void setAsterisk(final boolean asterisk) { isAsterisk = asterisk; } public void setImportPackage(final JavaPackage importPackage) { this.importPackage = importPackage; } public void setImportType(final JavaType importType) { this.importType = importType; } public void setStatic(final boolean aStatic) { isStatic = aStatic; } public CommentStructure getCommentStructure() { return commentStructure; } public void setCommentStructure(CommentStructure commentStructure) { this.commentStructure = commentStructure; } }