converting packaging related parts of javaee facets to artifacts - 2

This commit is contained in:
Nikolay Chashnikov
2009-09-03 11:39:24 +04:00
parent a9f065f023
commit 32db1dc3cf
16 changed files with 56 additions and 33 deletions
@@ -63,10 +63,10 @@ import java.util.Map;
public class LibraryLinkImpl extends LibraryLink {
private static final Map<PackagingMethod, String> methodToDescriptionForDirs = new HashMap<PackagingMethod, String>();
private static final Map<PackagingMethod, String> methodToDescriptionForFiles = new HashMap<PackagingMethod, String>();
@NonNls static final String LEVEL_ATTRIBUTE_NAME = "level";
@NonNls static final String URL_ELEMENT_NAME = "url";
@NonNls public static final String LEVEL_ATTRIBUTE_NAME = "level";
@NonNls public static final String URL_ELEMENT_NAME = "url";
@NonNls private static final String TEMP_ELEMENT_NAME = "temp";
@NonNls static final String NAME_ATTRIBUTE_NAME = "name";
@NonNls public static final String NAME_ATTRIBUTE_NAME = "name";
@NonNls private static final String JAR_SUFFIX = ".jar";
@@ -28,7 +28,7 @@ public class PackagingConfigurationImpl implements PackagingConfiguration {
@NonNls public static final String TYPE_ATTRIBUTE_NAME = "type";
@NonNls public static final String CONTAINER_ELEMENT_NAME = "containerElement";
@NonNls public static final String MODULE_TYPE = "module";
@NonNls private static final String LIBRARY_TYPE = "library";
@NonNls public static final String LIBRARY_TYPE = "library";
public static final TObjectHashingStrategy<ContainerElement> IGNORING_ATTRIBUTES_EQUALITY = new ElementIgnoringAttributesEquality();
public PackagingConfigurationImpl(@NotNull Module module) {
@@ -39,7 +39,8 @@ public class ArtifactManagerImpl extends ArtifactManager implements ProjectCompo
private final Project myProject;
private final DefaultPackagingElementResolvingContext myResolvingContext;
private boolean myInsideCommit = false;
@NonNls private static final String PACKAGING_ELEMENT_NAME = "element";
@NonNls public static final String PACKAGING_ELEMENT_NAME = "element";
@NonNls public static final String TYPE_ID_ATTRIBUTE = "id";
public ArtifactManagerImpl(Project project) {
myProject = project;
@@ -98,7 +99,7 @@ public class ArtifactManagerImpl extends ArtifactManager implements ProjectCompo
private static Element serializePackagingElement(PackagingElement<?> packagingElement) {
Element element = new Element(PACKAGING_ELEMENT_NAME);
element.setAttribute("id", packagingElement.getType().getId());
element.setAttribute(TYPE_ID_ATTRIBUTE, packagingElement.getType().getId());
final Object bean = packagingElement.getState();
if (bean != null) {
XmlSerializer.serializeInto(bean, element);
@@ -112,7 +113,7 @@ public class ArtifactManagerImpl extends ArtifactManager implements ProjectCompo
}
private <T> PackagingElement<T> deserializeElement(Element element) {
final String id = element.getAttributeValue("id");
final String id = element.getAttributeValue(TYPE_ID_ATTRIBUTE);
PackagingElementType<?> type = PackagingElementFactory.getInstance().findElementType(id);
PackagingElement<T> packagingElement = (PackagingElement<T>)type.createEmpty(myProject);
T state = packagingElement.getState();
@@ -21,6 +21,7 @@ import java.util.List;
* @author nik
*/
public class ArchivePackagingElement extends CompositeElementWithManifest<ArchivePackagingElement> {
@NonNls public static final String NAME_ATTRIBUTE = "name";
private String myArchiveFileName;
public ArchivePackagingElement() {
@@ -57,7 +58,7 @@ public class ArchivePackagingElement extends CompositeElementWithManifest<Archiv
computeChildrenInstructions(creator.archive(myArchiveFileName), resolvingContext, compilerContext, artifactType);
}
@Attribute("name")
@Attribute(NAME_ATTRIBUTE)
public String getArchiveFileName() {
return myArchiveFileName;
}
@@ -20,6 +20,7 @@ import java.util.List;
* classpath is used for exploded WAR and EJB directories under exploded EAR
*/
public class DirectoryPackagingElement extends CompositeElementWithManifest<DirectoryPackagingElement> {
@NonNls public static final String NAME_ATTRIBUTE = "name";
private String myDirectoryName;
public DirectoryPackagingElement() {
@@ -65,7 +66,7 @@ public class DirectoryPackagingElement extends CompositeElementWithManifest<Dire
return "dir:" + myDirectoryName;
}
@Attribute("name")
@Attribute(NAME_ATTRIBUTE)
public String getDirectoryName() {
return myDirectoryName;
}
@@ -26,6 +26,8 @@ import java.util.List;
* @author nik
*/
public class FileCopyPackagingElement extends PackagingElement<FileCopyPackagingElement> implements RenameablePackagingElement {
@NonNls public static final String PATH_ATTRIBUTE = "path";
@NonNls public static final String OUTPUT_FILE_NAME_ATTRIBUTE = "output-file-name";
private String myFilePath;
private String myRenamedOutputFileName;
@@ -114,7 +116,7 @@ public class FileCopyPackagingElement extends PackagingElement<FileCopyPackaging
setRenamedOutputFileName(state.getRenamedOutputFileName());
}
@Attribute("path")
@Attribute(PATH_ATTRIBUTE)
public String getFilePath() {
return myFilePath;
}
@@ -124,7 +126,7 @@ public class FileCopyPackagingElement extends PackagingElement<FileCopyPackaging
}
@Nullable
@Attribute("output-file-name")
@Attribute(OUTPUT_FILE_NAME_ATTRIBUTE)
public String getRenamedOutputFileName() {
return myRenamedOutputFileName;
}
@@ -17,6 +17,7 @@ import com.intellij.util.PathUtil;
import com.intellij.util.xmlb.annotations.Attribute;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.NonNls;
import java.util.ArrayList;
import java.util.List;
@@ -27,6 +28,8 @@ import java.util.List;
public class LibraryPackagingElement extends ComplexPackagingElement<LibraryPackagingElement> {
private String myLevel;
private String myName;
@NonNls public static final String LIBRARY_NAME_ATTRIBUTE = "name";
@NonNls public static final String LIBRARY_LEVEL_ATTRIBUTE = "level";
public LibraryPackagingElement() {
super(LibraryElementType.LIBRARY_ELEMENT_TYPE);
@@ -82,7 +85,7 @@ public class LibraryPackagingElement extends ComplexPackagingElement<LibraryPack
myName = state.getName();
}
@Attribute("level")
@Attribute(LIBRARY_LEVEL_ATTRIBUTE)
public String getLevel() {
return myLevel;
}
@@ -91,7 +94,7 @@ public class LibraryPackagingElement extends ComplexPackagingElement<LibraryPack
myLevel = level;
}
@Attribute("name")
@Attribute(LIBRARY_NAME_ATTRIBUTE)
public String getName() {
return myName;
}
@@ -23,6 +23,7 @@ import java.util.List;
* @author nik
*/
public class ModuleOutputPackagingElement extends PackagingElement<ModuleOutputPackagingElement> {
@NonNls public static final String MODULE_NAME_ATTRIBUTE = "name";
private String myModuleName;
public ModuleOutputPackagingElement() {
@@ -84,7 +85,7 @@ public class ModuleOutputPackagingElement extends PackagingElement<ModuleOutputP
return "module:" + myModuleName;
}
@Attribute("name")
@Attribute(MODULE_NAME_ATTRIBUTE)
public String getModuleName() {
return myModuleName;
}
@@ -39,10 +39,10 @@ import java.util.List;
* @author nik
*/
public class PackagingElementFactoryImpl extends PackagingElementFactory {
public static final DirectoryElementType DIRECTORY_ELEMENT_TYPE = new DirectoryElementType();
public static final ArchiveElementType ARCHIVE_ELEMENT_TYPE = new ArchiveElementType();
public static final FileCopyElementType FILE_COPY_ELEMENT_TYPE = new FileCopyElementType();
public static final ArtifactRootElementType ARTIFACT_ROOT_ELEMENT_TYPE = new ArtifactRootElementType();
public static final PackagingElementType<DirectoryPackagingElement> DIRECTORY_ELEMENT_TYPE = new DirectoryElementType();
public static final PackagingElementType<ArchivePackagingElement> ARCHIVE_ELEMENT_TYPE = new ArchiveElementType();
public static final PackagingElementType<FileCopyPackagingElement> FILE_COPY_ELEMENT_TYPE = new FileCopyElementType();
public static final PackagingElementType<ArtifactRootElement<?>> ARTIFACT_ROOT_ELEMENT_TYPE = new ArtifactRootElementType();
private static final PackagingElementType[] STANDARD_TYPES = {
DIRECTORY_ELEMENT_TYPE, ARCHIVE_ELEMENT_TYPE,
LibraryElementType.LIBRARY_ELEMENT_TYPE, ModuleOutputElementType.MODULE_OUTPUT_ELEMENT_TYPE,
@@ -30,8 +30,8 @@ import java.util.Map;
public abstract class ContainerElement implements JDOMExternalizable, Cloneable, ResolvableElement {
private final Map<String,String> myAttributes = new LinkedHashMap<String, String>();
private final Module myParentModule;
@NonNls public static final String URI_ATTR = "URI";
@NonNls public static final String PACKAGING_METHOD_ATTR = "method";
@NonNls public static final String URI_ATTRIBUTE = "URI";
@NonNls public static final String PACKAGING_METHOD_ATTRIBUTE = "method";
@NonNls public static final String ELEMENT_ATTRIBUTE = "attribute";
@NonNls public static final String ATTRIBUTE_NAME = "name";
@NonNls public static final String ATTRIBUTE_VALUE = "value";
@@ -43,18 +43,18 @@ public abstract class ContainerElement implements JDOMExternalizable, Cloneable,
public abstract String getPresentableName();
public String getURI() {
return getAttribute(URI_ATTR);
return getAttribute(URI_ATTRIBUTE);
}
public void setURI(String uri) {
setAttribute(URI_ATTR, uri);
setAttribute(URI_ATTRIBUTE, uri);
}
public PackagingMethod getPackagingMethod() {
final String attribute = getAttribute(PACKAGING_METHOD_ATTR);
final String attribute = getAttribute(PACKAGING_METHOD_ATTRIBUTE);
return attribute == null ? PackagingMethod.DO_NOT_PACKAGE : PackagingMethod.getDeploymentMethodById(attribute);
}
public void setPackagingMethod(PackagingMethod method) {
setAttribute(PACKAGING_METHOD_ATTR, method.getId());
setAttribute(PACKAGING_METHOD_ATTRIBUTE, method.getId());
}
public void setAttribute(String name, String value) {
@@ -113,7 +113,7 @@ public class ArtifactEditorContextImpl implements ArtifactEditorContext {
return myValidationManager;
}
public void setValidationMananger(ArtifactValidationManagerImpl validationManager) {
public void setValidationManager(ArtifactValidationManagerImpl validationManager) {
myValidationManager = validationManager;
}
@@ -129,5 +129,5 @@ public class ArtifactEditorContextImpl implements ArtifactEditorContext {
dialog.show();
return dialog.isOK() ? dialog.getChosenElements() : Collections.<Library>emptyList();
}
}
@@ -82,7 +82,7 @@ public class ArtifactEditorImpl implements ArtifactEditorEx {
FileChooserDescriptorFactory.createSingleFolderDescriptor());
setOutputPath(outputPath);
myValidationManager = new ArtifactValidationManagerImpl(this);
myContext.setValidationMananger(myValidationManager);
myContext.setValidationManager(myValidationManager);
}
private void setOutputPath(@Nullable String outputPath) {
@@ -46,15 +46,23 @@ public abstract class FacetPointersManager {
return moduleName + "/" + facetTypeId + "/" + facetName;
}
@NotNull
public static String constructId(@NotNull Facet facet) {
return constructId(facet.getModule().getName(), facet.getType().getStringId(), facet.getName());
}
public static String getFacetName(String facetPointerId) {
@NotNull
public static String getFacetName(@NotNull String facetPointerId) {
return facetPointerId.substring(facetPointerId.lastIndexOf('/') + 1);
}
@NotNull
public static String getModuleName(String facetPointerId) {
return facetPointerId.substring(0, facetPointerId.indexOf('/'));
}
@NotNull
public static String getFacetType(@NotNull String facetPointerId) {
return facetPointerId.substring(facetPointerId.indexOf('/') + 1, facetPointerId.lastIndexOf('/'));
}
}