From f123a0506817c3ebbc8034580ed50874e8af0ad8 Mon Sep 17 00:00:00 2001 From: Andrew Gvozdev Date: Mon, 22 Apr 2013 14:52:08 -0400 Subject: [PATCH] Tidy up a bit. --- .../model/CConfigurationDescription.java | 19 +++++++----- .../model/CConfigurationDescriptionCache.java | 26 ++++++++++------- .../model/CProjectDescriptionManager.java | 29 ++----------------- 3 files changed, 30 insertions(+), 44 deletions(-) diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CConfigurationDescription.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CConfigurationDescription.java index 2754c91e3d2..a545b61b779 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CConfigurationDescription.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CConfigurationDescription.java @@ -39,6 +39,7 @@ import org.eclipse.cdt.core.settings.model.ICTargetPlatformSetting; import org.eclipse.cdt.core.settings.model.WriteAccessException; import org.eclipse.cdt.core.settings.model.extension.CBuildData; import org.eclipse.cdt.core.settings.model.extension.CConfigurationData; +import org.eclipse.cdt.core.settings.model.extension.CConfigurationDataProvider; import org.eclipse.cdt.core.settings.model.extension.CDataObject; import org.eclipse.cdt.core.settings.model.extension.CFileData; import org.eclipse.cdt.core.settings.model.extension.CFolderData; @@ -51,6 +52,7 @@ import org.eclipse.cdt.internal.core.settings.model.xml.InternalXmlStorageElemen import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.QualifiedName; /** @@ -120,8 +122,8 @@ public class CConfigurationDescription extends CDataProxyContainer setData(CProjectDescriptionManager.getInstance().createData(this, base, baseData, false, null)); } - /* - * conveter cnfig constructor + /** + * Converter config constructor. */ CConfigurationDescription(String id, String name, ICStorageElement el, CProjectDescription projectDes) throws CoreException { super(null, projectDes, null); @@ -139,8 +141,8 @@ public class CConfigurationDescription extends CDataProxyContainer fCfgSpecSettings.reconcileExtensionSettings(false); } - /* - * preference config constructor + /** + * Preference config constructor. */ CConfigurationDescription(String id, String name, String bsId, ICStorageElement el, ICDataProxyContainer cr) throws CoreException { super(null, cr, null); @@ -152,11 +154,14 @@ public class CConfigurationDescription extends CDataProxyContainer fCfgSpecSettings.setId(id); fCfgSpecSettings.setName(name); fCfgSpecSettings.setBuildSystemId(bsId); - setData(CProjectDescriptionManager.getInstance().loadData(this, null)); + + CConfigurationDataProvider dataProvider = CProjectDescriptionManager.getInstance().getProvider(this); + CConfigurationData data = dataProvider.loadConfiguration(this, new NullProgressMonitor()); + setData(data); } - void doWritable() throws CoreException{ - if(!containsWritableData()){ + void doWritable() throws CoreException { + if (!containsWritableData()) { CConfigurationData data = getConfigurationData(false); CConfigurationDescriptionCache cache = (CConfigurationDescriptionCache)data; data = cache.getConfigurationData(); diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CConfigurationDescriptionCache.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CConfigurationDescriptionCache.java index 5ae75641361..52bd82b26d1 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CConfigurationDescriptionCache.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CConfigurationDescriptionCache.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2010 Intel Corporation and others. + * Copyright (c) 2007, 2013 Intel 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 @@ -18,6 +18,8 @@ import org.eclipse.cdt.core.cdtvariables.ICdtVariable; import org.eclipse.cdt.core.cdtvariables.ICdtVariablesContributor; import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvider; import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvidersKeeper; +import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsManager; +import org.eclipse.cdt.core.language.settings.providers.ScannerDiscoveryLegacySupport; import org.eclipse.cdt.core.settings.model.CConfigurationStatus; import org.eclipse.cdt.core.settings.model.CProjectDescriptionEvent; import org.eclipse.cdt.core.settings.model.ICBuildSetting; @@ -40,6 +42,7 @@ import org.eclipse.cdt.core.settings.model.IModificationContext; import org.eclipse.cdt.core.settings.model.WriteAccessException; import org.eclipse.cdt.core.settings.model.extension.CBuildData; import org.eclipse.cdt.core.settings.model.extension.CConfigurationData; +import org.eclipse.cdt.core.settings.model.extension.CConfigurationDataProvider; import org.eclipse.cdt.core.settings.model.extension.CFileData; import org.eclipse.cdt.core.settings.model.extension.CFolderData; import org.eclipse.cdt.core.settings.model.extension.CLanguageData; @@ -53,6 +56,7 @@ import org.eclipse.cdt.internal.core.cdtvariables.StorableCdtVariables; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.QualifiedName; /** @@ -91,6 +95,7 @@ import org.eclipse.core.runtime.QualifiedName; */ public class CConfigurationDescriptionCache extends CDefaultConfigurationData implements ICConfigurationDescription, IInternalCCfgInfo, ILanguageSettingsProvidersKeeper, ICachedData { + private CProjectDescription fParent; private PathSettingsContainer fPathSettingContainer = PathSettingsContainer.createRootContainer(); private ResourceDescriptionHolder fRcHolder = new ResourceDescriptionHolder(fPathSettingContainer, true); @@ -105,7 +110,7 @@ public class CConfigurationDescriptionCache extends CDefaultConfigurationData private ICConfigurationDescription fBaseDescription; private ICSourceEntry[] fResolvedSourceEntries; - CConfigurationDescriptionCache(ICStorageElement storage, CProjectDescription parent) throws CoreException{ + CConfigurationDescriptionCache(ICStorageElement storage, CProjectDescription parent) throws CoreException { super(null); fInitializing = true; fParent = parent; @@ -117,17 +122,18 @@ public class CConfigurationDescriptionCache extends CDefaultConfigurationData // loadData(); } - public boolean isInitializing(){ + public boolean isInitializing() { return fInitializing; } - void loadData() throws CoreException{ + void loadData() throws CoreException { if(fDataLoadded) return; fDataLoadded = true; - fData = CProjectDescriptionManager.getInstance().loadData(this, null); + CConfigurationDataProvider dataProvider = CProjectDescriptionManager.getInstance().getProvider(this); + fData = dataProvider.loadConfiguration(this, new NullProgressMonitor()); copySettingsFrom(fData, true); @@ -161,11 +167,12 @@ public class CConfigurationDescriptionCache extends CDefaultConfigurationData return fBaseCache; } - boolean applyData(SettingsContext context) throws CoreException{ + boolean applyData(SettingsContext context) throws CoreException { boolean modified = true; - if(fBaseDescription != null){ - - fData = CProjectDescriptionManager.getInstance().applyData(this, fBaseDescription, fData, context, null); + if (fBaseDescription != null){ + context.init(this); + CConfigurationDataProvider dataProvider = CProjectDescriptionManager.getInstance().getProvider(this); + fData = dataProvider.applyConfiguration(this, fBaseDescription, fData, context, new NullProgressMonitor()); fDataLoadded = true; fName = fData.getName(); fId = fData.getId(); @@ -183,7 +190,6 @@ public class CConfigurationDescriptionCache extends CDefaultConfigurationData fMacros = new StorableCdtVariables(vars, true); fSpecSettings.serialize(); fSpecSettings.setModified(false); - } fBaseDescription = null; diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CProjectDescriptionManager.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CProjectDescriptionManager.java index 61c95fc315d..199deec8c8e 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CProjectDescriptionManager.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CProjectDescriptionManager.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2010 Intel Corporation and others. + * Copyright (c) 2007, 2013 Intel 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 @@ -1137,31 +1137,6 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { } } - CConfigurationData loadData(ICConfigurationDescription des, IProgressMonitor monitor) throws CoreException{ - if(monitor == null) - monitor = new NullProgressMonitor(); - - CConfigurationDataProvider provider = getProvider(des); - CConfigurationData data = provider.loadConfiguration(des, monitor); - - if (des instanceof ILanguageSettingsProvidersKeeper && ! des.isPreferenceConfiguration()) { - String[] defaultIds = ((ILanguageSettingsProvidersKeeper) des).getDefaultLanguageSettingsProvidersIds(); - if (defaultIds == null) { - ((ILanguageSettingsProvidersKeeper) des).setDefaultLanguageSettingsProvidersIds(ScannerDiscoveryLegacySupport.getDefaultProviderIdsLegacy(des)); - } - } - return data; - } - - CConfigurationData applyData(CConfigurationDescriptionCache des, ICConfigurationDescription baseDescription, CConfigurationData base, SettingsContext context, IProgressMonitor monitor) throws CoreException { - if(monitor == null) - monitor = new NullProgressMonitor(); - - CConfigurationDataProvider provider = getProvider(des); - context.init(des); - return provider.applyConfiguration(des, baseDescription, base, context, monitor); - } - void notifyCached(ICConfigurationDescription des, CConfigurationData data, IProgressMonitor monitor) { if(monitor == null) monitor = new NullProgressMonitor(); @@ -1190,7 +1165,7 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { return provider.createConfiguration(des, baseDescription, base, clone, monitor); } - private CConfigurationDataProvider getProvider(ICConfigurationDescription des) throws CoreException{ + CConfigurationDataProvider getProvider(ICConfigurationDescription des) throws CoreException{ CConfigurationDataProviderDescriptor providerDes = getCfgProviderDescriptor(des); if(providerDes == null) throw ExceptionFactory.createCoreException(SettingsModelMessages.getString("CProjectDescriptionManager.1")); //$NON-NLS-1$