blob: 241cc6beaf3e3db699087a580885e6f415f0ed41 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2020 Martin Weber.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*******************************************************************************/
package org.eclipse.cdt.cmake.core.internal.properties;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import org.eclipse.cdt.cmake.core.properties.ICMakeProperties;
/**
* Holds project Properties for cmake. Follows the Java-Beans pattern to make (de-)serialization easier.
*
* @author Martin Weber
*/
public class CMakePropertiesBean implements ICMakeProperties {
private boolean warnNoDev, debugTryCompile, debugOutput, trace, warnUnitialized, warnUnused;
private String cacheFile;
private boolean clearCache;
private List<String> extraArguments = new ArrayList<>(0);
private LinuxOverrides linuxOverrides = new LinuxOverrides();
private WindowsOverrides windowsOverrides = new WindowsOverrides();
private String buildType;
/**
* Creates a new object, initialized with all default values.
*/
public CMakePropertiesBean() {
reset(true);
}
@Override
public boolean isWarnNoDev() {
return warnNoDev;
}
@Override
public void setWarnNoDev(boolean warnNoDev) {
this.warnNoDev = warnNoDev;
}
@Override
public boolean isDebugTryCompile() {
return debugTryCompile;
}
@Override
public void setDebugTryCompile(boolean debugTryCompile) {
this.debugTryCompile = debugTryCompile;
}
@Override
public boolean isDebugOutput() {
return debugOutput;
}
@Override
public void setDebugOutput(boolean debugOutput) {
this.debugOutput = debugOutput;
}
@Override
public boolean isTrace() {
return trace;
}
@Override
public void setTrace(boolean trace) {
this.trace = trace;
}
@Override
public boolean isWarnUnitialized() {
return warnUnitialized;
}
@Override
public void setWarnUnitialized(boolean warnUnitialized) {
this.warnUnitialized = warnUnitialized;
}
@Override
public boolean isWarnUnused() {
return warnUnused;
}
@Override
public void setWarnUnused(boolean warnUnused) {
this.warnUnused = warnUnused;
}
@Override
public String getBuildType() {
return buildType;
}
@Override
public void setBuildType(String buildType) {
this.buildType = buildType;
}
@Override
public List<String> getExtraArguments() {
return List.copyOf(extraArguments);
}
@Override
public void setExtraArguments(List<String> extraArguments) {
this.extraArguments = extraArguments;
}
@Override
public LinuxOverrides getLinuxOverrides() {
return linuxOverrides;
}
public void setLinuxOverrides(LinuxOverrides linuxOverrides) {
this.linuxOverrides = linuxOverrides;
}
@Override
public WindowsOverrides getWindowsOverrides() {
return windowsOverrides;
}
public void setWindowsOverrides(WindowsOverrides windowsOverrides) {
this.windowsOverrides = windowsOverrides;
}
@Override
public String getCacheFile() {
return cacheFile;
}
@Override
public void setCacheFile(String cacheFile) {
this.cacheFile = Objects.requireNonNull(cacheFile);
}
@Override
public boolean isClearCache() {
return clearCache;
}
@Override
public void setClearCache(boolean clearCache) {
this.clearCache = clearCache;
}
@Override
public void reset(boolean resetOsOverrides) {
warnNoDev = false;
debugTryCompile = false;
debugOutput = false;
trace = false;
warnUnitialized = false;
warnUnused = false;
extraArguments.clear();
cacheFile = ""; //$NON-NLS-1$
if (resetOsOverrides) {
linuxOverrides.reset();
windowsOverrides.reset();
}
}
}