diff options
Diffstat (limited to 'core/org.eclipse.cdt.core/model/org')
3 files changed, 33 insertions, 10 deletions
diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/settings/model/ICMultiResourceDescription.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/settings/model/ICMultiResourceDescription.java index bdabbe0d635..0fc221a0cdb 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/settings/model/ICMultiResourceDescription.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/settings/model/ICMultiResourceDescription.java @@ -14,5 +14,5 @@ import java.util.List; public interface ICMultiResourceDescription extends ICResourceDescription, ICMultiItemsHolder { - void setSettingEntries(ICLanguageSetting lang, int kind, List incs, boolean toAll); + void setSettingEntries(ICLanguageSetting lang, int kind, List<ICLanguageSettingEntry> incs, boolean toAll); } diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/settings/model/MultiItemsHolder.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/settings/model/MultiItemsHolder.java index 3afba0e19c4..44b091943ed 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/settings/model/MultiItemsHolder.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/settings/model/MultiItemsHolder.java @@ -11,6 +11,8 @@ package org.eclipse.cdt.core.settings.model; import org.eclipse.cdt.internal.core.settings.model.MultiConfigDescription; +import org.eclipse.cdt.internal.core.settings.model.MultiFileDescription; +import org.eclipse.cdt.internal.core.settings.model.MultiFolderDescription; /** * @@ -35,13 +37,6 @@ public abstract class MultiItemsHolder implements ICMultiItemsHolder { * * @param rds - array of cfg.descs * - * @param mode - string list display and write mode - * @see DMODE_CONJUNCTION - * @see DMODE_EMPTY - * @see DMODE_ALL - * @see WMODE_DIFF - * @see WMODE_CURRENT - * * @return multiple cfg.description or single cfg.desc. */ public static ICConfigurationDescription createCDescription(ICConfigurationDescription[] rds) { @@ -52,4 +47,32 @@ public abstract class MultiItemsHolder implements ICMultiItemsHolder { else return new MultiConfigDescription(rds); } + /** + * This method is put here to prevent UI from + * accessing constructors in "internal" dirs. + * + * Creates multiple resource description, it + * can be either MultiFile or MultiFolder. + * If there's 1 description in array, + * it's returned itself. + * + * @param rds - array of resource descs + * + * @return multiple res.description or single res.desc. + */ + public static ICResourceDescription createRDescription(ICResourceDescription[] rds) { + if (rds == null || rds.length == 0) + return null; + else if (rds.length == 1) + return rds[0]; + else if (rds[0] instanceof ICFolderDescription) { + ICFolderDescription[] fds = new ICFolderDescription[rds.length]; + System.arraycopy(rds, 0, fds, 0, rds.length); + return new MultiFolderDescription(fds); + } else { + ICFileDescription[] fds = new ICFileDescription[rds.length]; + System.arraycopy(rds, 0, fds, 0, rds.length); + return new MultiFileDescription(fds); + } + } } diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/MultiResourceDescription.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/MultiResourceDescription.java index 2279a073df8..e66f28be29a 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/MultiResourceDescription.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/MultiResourceDescription.java @@ -16,6 +16,7 @@ import org.eclipse.cdt.core.settings.model.ICConfigurationDescription; import org.eclipse.cdt.core.settings.model.ICFileDescription; import org.eclipse.cdt.core.settings.model.ICFolderDescription; import org.eclipse.cdt.core.settings.model.ICLanguageSetting; +import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry; import org.eclipse.cdt.core.settings.model.ICMultiResourceDescription; import org.eclipse.cdt.core.settings.model.ICResourceDescription; import org.eclipse.cdt.core.settings.model.ICSettingContainer; @@ -190,8 +191,7 @@ public abstract class MultiResourceDescription extends MultiItemsHolder implemen return fRess; } - @SuppressWarnings("unchecked") - public void setSettingEntries(ICLanguageSetting lang, int kind, List incs, boolean toAll) { + public void setSettingEntries(ICLanguageSetting lang, int kind, List<ICLanguageSettingEntry> incs, boolean toAll) { for (int i=0; i<fRess.length; i++) { if (fRess[i] instanceof ICFolderDescription) { String n = lang.getName(); |