| /*=============================================================================# |
| # Copyright (c) 2009, 2021 Stephan Wahlbrink and others. |
| # |
| # This program and the accompanying materials are made available under the |
| # terms of the Eclipse Public License 2.0 which is available at |
| # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0 |
| # which is available at https://www.apache.org/licenses/LICENSE-2.0. |
| # |
| # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 |
| # |
| # Contributors: |
| # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation |
| #=============================================================================*/ |
| |
| package org.eclipse.statet.nico.core.util; |
| |
| import java.util.EnumSet; |
| |
| import org.eclipse.core.filesystem.EFS; |
| |
| import org.eclipse.statet.jcommons.lang.NonNullByDefault; |
| import org.eclipse.statet.jcommons.lang.Nullable; |
| |
| import org.eclipse.statet.ecommons.models.AbstractSettingsModelObject; |
| |
| import org.eclipse.statet.nico.core.runtime.SubmitType; |
| |
| |
| @NonNullByDefault |
| public class TrackingConfiguration extends AbstractSettingsModelObject { |
| |
| |
| static int DEFAULT_FILE_MODE= EFS.APPEND; |
| |
| |
| private final String id; |
| |
| private String name; |
| |
| private boolean trackStreamInfo; |
| private boolean trackStreamInput; |
| private boolean trackStreamInputHistoryOnly; |
| private boolean trackStreamOutput; |
| private boolean trackStreamOutputTruncate; |
| private int trackStreamOutputTruncateLines; |
| |
| private EnumSet<SubmitType> submitTypes; |
| |
| private String fFilePath; |
| private int fFileMode; |
| |
| private boolean prependTimestamp; |
| |
| |
| public TrackingConfiguration(final String id) { |
| this.id= id; |
| |
| this.name= ""; //$NON-NLS-1$ |
| |
| loadDefaults(); |
| } |
| |
| public TrackingConfiguration(final String id, final TrackingConfiguration template) { |
| this.id= id; |
| |
| this.name= template.name; |
| this.trackStreamInfo= template.trackStreamInfo; |
| this.trackStreamInput= template.trackStreamInput; |
| this.trackStreamInputHistoryOnly= template.trackStreamInputHistoryOnly; |
| this.trackStreamOutput= template.trackStreamOutput; |
| this.trackStreamOutputTruncate= template.trackStreamOutputTruncate; |
| this.trackStreamOutputTruncateLines= template.trackStreamOutputTruncateLines; |
| this.submitTypes= template.submitTypes; |
| this.fFilePath= template.fFilePath; |
| this.fFileMode= template.fFileMode; |
| this.prependTimestamp= template.prependTimestamp; |
| } |
| |
| |
| public void loadDefaults() { |
| setTrackStreamInfo(true); |
| setTrackStreamInput(true); |
| setTrackStreamInputHistoryOnly(false); |
| setTrackStreamOutput(true); |
| setTrackStreamOutputTruncate(false); |
| setTrackStreamOutputTruncateLines(50); |
| setSubmitTypes(SubmitType.getDefaultSet()); |
| setFilePath(""); //$NON-NLS-1$ |
| setFileMode(DEFAULT_FILE_MODE); |
| setPrependTimestamp(true); |
| } |
| |
| |
| public String getId() { |
| return this.id; |
| } |
| |
| public String getName() { |
| return this.name; |
| } |
| |
| public void setName(final String label) { |
| final String oldValue= this.name; |
| this.name= label; |
| firePropertyChange("name", oldValue, label); |
| } |
| |
| public boolean getTrackStreamInfo() { |
| return this.trackStreamInfo; |
| } |
| |
| public void setTrackStreamInfo(final boolean enable) { |
| final boolean oldValue= this.trackStreamInfo; |
| this.trackStreamInfo= enable; |
| firePropertyChange("trackStreamInfo", oldValue, enable); |
| } |
| |
| public boolean getTrackStreamInput() { |
| return this.trackStreamInput; |
| } |
| |
| public void setTrackStreamInput(final boolean enable) { |
| final boolean oldValue= this.trackStreamInput; |
| this.trackStreamInput= enable; |
| firePropertyChange("trackStreamInput", oldValue, enable); |
| } |
| |
| public boolean getTrackStreamInputHistoryOnly() { |
| return this.trackStreamInputHistoryOnly; |
| } |
| |
| public void setTrackStreamInputHistoryOnly(final boolean enable) { |
| final boolean oldValue= this.trackStreamInputHistoryOnly; |
| this.trackStreamInputHistoryOnly= enable; |
| firePropertyChange("trackStreamInputHistoryOnly", oldValue, enable); |
| } |
| |
| public boolean getTrackStreamOutput() { |
| return this.trackStreamOutput; |
| } |
| |
| public void setTrackStreamOutput(final boolean enable) { |
| final boolean oldValue= this.trackStreamOutput; |
| this.trackStreamOutput= enable; |
| firePropertyChange("trackStreamOutput", oldValue, enable); |
| } |
| |
| public boolean getTrackStreamOutputTruncate() { |
| return this.trackStreamOutputTruncate; |
| } |
| |
| public void setTrackStreamOutputTruncate(final boolean enable) { |
| final boolean oldValue= this.trackStreamOutputTruncate; |
| this.trackStreamOutputTruncate= enable; |
| firePropertyChange("trackStreamOutputTruncate", oldValue, enable); |
| } |
| |
| public int getTrackStreamOutputTruncateLines() { |
| return this.trackStreamOutputTruncateLines; |
| } |
| |
| public void setTrackStreamOutputTruncateLines(final int lines) { |
| final int oldValue= this.trackStreamOutputTruncateLines; |
| this.trackStreamOutputTruncateLines= lines; |
| firePropertyChange("trackStreamOutputTruncateLines", oldValue, lines); |
| } |
| |
| public EnumSet<SubmitType> getSubmitTypes() { |
| return this.submitTypes; |
| } |
| |
| public void setSubmitTypes(final EnumSet<SubmitType> typesToInclude) { |
| final EnumSet<SubmitType> oldValue= this.submitTypes; |
| this.submitTypes= typesToInclude; |
| firePropertyChange("submitTypes", oldValue, typesToInclude); |
| } |
| |
| public String getFilePath() { |
| return this.fFilePath; |
| } |
| |
| public void setFilePath(final String path) { |
| final String oldValue= this.fFilePath; |
| this.fFilePath= path; |
| firePropertyChange("filePath", oldValue, path); |
| } |
| |
| public int getFileMode() { |
| return this.fFileMode; |
| } |
| |
| public void setFileMode(final int mode) { |
| final int oldValue= this.fFileMode; |
| this.fFileMode= mode; |
| firePropertyChange("fileMode", oldValue, mode); |
| } |
| |
| public String getFileEncoding() { |
| return "UTF-8"; //$NON-NLS-1$ |
| } |
| |
| |
| public boolean getPrependTimestamp() { |
| return this.prependTimestamp; |
| } |
| |
| public void setPrependTimestamp(final boolean enable) { |
| final boolean oldValue= this.prependTimestamp; |
| this.prependTimestamp= enable; |
| firePropertyChange("prependTimestamp", oldValue, enable); |
| } |
| |
| |
| @Override |
| public int hashCode() { |
| return this.id.hashCode(); |
| } |
| |
| @Override |
| public boolean equals(final @Nullable Object obj) { |
| return (this == obj || |
| (obj instanceof TrackingConfiguration && this.id.equals(((TrackingConfiguration) obj).id)) ); |
| } |
| |
| } |