| /******************************************************************************* |
| * 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(); |
| } |
| } |
| } |