IDEA-82751 "Add @NotNull Assertions" to be stored in compiler.xml

This commit is contained in:
Eugene Zhuravlev
2012-03-16 14:15:50 +01:00
parent c41c1f28f9
commit 5e5110ac0b
5 changed files with 31 additions and 5 deletions
@@ -86,6 +86,7 @@ public class CompilerConfigurationImpl extends CompilerConfiguration implements
private String myProcessorPath = "";
private final Map<Module, String> myProcessedModules = new HashMap<Module, String>();
private final Map<String, String> myModuleNames = new HashMap<String, String>();
private boolean myAddNotNullAssertions = true;
public CompilerConfigurationImpl(Project project, ModuleManager moduleManager) {
@@ -300,6 +301,16 @@ public class CompilerConfigurationImpl extends CompilerConfiguration implements
return isResourceFile(virtualFile.getName(), virtualFile.getParent());
}
@Override
public boolean isAddNotNullAssertions() {
return myAddNotNullAssertions;
}
@Override
public void setAddNotNullAssertions(boolean enabled) {
myAddNotNullAssertions = enabled;
}
public boolean isAnnotationProcessorsEnabled() {
return myEnableAnnotationProcessors;
}
@@ -509,10 +520,16 @@ public class CompilerConfigurationImpl extends CompilerConfiguration implements
@NonNls private static final String WILDCARD_RESOURCE_PATTERNS = "wildcardResourcePatterns";
@NonNls private static final String ENTRY = "entry";
@NonNls private static final String NAME = "name";
@NonNls private static final String ADD_NOTNULL_ASSERTIONS = "addNotNullAssertions";
public void readExternal(Element parentNode) throws InvalidDataException {
DefaultJDOMExternalizer.readExternal(this, parentNode);
final Element notNullAssertions = parentNode.getChild(ADD_NOTNULL_ASSERTIONS);
if (notNullAssertions != null) {
myAddNotNullAssertions = Boolean.valueOf(notNullAssertions.getAttributeValue("enabled", "true"));
}
Element node = parentNode.getChild(EXCLUDE_FROM_COMPILE);
if (node != null) {
myExcludedEntriesConfiguration.readExternal(node);
@@ -600,6 +617,12 @@ public class CompilerConfigurationImpl extends CompilerConfiguration implements
public void writeExternal(Element parentNode) throws WriteExternalException {
DefaultJDOMExternalizer.writeExternal(this, parentNode);
if (myAddNotNullAssertions != true) {
final Element notNullAssertions = new Element(ADD_NOTNULL_ASSERTIONS);
notNullAssertions.setAttribute("enabled", String.valueOf(myAddNotNullAssertions));
parentNode.addContent(notNullAssertions);
}
if(myExcludedEntriesConfiguration.getExcludeEntryDescriptions().length > 0) {
Element newChild = new Element(EXCLUDE_FROM_COMPILE);
myExcludedEntriesConfiguration.writeExternal(newChild);
@@ -835,7 +835,7 @@ public class BackendCompilerWrapper {
private ClassParsingThread(final boolean isJdk16, String outputDir) {
myIsJdk16 = isJdk16;
myOutputDir = FileUtil.toSystemIndependentName(outputDir);
myAddNotNullAssertions = CompilerWorkspaceConfiguration.getInstance(myProject).ASSERT_NOT_NULL;
myAddNotNullAssertions = CompilerConfiguration.getInstance(myProject).isAddNotNullAssertions();
}
private volatile boolean processing;
@@ -73,7 +73,7 @@ public class CompilerUIConfigurable implements SearchableConfigurable, Configura
myCbCompileInBackground.setSelected(workspaceConfiguration.COMPILE_IN_BACKGROUND);
myCbAutoShowFirstError.setSelected(workspaceConfiguration.AUTO_SHOW_ERRORS_IN_EDITOR);
myCbClearOutputDirectory.setSelected(workspaceConfiguration.CLEAR_OUTPUT_DIRECTORY);
myCbAssertNotNull.setSelected(workspaceConfiguration.ASSERT_NOT_NULL);
myCbAssertNotNull.setSelected(configuration.isAddNotNullAssertions());
myCbUseCompileServer.setSelected(workspaceConfiguration.USE_COMPILE_SERVER);
myCbMakeProjectOnSave.setSelected(workspaceConfiguration.MAKE_PROJECT_ON_SAVE);
myCbMakeProjectOnSave.setEnabled(workspaceConfiguration.USE_COMPILE_SERVER);
@@ -101,10 +101,10 @@ public class CompilerUIConfigurable implements SearchableConfigurable, Configura
workspaceConfiguration.COMPILE_IN_BACKGROUND = myCbCompileInBackground.isSelected();
workspaceConfiguration.AUTO_SHOW_ERRORS_IN_EDITOR = myCbAutoShowFirstError.isSelected();
workspaceConfiguration.CLEAR_OUTPUT_DIRECTORY = myCbClearOutputDirectory.isSelected();
workspaceConfiguration.ASSERT_NOT_NULL = myCbAssertNotNull.isSelected();
workspaceConfiguration.USE_COMPILE_SERVER = myCbUseCompileServer.isSelected();
workspaceConfiguration.MAKE_PROJECT_ON_SAVE = myCbMakeProjectOnSave.isSelected();
configuration.setAddNotNullAssertions(myCbAssertNotNull.isSelected());
configuration.removeResourceFilePatterns();
String extensionString = myResourcePatternsField.getText().trim();
applyResourcePatterns(extensionString, (CompilerConfigurationImpl)CompilerConfiguration.getInstance(myProject));
@@ -162,11 +162,11 @@ public class CompilerUIConfigurable implements SearchableConfigurable, Configura
final CompilerWorkspaceConfiguration workspaceConfiguration = CompilerWorkspaceConfiguration.getInstance(myProject);
isModified |= ComparingUtils.isModified(myCbCompileInBackground, workspaceConfiguration.COMPILE_IN_BACKGROUND);
isModified |= ComparingUtils.isModified(myCbAutoShowFirstError, workspaceConfiguration.AUTO_SHOW_ERRORS_IN_EDITOR);
isModified |= ComparingUtils.isModified(myCbAssertNotNull, workspaceConfiguration.ASSERT_NOT_NULL);
isModified |= ComparingUtils.isModified(myCbUseCompileServer, workspaceConfiguration.USE_COMPILE_SERVER);
isModified |= ComparingUtils.isModified(myCbMakeProjectOnSave, workspaceConfiguration.MAKE_PROJECT_ON_SAVE);
final CompilerConfigurationImpl compilerConfiguration = (CompilerConfigurationImpl)CompilerConfiguration.getInstance(myProject);
isModified |= ComparingUtils.isModified(myCbAssertNotNull, compilerConfiguration.isAddNotNullAssertions());
isModified |= ComparingUtils.isModified(myCbClearOutputDirectory, workspaceConfiguration.CLEAR_OUTPUT_DIRECTORY);
isModified |= ComparingUtils.isModified(myResourcePatternsField, patternsToString(compilerConfiguration.getResourceFilePatterns()));
@@ -38,6 +38,10 @@ public abstract class CompilerConfiguration {
public abstract void addResourceFilePattern(String namePattern) throws MalformedPatternException;
public abstract boolean isAddNotNullAssertions();
public abstract void setAddNotNullAssertions(boolean enabled);
public abstract boolean isAnnotationProcessorsEnabled();
public abstract void setAnnotationProcessorsEnabled(boolean enableAnnotationProcessors);
@@ -41,7 +41,6 @@ public class CompilerWorkspaceConfiguration implements PersistentStateComponent<
public boolean AUTO_SHOW_ERRORS_IN_EDITOR = true;
@Deprecated public boolean CLOSE_MESSAGE_VIEW_IF_SUCCESS = true;
public boolean CLEAR_OUTPUT_DIRECTORY = true;
public boolean ASSERT_NOT_NULL = true;
public boolean USE_COMPILE_SERVER = false;
public boolean MAKE_PROJECT_ON_SAVE = false;