don't hardcode Java module type implementation

This commit is contained in:
kirill.safonov
2011-10-18 07:36:15 +04:00
parent 8c1bac93c8
commit 0cd9404d67
3 changed files with 10 additions and 18 deletions
@@ -36,8 +36,10 @@ import java.util.ArrayList;
public class JavaModuleType extends ModuleType<JavaModuleBuilder> {
public static final String ID = "JAVA_MODULE";
public JavaModuleType() {
this("JAVA_MODULE");
this(ID);
}
protected JavaModuleType(@NonNls String id) {
@@ -20,24 +20,26 @@
*/
package com.intellij.openapi.module.impl;
import com.intellij.openapi.module.JavaModuleType;
import com.intellij.openapi.module.ModuleType;
import com.intellij.openapi.module.StdModuleTypes;
import org.jetbrains.annotations.NonNls;
public class JavaAwareModuleTypeManagerImpl extends ModuleTypeManagerImpl{
@NonNls private static final String JAVA_MODULE_ID_OLD = "JAVA";
private static final JavaModuleType JAVA_MODULE_TYPE = new JavaModuleType();
public ModuleType getDefaultModuleType() {
return StdModuleTypes.JAVA;
return JAVA_MODULE_TYPE;
}
@Override
public ModuleType findByID(final String moduleTypeID) {
if (moduleTypeID != null) {
if (JAVA_MODULE_ID_OLD.equals(moduleTypeID)) {
return StdModuleTypes.JAVA; // for compatibility with the previous ID that Java modules had
return JAVA_MODULE_TYPE; // for compatibility with the previous ID that Java modules had
}
}
return super.findByID(moduleTypeID);
}
}
}
@@ -17,21 +17,9 @@ package com.intellij.openapi.module;
public class StdModuleTypes {
// predefined module types
public static ModuleType JAVA;
public static ModuleType JAVA = ModuleTypeManager.getInstance().findByID("JAVA_MODULE");
private StdModuleTypes() {
}
static {
JAVA = instantiate("com.intellij.openapi.module.JavaModuleType");
}
private static ModuleType instantiate(String className) {
try {
return (ModuleType)Class.forName(className).newInstance();
}
catch (Exception e) {
throw new IllegalArgumentException(e);
}
}
}