mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Cosmetics/JavaDoc.
This commit is contained in:
parent
53f251ec84
commit
a6f057199a
5 changed files with 314 additions and 344 deletions
|
@ -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
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Eclipse Public License v1.0
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -17,8 +17,8 @@ import org.eclipse.cdt.core.settings.model.extension.impl.CDefaultConfigurationD
|
||||||
import org.eclipse.cdt.core.settings.model.util.CDataSerializer;
|
import org.eclipse.cdt.core.settings.model.util.CDataSerializer;
|
||||||
import org.eclipse.cdt.core.settings.model.util.UserAndDiscoveredEntryDataSerializer;
|
import org.eclipse.cdt.core.settings.model.util.UserAndDiscoveredEntryDataSerializer;
|
||||||
import org.eclipse.cdt.make.internal.core.scannerconfig.CDataDiscoveredInfoCalculator;
|
import org.eclipse.cdt.make.internal.core.scannerconfig.CDataDiscoveredInfoCalculator;
|
||||||
import org.eclipse.cdt.make.internal.core.scannerconfig.CDataDiscoveredInfoProcessor;
|
|
||||||
import org.eclipse.cdt.make.internal.core.scannerconfig.CDataDiscoveredInfoCalculator.DiscoveredSettingInfo;
|
import org.eclipse.cdt.make.internal.core.scannerconfig.CDataDiscoveredInfoCalculator.DiscoveredSettingInfo;
|
||||||
|
import org.eclipse.cdt.make.internal.core.scannerconfig.CDataDiscoveredInfoProcessor;
|
||||||
import org.eclipse.core.resources.IProject;
|
import org.eclipse.core.resources.IProject;
|
||||||
import org.eclipse.core.runtime.CoreException;
|
import org.eclipse.core.runtime.CoreException;
|
||||||
import org.eclipse.core.runtime.IProgressMonitor;
|
import org.eclipse.core.runtime.IProgressMonitor;
|
||||||
|
@ -40,46 +40,42 @@ public class MakeConfigurationDataProvider extends CDefaultConfigurationDataProv
|
||||||
protected String getStorageId() {
|
protected String getStorageId() {
|
||||||
return STORAGE_ID;
|
return STORAGE_ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public CConfigurationData applyConfiguration(
|
|
||||||
ICConfigurationDescription des,
|
|
||||||
ICConfigurationDescription baseDescription,
|
|
||||||
CConfigurationData base, IProgressMonitor monitor)
|
|
||||||
throws CoreException {
|
|
||||||
CConfigurationData result = super.applyConfiguration(des, baseDescription, base, monitor);
|
|
||||||
if(!des.isPreferenceConfiguration())
|
|
||||||
updateDiscoveredInfo(des.getProjectDescription().getProject(), result);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CConfigurationData loadConfiguration(ICConfigurationDescription des,
|
public CConfigurationData applyConfiguration(ICConfigurationDescription cfgDescription,
|
||||||
|
ICConfigurationDescription baseCfgDescription, CConfigurationData baseData,
|
||||||
IProgressMonitor monitor) throws CoreException {
|
IProgressMonitor monitor) throws CoreException {
|
||||||
CConfigurationData result = super.loadConfiguration(des, monitor);
|
|
||||||
if(!des.isPreferenceConfiguration())
|
CConfigurationData result = super.applyConfiguration(cfgDescription, baseCfgDescription, baseData, monitor);
|
||||||
updateDiscoveredInfo(des.getProjectDescription().getProject(), result);
|
if(!cfgDescription.isPreferenceConfiguration())
|
||||||
|
updateDiscoveredInfo(cfgDescription.getProjectDescription().getProject(), result);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void updateDiscoveredInfo(IProject project, CConfigurationData cfgData){
|
@Override
|
||||||
|
public CConfigurationData loadConfiguration(ICConfigurationDescription cfgDescription, IProgressMonitor monitor) throws CoreException {
|
||||||
|
CConfigurationData result = super.loadConfiguration(cfgDescription, monitor);
|
||||||
|
if(!cfgDescription.isPreferenceConfiguration())
|
||||||
|
updateDiscoveredInfo(cfgDescription.getProjectDescription().getProject(), result);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void updateDiscoveredInfo(IProject project, CConfigurationData cfgData) {
|
||||||
updateDiscoveredInfo(project, cfgData, getInfoCalculator(), getInfoProcessor());
|
updateDiscoveredInfo(project, cfgData, getInfoCalculator(), getInfoProcessor());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void updateDiscoveredInfo(IProject project, CConfigurationData cfgData,
|
public static void updateDiscoveredInfo(IProject project, CConfigurationData cfgData,
|
||||||
CDataDiscoveredInfoCalculator calculator,
|
CDataDiscoveredInfoCalculator calculator, CDataDiscoveredInfoProcessor processor) {
|
||||||
CDataDiscoveredInfoProcessor processor){
|
|
||||||
|
|
||||||
DiscoveredSettingInfo dsInfo = calculator.getSettingInfos(project, cfgData);
|
DiscoveredSettingInfo dsInfo = calculator.getSettingInfos(project, cfgData);
|
||||||
|
|
||||||
processor.applyDiscoveredInfo(cfgData, dsInfo);
|
processor.applyDiscoveredInfo(cfgData, dsInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected CDataDiscoveredInfoProcessor getInfoProcessor(){
|
protected CDataDiscoveredInfoProcessor getInfoProcessor( ){
|
||||||
return MakeDiscoveredInfoProcessor.getDefault();
|
return MakeDiscoveredInfoProcessor.getDefault();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected CDataDiscoveredInfoCalculator getInfoCalculator(){
|
protected CDataDiscoveredInfoCalculator getInfoCalculator() {
|
||||||
return CDataDiscoveredInfoCalculator.getDefault();
|
return CDataDiscoveredInfoCalculator.getDefault();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2007, 2012 Intel Corporation and others.
|
* Copyright (c) 2007, 2013 Intel Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Eclipse Public License v1.0
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -102,7 +102,7 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem
|
||||||
try {
|
try {
|
||||||
IProjectDescription eDes = fProject.getDescription();
|
IProjectDescription eDes = fProject.getDescription();
|
||||||
if(BuilderFactory.applyBuilder(eDes, fBuilder) == BuilderFactory.CMD_CHANGED) {
|
if(BuilderFactory.applyBuilder(eDes, fBuilder) == BuilderFactory.CMD_CHANGED) {
|
||||||
fProject.setDescription(eDes, monitor);
|
fProject.setDescription(eDes, monitor);
|
||||||
}
|
}
|
||||||
} catch (Exception e){
|
} catch (Exception e){
|
||||||
ManagedBuilderCorePlugin.log(e);
|
ManagedBuilderCorePlugin.log(e);
|
||||||
|
@ -110,9 +110,11 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
static BuildConfigurationData writeConfiguration(ICConfigurationDescription cfgDescription,
|
|
||||||
BuildConfigurationData base) throws CoreException {
|
static BuildConfigurationData writeConfiguration(ICConfigurationDescription cfgDescription, BuildConfigurationData baseData)
|
||||||
BuildConfigurationData appliedCfg = base;
|
throws CoreException {
|
||||||
|
|
||||||
|
BuildConfigurationData appliedCfg = baseData;
|
||||||
ICStorageElement rootElement = cfgDescription.getStorage(BUILD_SYSTEM_DATA_MODULE_NAME, true);
|
ICStorageElement rootElement = cfgDescription.getStorage(BUILD_SYSTEM_DATA_MODULE_NAME, true);
|
||||||
rootElement.clear();
|
rootElement.clear();
|
||||||
rootElement.setAttribute(VERSION_ATTRIBUTE, ManagedBuildManager.getVersion().toString());
|
rootElement.setAttribute(VERSION_ATTRIBUTE, ManagedBuildManager.getVersion().toString());
|
||||||
|
@ -132,12 +134,10 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem
|
||||||
return appliedCfg;
|
return appliedCfg;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected CConfigurationData applyPreferences(
|
protected CConfigurationData applyPreferences(ICConfigurationDescription cfgDescription, CConfigurationData baseData) throws CoreException {
|
||||||
ICConfigurationDescription cfgDescription, CConfigurationData base) throws CoreException{
|
BuildConfigurationData appliedCfg = writeConfiguration(cfgDescription, (BuildConfigurationData)baseData);
|
||||||
|
|
||||||
BuildConfigurationData appliedCfg = writeConfiguration(cfgDescription, (BuildConfigurationData)base);
|
IConfiguration cfg = ((BuildConfigurationData)baseData).getConfiguration();
|
||||||
|
|
||||||
IConfiguration cfg = ((BuildConfigurationData)base).getConfiguration();
|
|
||||||
try {
|
try {
|
||||||
CfgScannerConfigInfoFactory2.savePreference(cfg);
|
CfgScannerConfigInfoFactory2.savePreference(cfg);
|
||||||
} catch (CoreException e){
|
} catch (CoreException e){
|
||||||
|
@ -148,17 +148,15 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CConfigurationData applyConfiguration(
|
public CConfigurationData applyConfiguration(ICConfigurationDescription cfgDescription,
|
||||||
ICConfigurationDescription cfgDescription,
|
ICConfigurationDescription baseCfgDescription, CConfigurationData baseData,
|
||||||
ICConfigurationDescription baseCfgDescription,
|
IModificationContext context, IProgressMonitor monitor) throws CoreException {
|
||||||
CConfigurationData base,
|
|
||||||
IModificationContext context,
|
|
||||||
IProgressMonitor monitor)
|
|
||||||
throws CoreException {
|
|
||||||
if(cfgDescription.isPreferenceConfiguration())
|
|
||||||
return applyPreferences(cfgDescription, base);
|
|
||||||
|
|
||||||
BuildConfigurationData baseCfgData = (BuildConfigurationData)base;
|
if (cfgDescription.isPreferenceConfiguration()) {
|
||||||
|
return applyPreferences(cfgDescription, baseData);
|
||||||
|
}
|
||||||
|
|
||||||
|
BuildConfigurationData baseCfgData = (BuildConfigurationData)baseData;
|
||||||
IConfiguration baseCfg = baseCfgData.getConfiguration();
|
IConfiguration baseCfg = baseCfgData.getConfiguration();
|
||||||
BuildConfigurationData appliedCfg;
|
BuildConfigurationData appliedCfg;
|
||||||
if(context.isBaseDataCached() && !baseCfg.isDirty()){
|
if(context.isBaseDataCached() && !baseCfg.isDirty()){
|
||||||
|
@ -208,20 +206,16 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem
|
||||||
cfgDescription.setSessionProperty(CFG_PERSISTED_PROPERTY, Boolean.TRUE);
|
cfgDescription.setSessionProperty(CFG_PERSISTED_PROPERTY, Boolean.TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void writeManagedProjectInfo(ICProjectDescription des,
|
private static void writeManagedProjectInfo(ICProjectDescription prjDescription, ManagedProject mProj) throws CoreException {
|
||||||
ManagedProject mProj) throws CoreException {
|
ICStorageElement rootElement = prjDescription.getStorage(BUILD_SYSTEM_DATA_MODULE_NAME, true);
|
||||||
ICStorageElement rootElement = des.getStorage(BUILD_SYSTEM_DATA_MODULE_NAME, true);
|
|
||||||
rootElement.clear();
|
rootElement.clear();
|
||||||
rootElement.setAttribute(VERSION_ATTRIBUTE, ManagedBuildManager.getVersion().toString());
|
rootElement.setAttribute(VERSION_ATTRIBUTE, ManagedBuildManager.getVersion().toString());
|
||||||
ICStorageElement mProjElem = rootElement.createChild(IManagedProject.MANAGED_PROJECT_ELEMENT_NAME);
|
ICStorageElement mProjElem = rootElement.createChild(IManagedProject.MANAGED_PROJECT_ELEMENT_NAME);
|
||||||
mProj.serializeProjectInfo(mProjElem);
|
mProj.serializeProjectInfo(mProjElem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected CConfigurationData createPreferences(ICConfigurationDescription cfgDescription, CConfigurationData baseData) throws CoreException {
|
||||||
protected CConfigurationData createPreferences(
|
Configuration cfg = (Configuration)((BuildConfigurationData)baseData).getConfiguration();
|
||||||
ICConfigurationDescription cfgDescription, CConfigurationData base)
|
|
||||||
throws CoreException {
|
|
||||||
Configuration cfg = (Configuration)((BuildConfigurationData)base).getConfiguration();
|
|
||||||
Configuration newCfg = new Configuration((ManagedProject)cfg.getManagedProject(), cfg, cfgDescription.getId(), true, true, true);
|
Configuration newCfg = new Configuration((ManagedProject)cfg.getManagedProject(), cfg, cfgDescription.getId(), true, true, true);
|
||||||
newCfg.setConfigurationDescription(cfgDescription);
|
newCfg.setConfigurationDescription(cfgDescription);
|
||||||
newCfg.setName(cfgDescription.getName());
|
newCfg.setName(cfgDescription.getName());
|
||||||
|
@ -234,12 +228,10 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CConfigurationData createConfiguration(
|
public CConfigurationData createConfiguration(ICConfigurationDescription cfgDescription,
|
||||||
ICConfigurationDescription cfgDescription,
|
ICConfigurationDescription baseCfgDescription, CConfigurationData base, boolean clone,
|
||||||
ICConfigurationDescription baseCfgDescription,
|
IProgressMonitor monitor) throws CoreException {
|
||||||
CConfigurationData base, boolean clone,
|
|
||||||
IProgressMonitor monitor)
|
|
||||||
throws CoreException {
|
|
||||||
if(cfgDescription.isPreferenceConfiguration())
|
if(cfgDescription.isPreferenceConfiguration())
|
||||||
return createPreferences(cfgDescription, base);
|
return createPreferences(cfgDescription, base);
|
||||||
|
|
||||||
|
@ -259,7 +251,7 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem
|
||||||
return newCfg.getConfigurationData();
|
return newCfg.getConfigurationData();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Configuration copyCfg(Configuration cfg, ICConfigurationDescription cfgDescription){
|
public static Configuration copyCfg(Configuration cfg, ICConfigurationDescription cfgDescription) {
|
||||||
IManagedBuildInfo info = getBuildInfo(cfgDescription);
|
IManagedBuildInfo info = getBuildInfo(cfgDescription);
|
||||||
ManagedProject mProj = (ManagedProject)info.getManagedProject();
|
ManagedProject mProj = (ManagedProject)info.getManagedProject();
|
||||||
|
|
||||||
|
@ -278,7 +270,7 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem
|
||||||
return newCfg;
|
return newCfg;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static IManagedBuildInfo getBuildInfo(ICConfigurationDescription cfgDescription){
|
private static IManagedBuildInfo getBuildInfo(ICConfigurationDescription cfgDescription) {
|
||||||
ICProjectDescription projDes = cfgDescription.getProjectDescription();
|
ICProjectDescription projDes = cfgDescription.getProjectDescription();
|
||||||
IProject project = projDes.getProject();
|
IProject project = projDes.getProject();
|
||||||
IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(project, false);
|
IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(project, false);
|
||||||
|
@ -292,15 +284,15 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void setLoaddedBuildInfo(ICProjectDescription des, IManagedBuildInfo info){
|
private static void setLoaddedBuildInfo(ICProjectDescription prjDescription, IManagedBuildInfo info) {
|
||||||
des.setSessionProperty(BUILD_INFO_PROPERTY, info);
|
prjDescription.setSessionProperty(BUILD_INFO_PROPERTY, info);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ManagedBuildInfo getLoaddedBuildInfo(ICProjectDescription des){
|
public static ManagedBuildInfo getLoaddedBuildInfo(ICProjectDescription prjDescription) {
|
||||||
return (ManagedBuildInfo)des.getSessionProperty(BUILD_INFO_PROPERTY);
|
return (ManagedBuildInfo)prjDescription.getSessionProperty(BUILD_INFO_PROPERTY);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static IManagedProject getManagedProject(ICConfigurationDescription cfgDescription, IManagedBuildInfo info){
|
private static IManagedProject getManagedProject(ICConfigurationDescription cfgDescription, IManagedBuildInfo info) {
|
||||||
IManagedProject mProj = info.getManagedProject();
|
IManagedProject mProj = info.getManagedProject();
|
||||||
if(mProj == null){
|
if(mProj == null){
|
||||||
mProj = createManagedProject(info, cfgDescription.getProjectDescription());
|
mProj = createManagedProject(info, cfgDescription.getProjectDescription());
|
||||||
|
@ -308,10 +300,10 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem
|
||||||
return mProj;
|
return mProj;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static IManagedProject createManagedProject(IManagedBuildInfo info, ICProjectDescription des){
|
private static IManagedProject createManagedProject(IManagedBuildInfo info, ICProjectDescription prjDescription) {
|
||||||
IManagedProject mProj = null;
|
IManagedProject mProj = null;
|
||||||
try {
|
try {
|
||||||
ICStorageElement rootElem = des.getStorage(BUILD_SYSTEM_DATA_MODULE_NAME, false);
|
ICStorageElement rootElem = prjDescription.getStorage(BUILD_SYSTEM_DATA_MODULE_NAME, false);
|
||||||
if(rootElem != null){
|
if(rootElem != null){
|
||||||
String version = rootElem.getAttribute(VERSION_ATTRIBUTE);
|
String version = rootElem.getAttribute(VERSION_ATTRIBUTE);
|
||||||
ICStorageElement children[] = rootElem.getChildren();
|
ICStorageElement children[] = rootElem.getChildren();
|
||||||
|
@ -327,26 +319,26 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem
|
||||||
}
|
}
|
||||||
|
|
||||||
if(mProj == null){
|
if(mProj == null){
|
||||||
mProj = new ManagedProject(des);
|
mProj = new ManagedProject(prjDescription);
|
||||||
info.setManagedProject(mProj);
|
info.setManagedProject(mProj);
|
||||||
}
|
}
|
||||||
|
|
||||||
return mProj;
|
return mProj;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String[] getNaturesIdsUsedOnCache(IConfiguration cfg){
|
public static String[] getNaturesIdsUsedOnCache(IConfiguration cfg) {
|
||||||
ICConfigurationDescription cfgDescription = ManagedBuildManager.getDescriptionForConfiguration(cfg);
|
ICConfigurationDescription cfgDescription = ManagedBuildManager.getDescriptionForConfiguration(cfg);
|
||||||
if(cfgDescription != null)
|
if(cfgDescription != null)
|
||||||
return getNaturesIdsUsedOnCache(cfgDescription);
|
return getNaturesIdsUsedOnCache(cfgDescription);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String[] getNaturesIdsUsedOnCache(ICConfigurationDescription cfgDescription){
|
public static String[] getNaturesIdsUsedOnCache(ICConfigurationDescription cfgDescription) {
|
||||||
String[] strs = (String[])cfgDescription.getSessionProperty(NATURES_USED_ON_CACHE_PROPERTY);
|
String[] strs = (String[])cfgDescription.getSessionProperty(NATURES_USED_ON_CACHE_PROPERTY);
|
||||||
return strs != null && strs.length != 0 ? (String[])strs.clone() : strs;
|
return strs != null && strs.length != 0 ? (String[])strs.clone() : strs;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void cacheNaturesIdsUsedOnCache(ICConfigurationDescription cfgDescription){
|
public static void cacheNaturesIdsUsedOnCache(ICConfigurationDescription cfgDescription) {
|
||||||
IProject project = cfgDescription.getProjectDescription().getProject();
|
IProject project = cfgDescription.getProjectDescription().getProject();
|
||||||
try {
|
try {
|
||||||
IProjectDescription eDes = project.getDescription();
|
IProjectDescription eDes = project.getDescription();
|
||||||
|
@ -357,12 +349,12 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void setNaturesIdsUsedOnCache(ICConfigurationDescription cfgDescription, String ids[]){
|
private static void setNaturesIdsUsedOnCache(ICConfigurationDescription cfgDescription, String ids[]) {
|
||||||
ids = ids != null && ids.length != 0 ? (String[])ids.clone() : ids;
|
ids = ids != null && ids.length != 0 ? (String[])ids.clone() : ids;
|
||||||
cfgDescription.setSessionProperty(NATURES_USED_ON_CACHE_PROPERTY, ids);
|
cfgDescription.setSessionProperty(NATURES_USED_ON_CACHE_PROPERTY, ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Configuration load(ICConfigurationDescription cfgDescription, ManagedProject mProj, boolean isPreference) throws CoreException{
|
private Configuration load(ICConfigurationDescription cfgDescription, ManagedProject mProj, boolean isPreference) throws CoreException {
|
||||||
ICStorageElement rootElement = cfgDescription.getStorage(BUILD_SYSTEM_DATA_MODULE_NAME, true);
|
ICStorageElement rootElement = cfgDescription.getStorage(BUILD_SYSTEM_DATA_MODULE_NAME, true);
|
||||||
ICStorageElement children[] = rootElement.getChildren();
|
ICStorageElement children[] = rootElement.getChildren();
|
||||||
String version = rootElement.getAttribute(VERSION_ATTRIBUTE);
|
String version = rootElement.getAttribute(VERSION_ATTRIBUTE);
|
||||||
|
@ -378,36 +370,28 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem
|
||||||
return cfg;
|
return cfg;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected CConfigurationData loadPreferences(ICConfigurationDescription cfgDescription)
|
protected CConfigurationData loadPreferences(ICConfigurationDescription cfgDescription) throws CoreException {
|
||||||
throws CoreException {
|
|
||||||
|
|
||||||
Configuration cfg = load(cfgDescription, null, true);
|
Configuration cfg = load(cfgDescription, null, true);
|
||||||
|
|
||||||
cfg = updatePreferenceOnLoad(cfg, cfgDescription);
|
cfg = updatePreferenceOnLoad(cfg, cfgDescription);
|
||||||
|
|
||||||
cfg.setConfigurationDescription(cfgDescription);
|
cfg.setConfigurationDescription(cfgDescription);
|
||||||
|
|
||||||
return cfg.getConfigurationData();
|
return cfg.getConfigurationData();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Configuration getClearPreference(String id){
|
public static Configuration getClearPreference(String id) {
|
||||||
Configuration cfg = createEmptyPrefConfiguration(id, null);
|
Configuration cfg = createEmptyPrefConfiguration(id, null);
|
||||||
|
|
||||||
cfg = adjustPreferenceConfig(cfg);
|
cfg = adjustPreferenceConfig(cfg);
|
||||||
|
|
||||||
return cfg;
|
return cfg;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Configuration updatePreferenceOnLoad(Configuration cfg, ICConfigurationDescription cfgDescription){
|
private static Configuration updatePreferenceOnLoad(Configuration cfg, ICConfigurationDescription cfgDescription) {
|
||||||
if(cfg == null)
|
if(cfg == null) {
|
||||||
cfg = createEmptyPrefConfiguration(cfgDescription.getId(), cfgDescription.getName());
|
cfg = createEmptyPrefConfiguration(cfgDescription.getId(), cfgDescription.getName());
|
||||||
|
}
|
||||||
cfg = adjustPreferenceConfig(cfg);
|
cfg = adjustPreferenceConfig(cfg);
|
||||||
|
|
||||||
return cfg;
|
return cfg;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Configuration adjustPreferenceConfig(Configuration cfg){
|
private static Configuration adjustPreferenceConfig(Configuration cfg) {
|
||||||
LanguageManager mngr = LanguageManager.getInstance();
|
LanguageManager mngr = LanguageManager.getInstance();
|
||||||
ILanguageDescriptor dess[] = mngr.getLanguageDescriptors();
|
ILanguageDescriptor dess[] = mngr.getLanguageDescriptors();
|
||||||
Map<String, ILanguageDescriptor[]> map = mngr.getContentTypeIdToLanguageDescriptionsMap();
|
Map<String, ILanguageDescriptor[]> map = mngr.getContentTypeIdToLanguageDescriptionsMap();
|
||||||
|
@ -422,7 +406,7 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem
|
||||||
return cfg;
|
return cfg;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void adjustFolderInfo(IFolderInfo info, ILanguageDescriptor dess[], HashMap<Object, ILanguageDescriptor[]> map){
|
private static void adjustFolderInfo(IFolderInfo info, ILanguageDescriptor dess[], HashMap<Object, ILanguageDescriptor[]> map) {
|
||||||
IToolChain tch = info.getToolChain();
|
IToolChain tch = info.getToolChain();
|
||||||
Map<String, ILanguageDescriptor> langMap = new HashMap<String, ILanguageDescriptor>();
|
Map<String, ILanguageDescriptor> langMap = new HashMap<String, ILanguageDescriptor>();
|
||||||
for(int i = 0; i < dess.length; i++){
|
for(int i = 0; i < dess.length; i++){
|
||||||
|
@ -464,7 +448,7 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static InputType adjustInputType(Tool tool, InputType type, ILanguageDescriptor des){
|
private static InputType adjustInputType(Tool tool, InputType type, ILanguageDescriptor des) {
|
||||||
String [] cTypeIds = des.getContentTypeIds();
|
String [] cTypeIds = des.getContentTypeIds();
|
||||||
String srcIds[] = type.getSourceContentTypeIds();
|
String srcIds[] = type.getSourceContentTypeIds();
|
||||||
String hIds[] = type.getHeaderContentTypeIds();
|
String hIds[] = type.getHeaderContentTypeIds();
|
||||||
|
@ -488,7 +472,7 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void addTools(IToolChain tc, Map<String, ILanguageDescriptor> langMap, Map<Object, ILanguageDescriptor[]> cTypeToLangMap){
|
private static void addTools(IToolChain tc, Map<String, ILanguageDescriptor> langMap, Map<Object, ILanguageDescriptor[]> cTypeToLangMap ){
|
||||||
ITool extTool = ManagedBuildManager.getExtensionTool(PREF_TOOL_ID);
|
ITool extTool = ManagedBuildManager.getExtensionTool(PREF_TOOL_ID);
|
||||||
List<ILanguageDescriptor> list = new ArrayList<ILanguageDescriptor>(langMap.values());
|
List<ILanguageDescriptor> list = new ArrayList<ILanguageDescriptor>(langMap.values());
|
||||||
ILanguageDescriptor des;
|
ILanguageDescriptor des;
|
||||||
|
@ -521,7 +505,7 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static Configuration createEmptyPrefConfiguration(String id, String name){
|
private static Configuration createEmptyPrefConfiguration(String id, String name) {
|
||||||
Configuration extCfg = (Configuration)ManagedBuildManager.getExtensionConfiguration(PREF_CFG_ID);
|
Configuration extCfg = (Configuration)ManagedBuildManager.getExtensionConfiguration(PREF_CFG_ID);
|
||||||
Configuration emptyPrefCfg = null;
|
Configuration emptyPrefCfg = null;
|
||||||
if(extCfg != null){
|
if(extCfg != null){
|
||||||
|
@ -538,16 +522,15 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CConfigurationData loadConfiguration(ICConfigurationDescription cfgDescription,
|
public CConfigurationData loadConfiguration(ICConfigurationDescription cfgDescription, IProgressMonitor monitor) throws CoreException {
|
||||||
IProgressMonitor monitor)
|
if(cfgDescription.isPreferenceConfiguration()) {
|
||||||
throws CoreException {
|
|
||||||
if(cfgDescription.isPreferenceConfiguration())
|
|
||||||
return loadPreferences(cfgDescription);
|
return loadPreferences(cfgDescription);
|
||||||
|
}
|
||||||
|
|
||||||
IManagedBuildInfo info = getBuildInfo(cfgDescription);
|
IManagedBuildInfo info = getBuildInfo(cfgDescription);
|
||||||
Configuration cfg = load(cfgDescription, (ManagedProject)info.getManagedProject(), false);
|
Configuration cfg = load(cfgDescription, (ManagedProject)info.getManagedProject(), false);
|
||||||
|
|
||||||
if(cfg != null){
|
if(cfg != null) {
|
||||||
cfg.setConfigurationDescription(cfgDescription);
|
cfg.setConfigurationDescription(cfgDescription);
|
||||||
info.setValid(true);
|
info.setValid(true);
|
||||||
setPersistedFlag(cfgDescription);
|
setPersistedFlag(cfgDescription);
|
||||||
|
@ -607,7 +590,7 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isPersistedCfg(ICConfigurationDescription cfgDescription){
|
private boolean isPersistedCfg(ICConfigurationDescription cfgDescription) {
|
||||||
return cfgDescription.getSessionProperty(CFG_PERSISTED_PROPERTY) != null;
|
return cfgDescription.getSessionProperty(CFG_PERSISTED_PROPERTY) != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -627,9 +610,7 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeConfiguration(ICConfigurationDescription cfgDescription,
|
public void removeConfiguration(ICConfigurationDescription cfgDescription, CConfigurationData data, IProgressMonitor monitor) {
|
||||||
CConfigurationData data,
|
|
||||||
IProgressMonitor monitor) {
|
|
||||||
IConfiguration cfg = ((BuildConfigurationData)data).getConfiguration();
|
IConfiguration cfg = ((BuildConfigurationData)data).getConfiguration();
|
||||||
ManagedBuildManager.performValueHandlerEvent(cfg, IManagedOptionValueHandler.EVENT_CLOSE);
|
ManagedBuildManager.performValueHandlerEvent(cfg, IManagedOptionValueHandler.EVENT_CLOSE);
|
||||||
IManagedBuildInfo info = getBuildInfo(cfgDescription);
|
IManagedBuildInfo info = getBuildInfo(cfgDescription);
|
||||||
|
@ -638,9 +619,7 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void dataCached(ICConfigurationDescription cfgDescription,
|
public void dataCached(ICConfigurationDescription cfgDescription, CConfigurationData data, IProgressMonitor monitor) {
|
||||||
CConfigurationData data,
|
|
||||||
IProgressMonitor monitor) {
|
|
||||||
BuildConfigurationData cfgData = (BuildConfigurationData)data;
|
BuildConfigurationData cfgData = (BuildConfigurationData)data;
|
||||||
((Configuration)cfgData.getConfiguration()).setConfigurationDescription(cfgDescription);
|
((Configuration)cfgData.getConfiguration()).setConfigurationDescription(cfgDescription);
|
||||||
cfgData.clearCachedData();
|
cfgData.clearCachedData();
|
||||||
|
|
|
@ -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
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Eclipse Public License v1.0
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -11,95 +11,114 @@
|
||||||
package org.eclipse.cdt.core.settings.model.extension;
|
package org.eclipse.cdt.core.settings.model.extension;
|
||||||
|
|
||||||
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
||||||
|
import org.eclipse.cdt.core.settings.model.ICProjectDescription;
|
||||||
import org.eclipse.cdt.core.settings.model.IModificationContext;
|
import org.eclipse.cdt.core.settings.model.IModificationContext;
|
||||||
import org.eclipse.core.runtime.CoreException;
|
import org.eclipse.core.runtime.CoreException;
|
||||||
import org.eclipse.core.runtime.IProgressMonitor;
|
import org.eclipse.core.runtime.IProgressMonitor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* the class is to be implemented by the Configuration data provider contributed via
|
* The class is to be implemented by the Configuration data provider contributed via
|
||||||
* a org.eclipse.cdt.core.CConfigurationDataProvider extension point
|
* a org.eclipse.cdt.core.CConfigurationDataProvider extension point
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public abstract class CConfigurationDataProvider {
|
public abstract class CConfigurationDataProvider {
|
||||||
/**
|
/**
|
||||||
* requests the Configuration Data to be loadded for the given ConfigurationDescription
|
* Requests the Configuration Data to be loaded for the given ConfigurationDescription.
|
||||||
*/
|
* The method can be called in following cases:
|
||||||
public abstract CConfigurationData loadConfiguration(ICConfigurationDescription des, IProgressMonitor monitor) throws CoreException;
|
* <br>
|
||||||
|
* 1. Loading configuration from external data source such as .cproject.<br>
|
||||||
/**
|
* 2. Loading preference configuration defined in Preferences -> C/C++ -> New project Wizard -> Makefile Project.
|
||||||
* requests the Configuration Data to be created for the given ConfigurationDescription
|
*
|
||||||
* The method can be called in several cases:
|
* @param cfgDescription - configuration description being loaded.
|
||||||
* 1. When the new configuration is being created based upon the already existing one via
|
* @param monitor - progress monitor.
|
||||||
* theICProjectDescription.createConfiguration method call
|
|
||||||
* 2. When the configuration copy (clone) is being created for the copy description
|
|
||||||
|
|
||||||
* @param des
|
|
||||||
* @param baseDescription
|
|
||||||
* @param baseData
|
|
||||||
* @param clone true indicates that the configuration copy (clone) is being created for
|
|
||||||
* the copy description.
|
|
||||||
* @param monitor
|
|
||||||
* @return {@code false} indicates that the new configuration is being created based upon the already existing one via
|
|
||||||
* theICProjectDescription.createConfiguration method call, {@code true} otherwise
|
|
||||||
* @throws CoreException
|
|
||||||
*/
|
|
||||||
public abstract CConfigurationData createConfiguration(ICConfigurationDescription des,
|
|
||||||
ICConfigurationDescription baseDescription,
|
|
||||||
CConfigurationData baseData, boolean clone,
|
|
||||||
IProgressMonitor monitor) throws CoreException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* called to notify the provider that the configuration is removed
|
|
||||||
*/
|
|
||||||
public abstract void removeConfiguration(ICConfigurationDescription des, CConfigurationData data, IProgressMonitor monitor);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* the method is called in case the implementer does NOT override
|
|
||||||
* the {@link #applyConfiguration(ICConfigurationDescription, ICConfigurationDescription, CConfigurationData, IModificationContext, IProgressMonitor)}
|
|
||||||
* method. See {@link #applyConfiguration(ICConfigurationDescription, ICConfigurationDescription, CConfigurationData, IModificationContext, IProgressMonitor)}
|
|
||||||
* for detail
|
|
||||||
*
|
*
|
||||||
* @throws CoreException
|
* @throws CoreException
|
||||||
*/
|
*/
|
||||||
public CConfigurationData applyConfiguration(ICConfigurationDescription des,
|
public abstract CConfigurationData loadConfiguration(ICConfigurationDescription cfgDescription, IProgressMonitor monitor) throws CoreException;
|
||||||
ICConfigurationDescription baseDescription,
|
|
||||||
CConfigurationData baseData,
|
/**
|
||||||
IProgressMonitor monitor) throws CoreException{
|
* Requests the Configuration Data to be created for the given ConfigurationDescription.
|
||||||
|
* The method can be called in several cases:
|
||||||
|
* <br>
|
||||||
|
* 1. When the new configuration is being created based upon the already existing one via
|
||||||
|
* ICProjectDescription.createConfiguration method call.<br>
|
||||||
|
* 2. When the configuration copy (clone) is being created for the copy description.
|
||||||
|
*
|
||||||
|
* @param cfgDescription - configuration description for the configuration data being created.
|
||||||
|
* @param baseCfgDescription - configuration description for the configuration data the new data to be based upon.
|
||||||
|
* @param baseData - configuration data the new data to be based upon.
|
||||||
|
* @param clone - {@code true} indicates that the configuration copy (clone) is being created for the copy description.
|
||||||
|
* @param monitor - progress monitor.
|
||||||
|
*
|
||||||
|
* @return {@code false} indicates that the new configuration is being created based upon the already existing one via
|
||||||
|
* ICProjectDescription.createConfiguration method call, {@code true} otherwise.
|
||||||
|
*
|
||||||
|
* @throws CoreException
|
||||||
|
*/
|
||||||
|
public abstract CConfigurationData createConfiguration(ICConfigurationDescription cfgDescription,
|
||||||
|
ICConfigurationDescription baseCfgDescription, CConfigurationData baseData,
|
||||||
|
boolean clone, IProgressMonitor monitor) throws CoreException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called to notify the provider that the configuration is removed.
|
||||||
|
*
|
||||||
|
* @param cfgDescription - configuration description being removed.
|
||||||
|
* @param data - configuration data.
|
||||||
|
* @param monitor - progress monitor.
|
||||||
|
*/
|
||||||
|
public abstract void removeConfiguration(ICConfigurationDescription cfgDescription, CConfigurationData data, IProgressMonitor monitor);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The method is called in case the implementer does NOT override method
|
||||||
|
* {@link #applyConfiguration(ICConfigurationDescription, ICConfigurationDescription, CConfigurationData, IModificationContext, IProgressMonitor)}.
|
||||||
|
*
|
||||||
|
* @param cfgDescription - configuration description where the configuration data are being applied to.
|
||||||
|
* @param baseCfgDescription - configuration description of the configuration data being applied.
|
||||||
|
* @param baseData - configuration data being applied.
|
||||||
|
*
|
||||||
|
* @throws CoreException
|
||||||
|
*/
|
||||||
|
public CConfigurationData applyConfiguration(ICConfigurationDescription cfgDescription,
|
||||||
|
ICConfigurationDescription baseCfgDescription, CConfigurationData baseData,
|
||||||
|
IProgressMonitor monitor) throws CoreException {
|
||||||
|
|
||||||
return baseData;
|
return baseData;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* called during the setProjectDescription operation to notify the provider that the configuration data
|
* Called during the setProjectDescription operation to notify the provider that the configuration data
|
||||||
* is being applied.
|
* is being applied.
|
||||||
* Provider would typically store all the necessary data configuration during this call.
|
* Provider would typically store all the necessary data configuration during this call.
|
||||||
*
|
*
|
||||||
* @param des
|
* @param cfgDescription - configuration description where the configuration data are being applied to.
|
||||||
* @param baseDescription
|
* @param baseCfgDescription - configuration description of the configuration data being applied.
|
||||||
* @param baseData
|
* @param baseData - configuration data being applied.
|
||||||
* @param context the {@link IModificationContext} allows registering workspace runnables to be run
|
* @param context the {@link IModificationContext} allows registering workspace runnables to be run
|
||||||
* as a single batch workspace operation.
|
* as a single batch workspace operation.
|
||||||
* If possible the runnables will be run directly in the apply context(thread) after all
|
* If possible the runnables will be run directly in the apply context(thread) after all
|
||||||
* configuration datas get applied. Otherwise runnables will be run as a separate job.
|
* configuration datas get applied. Otherwise runnables will be run as a separate job.
|
||||||
* This allows to perform all workspace modifications registered by different configurations
|
* This allows to perform all workspace modifications registered by different configurations
|
||||||
* to be run as a single batch peration together with the workspace modifications performed by the
|
* to be run as a single batch operation together with the workspace modifications performed by the
|
||||||
* ICProjectDesacription framework
|
* {@link ICProjectDescription} framework.
|
||||||
* @param monitor
|
* @param monitor - progress monitor.
|
||||||
*
|
*
|
||||||
* @throws CoreException
|
* @throws CoreException
|
||||||
*/
|
*/
|
||||||
public CConfigurationData applyConfiguration(ICConfigurationDescription des,
|
public CConfigurationData applyConfiguration(ICConfigurationDescription cfgDescription,
|
||||||
ICConfigurationDescription baseDescription,
|
ICConfigurationDescription baseCfgDescription, CConfigurationData baseData,
|
||||||
CConfigurationData baseData,
|
IModificationContext context, IProgressMonitor monitor) throws CoreException {
|
||||||
IModificationContext context,
|
|
||||||
IProgressMonitor monitor) throws CoreException{
|
return applyConfiguration(cfgDescription, baseCfgDescription, baseData, monitor);
|
||||||
return applyConfiguration(des, baseDescription, baseData, monitor);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* called to notify that the configuration data was cached
|
* Called to notify that the configuration data was cached. Implementors can do any necessary cleaning, etc.
|
||||||
* implementors can do any necessary cleaning, etc.
|
* Default implementation is empty.
|
||||||
* Default implementation is empty
|
*
|
||||||
|
* @param cfgDescription - configuration description which was cached.
|
||||||
|
* @param data - configuration data.
|
||||||
|
* @param monitor - progress monitor.
|
||||||
*/
|
*/
|
||||||
public void dataCached(ICConfigurationDescription cfgDes, CConfigurationData data, IProgressMonitor monitor){
|
public void dataCached(ICConfigurationDescription cfgDescription, CConfigurationData data, IProgressMonitor monitor) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2007, 2008 Intel Corporation and others.
|
* Copyright (c) 2007, 2013 Intel Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Eclipse Public License v1.0
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -19,79 +19,70 @@ import org.eclipse.cdt.core.settings.model.util.CDataUtil;
|
||||||
import org.eclipse.core.runtime.CoreException;
|
import org.eclipse.core.runtime.CoreException;
|
||||||
import org.eclipse.core.runtime.IProgressMonitor;
|
import org.eclipse.core.runtime.IProgressMonitor;
|
||||||
|
|
||||||
public class CDefaultConfigurationDataProvider extends
|
public class CDefaultConfigurationDataProvider extends CConfigurationDataProvider {
|
||||||
CConfigurationDataProvider {
|
|
||||||
private static final String DEFAULT_STORAGE_ID = "defaultConfigurationDataProvider"; //$NON-NLS-1$
|
private static final String DEFAULT_STORAGE_ID = "defaultConfigurationDataProvider"; //$NON-NLS-1$
|
||||||
|
|
||||||
@Override
|
|
||||||
public CConfigurationData applyConfiguration(
|
|
||||||
ICConfigurationDescription des,
|
|
||||||
ICConfigurationDescription baseDescription,
|
|
||||||
CConfigurationData base,
|
|
||||||
IProgressMonitor monitor)
|
|
||||||
throws CoreException {
|
|
||||||
ICStorageElement el = getStorageElement(des, true);
|
|
||||||
CDataSerializer serializer = getDataSerializer();
|
|
||||||
serializer.store(base, el);
|
|
||||||
return base;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CConfigurationData createConfiguration(
|
public CConfigurationData applyConfiguration(ICConfigurationDescription cfgDescription,
|
||||||
ICConfigurationDescription des,
|
ICConfigurationDescription baseCfgDescription, CConfigurationData baseData,
|
||||||
ICConfigurationDescription baseDescription,
|
|
||||||
CConfigurationData base,
|
|
||||||
boolean clone,
|
|
||||||
IProgressMonitor monitor) throws CoreException {
|
IProgressMonitor monitor) throws CoreException {
|
||||||
CDataFactory factory = getDataFactory();
|
|
||||||
return factory.createConfigurationdata(des.getId(), des.getName(), base, clone);
|
ICStorageElement el = getStorageElement(cfgDescription, true);
|
||||||
|
CDataSerializer serializer = getDataSerializer();
|
||||||
|
serializer.store(baseData, el);
|
||||||
|
return baseData;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CConfigurationData loadConfiguration(ICConfigurationDescription des,
|
public CConfigurationData createConfiguration(ICConfigurationDescription cfgDescription,
|
||||||
IProgressMonitor monitor)
|
ICConfigurationDescription baseCfgDescription, CConfigurationData baseData,
|
||||||
throws CoreException {
|
boolean clone, IProgressMonitor monitor) throws CoreException {
|
||||||
ICStorageElement el = getStorageElement(des, false);
|
|
||||||
if(el != null){
|
CDataFactory factory = getDataFactory();
|
||||||
|
return factory.createConfigurationdata(cfgDescription.getId(), cfgDescription.getName(), baseData, clone);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CConfigurationData loadConfiguration(ICConfigurationDescription cfgDescription, IProgressMonitor monitor) throws CoreException {
|
||||||
|
ICStorageElement el = getStorageElement(cfgDescription, false);
|
||||||
|
if(el != null) {
|
||||||
CDataSerializer serializer = getDataSerializer();
|
CDataSerializer serializer = getDataSerializer();
|
||||||
CDataFactory factory = getDataFactory();
|
CDataFactory factory = getDataFactory();
|
||||||
try {
|
try {
|
||||||
return serializer.loadConfigurationData(factory, el);
|
return serializer.loadConfigurationData(factory, el);
|
||||||
} catch (CoreException e){
|
} catch (CoreException e) {
|
||||||
if(des.isPreferenceConfiguration())
|
if(cfgDescription.isPreferenceConfiguration())
|
||||||
return createPreferenceConfig(factory);
|
return createPreferenceConfig(factory);
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
} else if (des.isPreferenceConfiguration()){
|
} else if (cfgDescription.isPreferenceConfiguration()) {
|
||||||
return createPreferenceConfig(getDataFactory());
|
return createPreferenceConfig(getDataFactory());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeConfiguration(ICConfigurationDescription des,
|
public void removeConfiguration(ICConfigurationDescription cfgDescription, CConfigurationData data, IProgressMonitor monitor) {
|
||||||
CConfigurationData data,
|
|
||||||
IProgressMonitor monitor) {
|
|
||||||
//do nothing
|
//do nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
protected CDataFactory getDataFactory(){
|
protected CDataFactory getDataFactory() {
|
||||||
return CDataFactory.getDefault();
|
return CDataFactory.getDefault();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected CDataSerializer getDataSerializer(){
|
protected CDataSerializer getDataSerializer() {
|
||||||
return CDataSerializer.getDefault();
|
return CDataSerializer.getDefault();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected String getStorageId(){
|
protected String getStorageId() {
|
||||||
return DEFAULT_STORAGE_ID;
|
return DEFAULT_STORAGE_ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected ICStorageElement getStorageElement(ICConfigurationDescription des, boolean create) throws CoreException{
|
protected ICStorageElement getStorageElement(ICConfigurationDescription cfgDescription, boolean create) throws CoreException {
|
||||||
return des.getStorage(getStorageId(), create);
|
return cfgDescription.getStorage(getStorageId(), create);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected CConfigurationData createPreferenceConfig(CDataFactory factory){
|
protected CConfigurationData createPreferenceConfig(CDataFactory factory) {
|
||||||
return CDataUtil.createEmptyData(null, "preference", factory, true); //$NON-NLS-1$
|
return CDataUtil.createEmptyData(null, "preference", factory, true); //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Eclipse Public License v1.0
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -45,43 +45,41 @@ import org.eclipse.core.runtime.IPath;
|
||||||
import org.eclipse.core.runtime.IProgressMonitor;
|
import org.eclipse.core.runtime.IProgressMonitor;
|
||||||
import org.eclipse.core.runtime.NullProgressMonitor;
|
import org.eclipse.core.runtime.NullProgressMonitor;
|
||||||
|
|
||||||
public class PathEntryConfigurationDataProvider extends
|
public class PathEntryConfigurationDataProvider extends CConfigurationDataProvider {
|
||||||
CConfigurationDataProvider {
|
|
||||||
private static PathEntryDataFactory fFactory;
|
private static PathEntryDataFactory fFactory;
|
||||||
|
|
||||||
|
public static CDataFactory getDataFactory() {
|
||||||
public static CDataFactory getDataFactory(){
|
if(fFactory == null) {
|
||||||
if(fFactory == null){
|
|
||||||
fFactory = new PathEntryDataFactory();
|
fFactory = new PathEntryDataFactory();
|
||||||
}
|
}
|
||||||
return fFactory;
|
return fFactory;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PathEntryConfigurationDataProvider(){
|
public PathEntryConfigurationDataProvider() {
|
||||||
getDataFactory();
|
getDataFactory();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class PathEntryFolderData extends CDefaultFolderData {
|
private static class PathEntryFolderData extends CDefaultFolderData {
|
||||||
private EntryStore fStore;
|
private EntryStore fStore;
|
||||||
|
|
||||||
// public PathEntryFolderData(CConfigurationData cfg, CDataFacroty factory) {
|
|
||||||
// super(cfg, factory);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// public PathEntryFolderData(String id, IPath path,
|
// public PathEntryFolderData(CConfigurationData cfg, CDataFacroty factory) {
|
||||||
// CConfigurationData cfg, CDataFacroty factory) {
|
// super(cfg, factory);
|
||||||
// super(id, path, cfg, factory);
|
// }
|
||||||
// }
|
|
||||||
|
// public PathEntryFolderData(String id, IPath path,
|
||||||
|
// CConfigurationData cfg, CDataFacroty factory) {
|
||||||
|
// super(id, path, cfg, factory);
|
||||||
|
// }
|
||||||
|
|
||||||
public PathEntryFolderData(String id, IPath path, PathEntryFolderData base,
|
public PathEntryFolderData(String id, IPath path, PathEntryFolderData base,
|
||||||
CConfigurationData cfg, CDataFactory factory, boolean clone) {
|
CConfigurationData cfgData, CDataFactory factory, boolean clone) {
|
||||||
super(id, path, cfg, factory);
|
super(id, path, cfgData, factory);
|
||||||
|
|
||||||
if(base != null)
|
if(base != null)
|
||||||
fStore = new EntryStore(base.fStore, true);
|
fStore = new EntryStore(base.fStore, true);
|
||||||
else
|
else
|
||||||
fStore = new EntryStore(true);
|
fStore = new EntryStore(true);
|
||||||
|
|
||||||
copyDataFrom(base, clone);
|
copyDataFrom(base, clone);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -89,45 +87,44 @@ public class PathEntryConfigurationDataProvider extends
|
||||||
private static class PathEntryFileData extends CDefaultFileData {
|
private static class PathEntryFileData extends CDefaultFileData {
|
||||||
private EntryStore fStore;
|
private EntryStore fStore;
|
||||||
|
|
||||||
// public PathEntryFileData(CConfigurationData cfg, CDataFacroty factory) {
|
// public PathEntryFileData(CConfigurationData cfg, CDataFacroty factory) {
|
||||||
// super(cfg, factory);
|
// super(cfg, factory);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// public PathEntryFileData(String id, IPath path, CConfigurationData cfg,
|
// public PathEntryFileData(String id, IPath path, CConfigurationData cfg,
|
||||||
// CDataFacroty factory) {
|
// CDataFacroty factory) {
|
||||||
// super(id, path, cfg, factory);
|
// super(id, path, cfg, factory);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
public PathEntryFileData(String id, IPath path, PathEntryFileData base,
|
public PathEntryFileData(String id, IPath path, PathEntryFileData base,
|
||||||
CConfigurationData cfg, CDataFactory factory, boolean clone) {
|
CConfigurationData cfg, CDataFactory factory, boolean clone) {
|
||||||
super(id, path, cfg, factory);
|
super(id, path, cfg, factory);
|
||||||
|
|
||||||
fStore = new EntryStore(base.fStore, true);
|
fStore = new EntryStore(base.fStore, true);
|
||||||
|
|
||||||
copyDataFrom(base, clone);
|
copyDataFrom(base, clone);
|
||||||
}
|
}
|
||||||
|
|
||||||
public PathEntryFileData(String id, IPath path, PathEntryFolderData base,
|
public PathEntryFileData(String id, IPath path, PathEntryFolderData base,
|
||||||
CLanguageData baseLangData, CConfigurationData cfg,
|
CLanguageData baseLangData, CConfigurationData cfgData,
|
||||||
CDataFactory factory) {
|
CDataFactory factory) {
|
||||||
super(id, path, cfg, factory);
|
super(id, path, cfgData, factory);
|
||||||
|
|
||||||
fStore = new EntryStore(base.fStore, true);
|
fStore = new EntryStore(base.fStore, true);
|
||||||
|
|
||||||
copyDataFrom(base, baseLangData);
|
copyDataFrom(base, baseLangData);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class PathEntryLanguageData extends CDefaultLanguageData {
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class PathEntryLanguageData extends CDefaultLanguageData {
|
||||||
public PathEntryLanguageData(String id, CLanguageData base, EntryStore store) {
|
public PathEntryLanguageData(String id, CLanguageData base, EntryStore store) {
|
||||||
fId = id;
|
fId = id;
|
||||||
fStore = store;
|
fStore = store;
|
||||||
copySettingsFrom(base);
|
copySettingsFrom(base);
|
||||||
}
|
}
|
||||||
|
|
||||||
public PathEntryLanguageData(String id, String name, String languageId, int kinds,
|
public PathEntryLanguageData(String id, String name, String languageId, int kinds,
|
||||||
String[] ids, boolean isContentTypes, EntryStore store) {
|
String[] ids, boolean isContentTypes, EntryStore store) {
|
||||||
super(id, languageId, ids, isContentTypes);
|
super(id, languageId, ids, isContentTypes);
|
||||||
fStore = store;
|
fStore = store;
|
||||||
|
@ -144,11 +141,10 @@ public class PathEntryConfigurationDataProvider extends
|
||||||
protected EntryStore createStore(CLanguageData data) {
|
protected EntryStore createStore(CLanguageData data) {
|
||||||
return fStore;
|
return fStore;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class PathEntryDataFactory extends CDataFactory {
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class PathEntryDataFactory extends CDataFactory {
|
||||||
@Override
|
@Override
|
||||||
public CConfigurationData createConfigurationdata(String id,
|
public CConfigurationData createConfigurationdata(String id,
|
||||||
String name, CConfigurationData base, boolean clone) {
|
String name, CConfigurationData base, boolean clone) {
|
||||||
|
@ -157,21 +153,21 @@ public class PathEntryConfigurationDataProvider extends
|
||||||
} else if(id == null){
|
} else if(id == null){
|
||||||
id = CDataUtil.genId(null);
|
id = CDataUtil.genId(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new CfgData(id, name, base, clone);
|
return new CfgData(id, name, base, clone);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CFileData createFileData(CConfigurationData cfg,
|
public CFileData createFileData(CConfigurationData cfg,
|
||||||
CResourceData base, CLanguageData base2,
|
CResourceData base, CLanguageData base2,
|
||||||
String id, boolean clone,
|
String id, boolean clone,
|
||||||
IPath path) {
|
IPath path) {
|
||||||
if(id == null)
|
if(id == null)
|
||||||
id = clone ? base.getId() : CDataUtil.genId(cfg.getId());
|
id = clone ? base.getId() : CDataUtil.genId(cfg.getId());
|
||||||
if(base.getType() == ICSettingBase.SETTING_FILE)
|
if(base.getType() == ICSettingBase.SETTING_FILE)
|
||||||
return new PathEntryFileData(id, path, (PathEntryFileData)base, cfg, this, clone);
|
return new PathEntryFileData(id, path, (PathEntryFileData)base, cfg, this, clone);
|
||||||
return new PathEntryFileData(id, path, (PathEntryFolderData)base,
|
return new PathEntryFileData(id, path, (PathEntryFolderData)base,
|
||||||
base2, cfg, this);
|
base2, cfg, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -179,7 +175,7 @@ public class PathEntryConfigurationDataProvider extends
|
||||||
CFolderData base, String id, boolean clone, IPath path) {
|
CFolderData base, String id, boolean clone, IPath path) {
|
||||||
if(id == null)
|
if(id == null)
|
||||||
id = clone ? base.getId() : CDataUtil.genId(cfg.getId());
|
id = clone ? base.getId() : CDataUtil.genId(cfg.getId());
|
||||||
return new PathEntryFolderData(id, path, (PathEntryFolderData)base, cfg, this, clone);
|
return new PathEntryFolderData(id, path, (PathEntryFolderData)base, cfg, this, clone);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -187,12 +183,12 @@ public class PathEntryConfigurationDataProvider extends
|
||||||
CResourceData rcBase, CLanguageData base, String id, boolean clone) {
|
CResourceData rcBase, CLanguageData base, String id, boolean clone) {
|
||||||
if(id == null)
|
if(id == null)
|
||||||
id = clone ? base.getId() : CDataUtil.genId(rcBase.getId());
|
id = clone ? base.getId() : CDataUtil.genId(rcBase.getId());
|
||||||
EntryStore store;
|
EntryStore store;
|
||||||
if(rcBase.getType() == ICSettingBase.SETTING_FOLDER)
|
if(rcBase.getType() == ICSettingBase.SETTING_FOLDER)
|
||||||
store = ((PathEntryFolderData)rcBase).fStore;
|
store = ((PathEntryFolderData)rcBase).fStore;
|
||||||
else
|
else
|
||||||
store = ((PathEntryFileData)rcBase).fStore;
|
store = ((PathEntryFileData)rcBase).fStore;
|
||||||
return new PathEntryLanguageData(id, base, store);
|
return new PathEntryLanguageData(id, base, store);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -208,53 +204,49 @@ public class PathEntryConfigurationDataProvider extends
|
||||||
store = ((PathEntryFileData)rcBase).fStore;
|
store = ((PathEntryFileData)rcBase).fStore;
|
||||||
return new PathEntryLanguageData(id, name, languageId, supportedEntryKinds, rcTypes, isContentTypes, store);
|
return new PathEntryLanguageData(id, name, languageId, supportedEntryKinds, rcTypes, isContentTypes, store);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class CfgData extends CDefaultConfigurationData {
|
private static class CfgData extends CDefaultConfigurationData {
|
||||||
// private PathEntryResolveInfo fResolveInfo;
|
// private PathEntryResolveInfo fResolveInfo;
|
||||||
|
|
||||||
public CfgData(String id, String name, CConfigurationData base, boolean clone) {
|
public CfgData(String id, String name, CConfigurationData base, boolean clone) {
|
||||||
super(id, name, base, fFactory, clone);
|
super(id, name, base, fFactory, clone);
|
||||||
}
|
}
|
||||||
|
|
||||||
public CfgData(String id, String name) {
|
public CfgData(String id, String name) {
|
||||||
super(id, name, fFactory);
|
super(id, name, fFactory);
|
||||||
}
|
}
|
||||||
|
|
||||||
// public PathEntryResolveInfo getResolveInfo(){
|
// public PathEntryResolveInfo getResolveInfo(){
|
||||||
// return fResolveInfo;
|
// return fResolveInfo;
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
// public void setResolveInfo(PathEntryResolveInfo info){
|
// public void setResolveInfo(PathEntryResolveInfo info){
|
||||||
// fResolveInfo = info;
|
// fResolveInfo = info;
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isPathEntryData(CConfigurationData data){
|
public static boolean isPathEntryData(CConfigurationData data){
|
||||||
return data instanceof CfgData;
|
return data instanceof CfgData;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CConfigurationData applyConfiguration(
|
public CConfigurationData applyConfiguration(ICConfigurationDescription cfgDescription,
|
||||||
ICConfigurationDescription des,
|
ICConfigurationDescription baseCfgDescription, CConfigurationData baseData,
|
||||||
ICConfigurationDescription baseDescription,
|
IProgressMonitor monitor) throws CoreException {
|
||||||
CConfigurationData base,
|
|
||||||
IProgressMonitor monitor)
|
|
||||||
throws CoreException {
|
|
||||||
//TODO: check external/reference info here as well.
|
//TODO: check external/reference info here as well.
|
||||||
if(!fFactory.isModified(base)){
|
if (!fFactory.isModified(baseData)) {
|
||||||
return createData(des, base, false, true);
|
return createData(cfgDescription, baseData, false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IProject project = cfgDescription.getProjectDescription().getProject();
|
||||||
IProject project = des.getProjectDescription().getProject();
|
// ReferenceSettingsInfo refInfo = new ReferenceSettingsInfo(des);
|
||||||
// ReferenceSettingsInfo refInfo = new ReferenceSettingsInfo(des);
|
IPathEntry entries[] = PathEntryTranslator.getPathEntries(project, baseCfgDescription, PathEntryTranslator.INCLUDE_USER);
|
||||||
IPathEntry entries[] = PathEntryTranslator.getPathEntries(project, baseDescription, PathEntryTranslator.INCLUDE_USER);
|
|
||||||
CModelManager manager = CModelManager.getDefault();
|
CModelManager manager = CModelManager.getDefault();
|
||||||
ICProject cproject = manager.create(project);
|
ICProject cproject = manager.create(project);
|
||||||
IPathEntry[] curRawEntries = PathEntryManager.getDefault().getRawPathEntries(cproject);
|
IPathEntry[] curRawEntries = PathEntryManager.getDefault().getRawPathEntries(cproject);
|
||||||
|
|
||||||
List<IPathEntry> list = new ArrayList<IPathEntry>();
|
List<IPathEntry> list = new ArrayList<IPathEntry>();
|
||||||
list.addAll(Arrays.asList(entries));
|
list.addAll(Arrays.asList(entries));
|
||||||
for(int i = 0; i < curRawEntries.length; i++){
|
for(int i = 0; i < curRawEntries.length; i++){
|
||||||
|
@ -262,16 +254,16 @@ public class PathEntryConfigurationDataProvider extends
|
||||||
list.add(curRawEntries[i]);
|
list.add(curRawEntries[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
IPathEntry[] newEntries = list.toArray(new IPathEntry[list.size()]);
|
IPathEntry[] newEntries = list.toArray(new IPathEntry[list.size()]);
|
||||||
PathEntryManager.getDefault().setRawPathEntries(cproject, newEntries, new NullProgressMonitor());
|
PathEntryManager.getDefault().setRawPathEntries(cproject, newEntries, new NullProgressMonitor());
|
||||||
return createData(des, base, false, false);
|
return createData(cfgDescription, baseData, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private CConfigurationData createData(ICConfigurationDescription des, CConfigurationData fallbackData, boolean modifiedFlag, boolean useCache) throws CoreException {
|
private CConfigurationData createData(ICConfigurationDescription cfgDescription, CConfigurationData fallbackData, boolean modifiedFlag, boolean useCache) throws CoreException {
|
||||||
CConfigurationData dataToReturn;
|
CConfigurationData dataToReturn;
|
||||||
try {
|
try {
|
||||||
dataToReturn = createData(des, useCache);
|
dataToReturn = createData(cfgDescription, useCache);
|
||||||
} catch (Exception e){
|
} catch (Exception e){
|
||||||
if(fallbackData != null)
|
if(fallbackData != null)
|
||||||
dataToReturn = fallbackData;
|
dataToReturn = fallbackData;
|
||||||
|
@ -282,73 +274,71 @@ public class PathEntryConfigurationDataProvider extends
|
||||||
}
|
}
|
||||||
fFactory.setModified(dataToReturn, modifiedFlag);
|
fFactory.setModified(dataToReturn, modifiedFlag);
|
||||||
return dataToReturn;
|
return dataToReturn;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CConfigurationData createConfiguration(
|
public CConfigurationData createConfiguration(ICConfigurationDescription cfgDescription,
|
||||||
ICConfigurationDescription des,
|
ICConfigurationDescription baseCfgDescription, CConfigurationData baseData,
|
||||||
ICConfigurationDescription baseDescription,
|
boolean clone, IProgressMonitor monitor) throws CoreException {
|
||||||
CConfigurationData base,
|
|
||||||
boolean clone,
|
CfgData copy = new CfgData(cfgDescription.getId(), cfgDescription.getName(), baseData, clone);
|
||||||
IProgressMonitor monitor) throws CoreException {
|
|
||||||
CfgData copy = new CfgData(des.getId(), des.getName(), base, clone);
|
|
||||||
copy.setModified(false);
|
copy.setModified(false);
|
||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
|
|
||||||
private CfgData createData(ICConfigurationDescription des, boolean useCache) throws CoreException{
|
private CfgData createData(ICConfigurationDescription cfgDescription, boolean useCache) throws CoreException {
|
||||||
IProject project = des.getProjectDescription().getProject();
|
IProject project = cfgDescription.getProjectDescription().getProject();
|
||||||
CModelManager manager = CModelManager.getDefault();
|
CModelManager manager = CModelManager.getDefault();
|
||||||
ICProject cproject = manager.create(project);
|
ICProject cproject = manager.create(project);
|
||||||
PathEntryResolveInfo rInfo = PathEntryManager.getDefault().getResolveInfo(cproject, useCache);
|
PathEntryResolveInfo rInfo = PathEntryManager.getDefault().getResolveInfo(cproject, useCache);
|
||||||
|
|
||||||
CfgData data = new CfgData(des.getId(), des.getName());
|
CfgData data = new CfgData(cfgDescription.getId(), cfgDescription.getName());
|
||||||
data.initEmptyData();
|
data.initEmptyData();
|
||||||
CDataUtil.adjustConfig(data, getDataFactory());
|
CDataUtil.adjustConfig(data, getDataFactory());
|
||||||
//CProjectDescriptionManager.getInstance().adjustDefaultConfig(data);
|
//CProjectDescriptionManager.getInstance().adjustDefaultConfig(data);
|
||||||
|
|
||||||
// data.setResolveInfo(rInfo);
|
// data.setResolveInfo(rInfo);
|
||||||
PathEntryTranslator tr = new PathEntryTranslator(project, data);
|
PathEntryTranslator tr = new PathEntryTranslator(project, data);
|
||||||
ReferenceSettingsInfo refInfo = tr.applyPathEntries(rInfo, PathEntryTranslator.OP_REPLACE);
|
ReferenceSettingsInfo refInfo = tr.applyPathEntries(rInfo, PathEntryTranslator.OP_REPLACE);
|
||||||
ICExternalSetting extSettings[] = refInfo.getExternalSettings();
|
ICExternalSetting extSettings[] = refInfo.getExternalSettings();
|
||||||
des.removeExternalSettings();
|
cfgDescription.removeExternalSettings();
|
||||||
if(extSettings.length != 0){
|
if (extSettings.length != 0) {
|
||||||
ICExternalSetting setting;
|
ICExternalSetting setting;
|
||||||
for(int i = 0; i < extSettings.length; i++){
|
for(int i = 0; i < extSettings.length; i++){
|
||||||
setting = extSettings[i];
|
setting = extSettings[i];
|
||||||
des.createExternalSetting(setting.getCompatibleLanguageIds(),
|
cfgDescription.createExternalSetting(setting.getCompatibleLanguageIds(),
|
||||||
setting.getCompatibleContentTypeIds(),
|
setting.getCompatibleContentTypeIds(),
|
||||||
setting.getCompatibleExtensions(),
|
setting.getCompatibleExtensions(),
|
||||||
setting.getEntries());
|
setting.getEntries());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// IPath projPaths[] = refInfo.getReferencedProjectsPaths();
|
// IPath projPaths[] = refInfo.getReferencedProjectsPaths();
|
||||||
// if(projPaths.length != 0){
|
// if(projPaths.length != 0){
|
||||||
// Map map = new HashMap(projPaths.length);
|
// Map map = new HashMap(projPaths.length);
|
||||||
// for(int i = 0; i < projPaths.length; i++){
|
// for(int i = 0; i < projPaths.length; i++){
|
||||||
// map.put(projPaths[i].segment(0), ""); //$NON-NLS-1$
|
// map.put(projPaths[i].segment(0), ""); //$NON-NLS-1$
|
||||||
// }
|
// }
|
||||||
// des.setReferenceInfo(map);
|
// des.setReferenceInfo(map);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
cproject.close();
|
cproject.close();
|
||||||
|
|
||||||
String[] ids = getIds(des.get(CCorePlugin.BINARY_PARSER_UNIQ_ID));
|
String[] ids = getIds(cfgDescription.get(CCorePlugin.BINARY_PARSER_UNIQ_ID));
|
||||||
data.getTargetPlatformData().setBinaryParserIds(ids);
|
data.getTargetPlatformData().setBinaryParserIds(ids);
|
||||||
|
|
||||||
ids = getIds(des.get(CCorePlugin.ERROR_PARSER_UNIQ_ID));
|
ids = getIds(cfgDescription.get(CCorePlugin.ERROR_PARSER_UNIQ_ID));
|
||||||
data.getBuildData().setErrorParserIDs(ids);
|
data.getBuildData().setErrorParserIDs(ids);
|
||||||
|
|
||||||
data.setModified(false);
|
data.setModified(false);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String[] getIds(ICConfigExtensionReference refs[]){
|
private String[] getIds(ICConfigExtensionReference refs[]){
|
||||||
if(refs == null || refs.length == 0)
|
if(refs == null || refs.length == 0)
|
||||||
return new String[0];
|
return new String[0];
|
||||||
|
|
||||||
String[] ids = new String[refs.length];
|
String[] ids = new String[refs.length];
|
||||||
for(int i = 0; i < refs.length; i++){
|
for(int i = 0; i < refs.length; i++){
|
||||||
ids[i] = refs[i].getID();
|
ids[i] = refs[i].getID();
|
||||||
|
@ -357,22 +347,17 @@ public class PathEntryConfigurationDataProvider extends
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CConfigurationData loadConfiguration(ICConfigurationDescription des,
|
public CConfigurationData loadConfiguration(ICConfigurationDescription cfgDescription, IProgressMonitor monitor) throws CoreException {
|
||||||
IProgressMonitor monitor)
|
return createData(cfgDescription, null, false, true);
|
||||||
throws CoreException {
|
|
||||||
return createData(des, null, false, true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeConfiguration(ICConfigurationDescription des,
|
public void removeConfiguration(ICConfigurationDescription cfgDescription, CConfigurationData data, IProgressMonitor monitor) {
|
||||||
CConfigurationData data,
|
|
||||||
IProgressMonitor monitor) {
|
|
||||||
//do nothing for now
|
//do nothing for now
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void dataCached(ICConfigurationDescription cfgDes,
|
public void dataCached(ICConfigurationDescription cfgDescription, CConfigurationData data, IProgressMonitor monitor) {
|
||||||
CConfigurationData data, IProgressMonitor monitor) {
|
|
||||||
fFactory.setModified(data, false);
|
fFactory.setModified(data, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue