/******************************************************************************* * Copyright (c) 2000, 2009 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.core.internal.resources; import org.eclipse.core.resources.IWorkspaceDescription; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.preferences.DefaultScope; import org.eclipse.core.runtime.preferences.IEclipsePreferences; /** * @see IWorkspaceDescription */ public class WorkspaceDescription extends ModelObject implements IWorkspaceDescription { protected boolean autoBuilding; protected String[] buildOrder; protected long fileStateLongevity; protected int maxBuildIterations; protected int maxFileStates; protected long maxFileStateSize; protected boolean applyFileStatePolicy; private long snapshotInterval; protected int operationsPerSnapshot; protected long deltaExpiration; public WorkspaceDescription(String name) { super(name); // initialize based on the values in the default preferences IEclipsePreferences node = new DefaultScope().getNode(ResourcesPlugin.PI_RESOURCES); autoBuilding = node.getBoolean(ResourcesPlugin.PREF_AUTO_BUILDING, PreferenceInitializer.PREF_AUTO_BUILDING_DEFAULT); maxBuildIterations = node.getInt(ResourcesPlugin.PREF_MAX_BUILD_ITERATIONS, PreferenceInitializer.PREF_MAX_BUILD_ITERATIONS_DEFAULT); applyFileStatePolicy = node.getBoolean(ResourcesPlugin.PREF_APPLY_FILE_STATE_POLICY, PreferenceInitializer.PREF_APPLY_FILE_STATE_POLICY_DEFAULT); fileStateLongevity = node.getLong(ResourcesPlugin.PREF_FILE_STATE_LONGEVITY, PreferenceInitializer.PREF_FILE_STATE_LONGEVITY_DEFAULT); maxFileStates = node.getInt(ResourcesPlugin.PREF_MAX_FILE_STATES, PreferenceInitializer.PREF_MAX_FILE_STATES_DEFAULT); maxFileStateSize = node.getLong(ResourcesPlugin.PREF_MAX_FILE_STATE_SIZE, PreferenceInitializer.PREF_MAX_FILE_STATE_SIZE_DEFAULT); snapshotInterval = node.getLong(ResourcesPlugin.PREF_SNAPSHOT_INTERVAL, PreferenceInitializer.PREF_SNAPSHOT_INTERVAL_DEFAULT); operationsPerSnapshot = node.getInt(PreferenceInitializer.PREF_OPERATIONS_PER_SNAPSHOT, PreferenceInitializer.PREF_OPERATIONS_PER_SNAPSHOT_DEFAULT); deltaExpiration = node.getLong(PreferenceInitializer.PREF_DELTA_EXPIRATION, PreferenceInitializer.PREF_DELTA_EXPIRATION_DEFAULT); } /** * @see IWorkspaceDescription#getBuildOrder() */ public String[] getBuildOrder() { return getBuildOrder(true); } public String[] getBuildOrder(boolean makeCopy) { if (buildOrder == null) return null; return makeCopy ? (String[]) buildOrder.clone() : buildOrder; } public long getDeltaExpiration() { return deltaExpiration; } public void setDeltaExpiration(long value) { deltaExpiration = value; } /** * @see IWorkspaceDescription#getFileStateLongevity() */ public long getFileStateLongevity() { return fileStateLongevity; } /** * @see IWorkspaceDescription#getMaxBuildIterations() */ public int getMaxBuildIterations() { return maxBuildIterations; } /** * @see IWorkspaceDescription#getMaxFileStates() */ public int getMaxFileStates() { return maxFileStates; } /** * @see IWorkspaceDescription#getMaxFileStateSize() */ public long getMaxFileStateSize() { return maxFileStateSize; } /** * @see IWorkspaceDescription#isApplyFileStatePolicy() */ public boolean isApplyFileStatePolicy() { return applyFileStatePolicy; } public int getOperationsPerSnapshot() { return operationsPerSnapshot; } /** * @see IWorkspaceDescription#getSnapshotInterval() */ public long getSnapshotInterval() { return snapshotInterval; } public void internalSetBuildOrder(String[] value) { buildOrder = value; } /** * @see IWorkspaceDescription#isAutoBuilding() */ public boolean isAutoBuilding() { return autoBuilding; } public void setOperationsPerSnapshot(int value) { operationsPerSnapshot = value; } /** * @see IWorkspaceDescription#setAutoBuilding(boolean) */ public void setAutoBuilding(boolean value) { autoBuilding = value; } /** * @see IWorkspaceDescription#setBuildOrder(String[]) */ public void setBuildOrder(String[] value) { buildOrder = (value == null) ? null : (String[]) value.clone(); } /** * @see IWorkspaceDescription#setFileStateLongevity(long) */ public void setFileStateLongevity(long time) { fileStateLongevity = time; } /** * @see IWorkspaceDescription#setMaxBuildIterations(int) */ public void setMaxBuildIterations(int number) { maxBuildIterations = number; } /** * @see IWorkspaceDescription#setMaxFileStates(int) */ public void setMaxFileStates(int number) { maxFileStates = number; } /** * @see IWorkspaceDescription#setMaxFileStateSize(long) */ public void setMaxFileStateSize(long size) { maxFileStateSize = size; } /** * @see IWorkspaceDescription#setApplyFileStatePolicy(boolean) */ public void setApplyFileStatePolicy(boolean apply) { applyFileStatePolicy = apply; } /** * @see IWorkspaceDescription#setSnapshotInterval(long) */ public void setSnapshotInterval(long snapshotInterval) { this.snapshotInterval = snapshotInterval; } }