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