Package org.eclipse.cdt.core.settings.model.util

## Class CDataUtil

- java.lang.Object
- - org.eclipse.cdt.core.settings.model.util.CDataUtil

    public class CDataUtil
    extends Object

### Field Summary

Fields
`static String[]` `EMPTY_STRING_ARRAY`

### Constructor Summary

Constructors
`CDataUtil()`

### Method Summary

All Methods Static Methods Concrete Methods Deprecated Methods
`static ICSourceEntry` `addExcludePaths​(ICSourceEntry entry, Collection<org.eclipse.core.runtime.IPath> paths, boolean removePrefix)`
`static ICExclusionPatternPathEntry` `addRemoveExclusionsToEntry​(ICExclusionPatternPathEntry entry, org.eclipse.core.runtime.IPath[] paths, boolean add)`
`static CConfigurationData` `adjustConfig​(CConfigurationData cfg, CDataFactory factory)`
`static ICOutputEntry[]` `adjustEntries​(ICOutputEntry[] entries, boolean makeAbsolute, org.eclipse.core.resources.IProject project)`
`static ICSourceEntry[]` `adjustEntries​(ICSourceEntry[] entries)`
`static ICSourceEntry[]` `adjustEntries​(ICSourceEntry[] entries, boolean makeAbsolute, org.eclipse.core.resources.IProject project)`
`static String` `arrayToString​(Object[] array, String separator)`
`static String` `arrayToString​(String[] array, String separator)`
`static boolean` `canExclude​(org.eclipse.core.runtime.IPath path, boolean isFolder, boolean excluded, ICSourceEntry[] entries)`
`static CIncludeFileEntry` `createCIncludeFileEntry​(String name, int flags)` Utility method to create `CIncludeFileEntry`.
`static CIncludePathEntry` `createCIncludePathEntry​(String name, int flags)` Utility method to create `CIncludePathEntry`.
`static CLibraryFileEntry` `createCLibraryFileEntry​(String name, int flags)` Utility method to create `CLibraryFileEntry`.
`static CLibraryPathEntry` `createCLibraryPathEntry​(String name, int flags)` Utility method to create `CLibraryPathEntry`.
`static CMacroEntry` `createCMacroEntry​(String name, String value, int flags)` Utility method to create `CMacroEntry`.
`static CMacroFileEntry` `createCMacroFileEntry​(String name, int flags)` Utility method to create `CMacroFileEntry`.
`static CConfigurationData` `createEmptyData​(String id, String name, CDataFactory factory, boolean performLangAdjustment)`
`static ICSettingEntry` `createEntry​(int kind, String name, String value, org.eclipse.core.runtime.IPath[] exclusionPatterns, int flags)` Convenience method to create `ICSettingEntry` depending on kind.
`static ICSettingEntry` `createEntry​(int kind, String name, String value, org.eclipse.core.runtime.IPath[] exclusionPatterns, int flags, org.eclipse.core.runtime.IPath sourceAttachmentPath, org.eclipse.core.runtime.IPath sourceAttachmentRootPath, org.eclipse.core.runtime.IPath sourceAttachmentPrefixMapping)` Convenience method to create `ICSettingEntry` depending on kind.
`static ICLanguageSettingEntry` `createEntry​(ICLanguageSettingEntry entry, int flags)` Convenience method to clone `ICLanguageSettingEntry` with different flags.
`static ICLanguageSettingEntry` `createEntry​(ICLanguageSettingEntry entry, int flagsToAdd, int flafsToClear)` Convenience method to clone `ICLanguageSettingEntry` with modified flags.
`static Map<org.eclipse.core.runtime.IPath,​CResourceData>` `createPathRcDataMap​(CConfigurationData data)`
`static PathSettingsContainer` `createRcDataHolder​(CConfigurationData data)`
`static Map<EntryContentsKey,​ICSettingEntry>` `fillEntriesMapByContentsKey​(Map<EntryContentsKey,​ICSettingEntry> map, ICSettingEntry[] entries)`
`static Map<EntryNameKey,​ICSettingEntry>` `fillEntriesMapByNameKey​(Map<EntryNameKey,​ICSettingEntry> map, ICSettingEntry[] entries)`
`static CLanguageData` `findLanguagDataForFile​(String fileName, org.eclipse.core.resources.IProject project, CFolderData fData)`
`static CLanguageData` `findLanguagDataForFile​(String fileName, org.eclipse.core.resources.IProject project, CLanguageData[] datas)`
`static CLanguageData` `findLanguageDataForExtension​(String ext, CLanguageData[] datas)`
`static String` `genId​(String baseId)`
`static int` `genRandomNumber()`
`static boolean` `getBoolean​(ICStorageElement el, String attr, boolean defaultValue)`
`static String[]` `getContentTypeFileSpecs​(org.eclipse.core.resources.IProject project, org.eclipse.core.runtime.content.IContentType type)`
`static String[]` `getExtensionsFromContentTypes​(org.eclipse.core.resources.IProject project, String[] typeIds)`
`static int` `getInteger​(ICStorageElement el, String attr, int defaultValue)`
`static <T extends ICSettingEntry> T` `getPooledEntry​(T entry)` Return entry cached in setting entries pool to optimize for memory usage.
`static String[]` `getSourceExtensions​(org.eclipse.core.resources.IProject project, CLanguageData data)`
`static boolean` `isEqual​(ICSourceEntry[] ein, ICSourceEntry[] aus)`
`static boolean` `isExcluded​(org.eclipse.core.runtime.IPath path, ICSourceEntry entry)`
`static boolean` `isExcluded​(org.eclipse.core.runtime.IPath path, ICSourceEntry[] entries)`
`static boolean` `isOnSourceEntry​(org.eclipse.core.runtime.IPath path, ICSourceEntry entry)`
`static ICExclusionPatternPathEntry[]` `makeAbsolute​(org.eclipse.core.resources.IProject project, ICExclusionPatternPathEntry[] entries, boolean force)`
`static ICExclusionPatternPathEntry` `makeAbsolute​(org.eclipse.core.resources.IProject project, ICExclusionPatternPathEntry entry, boolean force)`
`static ICOutputEntry` `makeAbsolute​(org.eclipse.core.resources.IProject project, ICOutputEntry entry)`
`static ICOutputEntry[]` `makeAbsolute​(org.eclipse.core.resources.IProject project, ICOutputEntry[] entries)`
`static ICSourceEntry` `makeAbsolute​(org.eclipse.core.resources.IProject project, ICSourceEntry entry)`
`static ICSourceEntry[]` `makeAbsolute​(org.eclipse.core.resources.IProject project, ICSourceEntry[] entries)`
`static ICExclusionPatternPathEntry[]` `makeRelative​(org.eclipse.core.resources.IProject project, ICExclusionPatternPathEntry[] entries, boolean force)`
`static ICExclusionPatternPathEntry` `makeRelative​(org.eclipse.core.resources.IProject project, ICExclusionPatternPathEntry entry, boolean force)`
`static ICOutputEntry` `makeRelative​(org.eclipse.core.resources.IProject project, ICOutputEntry entry)`
`static ICOutputEntry[]` `makeRelative​(org.eclipse.core.resources.IProject project, ICOutputEntry[] entries)`
`static ICSourceEntry` `makeRelative​(org.eclipse.core.resources.IProject project, ICSourceEntry entry)`
`static ICSourceEntry[]` `makeRelative​(org.eclipse.core.resources.IProject project, ICSourceEntry[] entries)`
`static boolean` `objectsEqual​(Object o1, Object o2)` Deprecated. Use `Object.equals(Object)`
`static ICLanguageSettingEntry[]` `resolveEntries​(ICLanguageSettingEntry[] entries, ICConfigurationDescription cfgDes)`
`static ICOutputEntry[]` `resolveEntries​(ICOutputEntry[] entries, ICConfigurationDescription cfgDes)`
`static ICSettingEntry[]` `resolveEntries​(ICSettingEntry[] entries, ICConfigurationDescription cfgDes)`
`static ICSourceEntry[]` `resolveEntries​(ICSourceEntry[] entries, ICConfigurationDescription cfgDes)`
`static void` `setBoolean​(ICStorageElement el, String attr, boolean value)`
`static ICSourceEntry[]` `setExcluded​(org.eclipse.core.runtime.IPath path, boolean isFolder, boolean excluded, ICSourceEntry[] entries)`
`static ICSourceEntry[]` `setExcluded​(org.eclipse.core.runtime.IPath path, boolean isFolder, boolean excluded, ICSourceEntry[] entries, boolean throwExceptionOnErr)`
`static ICSourceEntry[]` `setExcludedIfPossible​(org.eclipse.core.runtime.IPath path, boolean isFolder, boolean excluded, ICSourceEntry[] entries)`
`static void` `setInteger​(ICStorageElement el, String attr, int value)`
`static String[]` `stringToArray​(String string, String separator)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### EMPTY_STRING_ARRAY

    public static final String[] EMPTY_STRING_ARRAY

### Constructor Detail

#### CDataUtil

    public CDataUtil()

### Method Detail

#### genRandomNumber

    public static int genRandomNumber()

#### genId

    public static String genId​(String baseId)

#### objectsEqual

    @Deprecated
    public static boolean objectsEqual​(Object o1,
                                       Object o2)

Deprecated.
Use `Object.equals(Object)`

#### arrayToString

    public static String arrayToString​(String[] array,
                                       String separator)

#### arrayToString

    public static String arrayToString​(Object[] array,
                                       String separator)

#### stringToArray

    public static String[] stringToArray​(String string,
                                         String separator)

#### resolveEntries

    public static ICSettingEntry[] resolveEntries​(ICSettingEntry[] entries,
                                                  ICConfigurationDescription cfgDes)

#### resolveEntries

    public static ICLanguageSettingEntry[] resolveEntries​(ICLanguageSettingEntry[] entries,
                                                          ICConfigurationDescription cfgDes)

#### resolveEntries

    public static ICSourceEntry[] resolveEntries​(ICSourceEntry[] entries,
                                                 ICConfigurationDescription cfgDes)

#### resolveEntries

    public static ICOutputEntry[] resolveEntries​(ICOutputEntry[] entries,
                                                 ICConfigurationDescription cfgDes)

#### getPooledEntry

    public static <T extends ICSettingEntry> T getPooledEntry​(T entry)

Return entry cached in setting entries pool to optimize for memory usage. Note that the pool will handle garbage collection for unreferenced entries.

Since:
  5.4

#### createEntry

    public static ICLanguageSettingEntry createEntry​(ICLanguageSettingEntry entry,
                                                     int flagsToAdd,
                                                     int flafsToClear)

Convenience method to clone `ICLanguageSettingEntry` with modified flags. Note that this method keeps the entries in the pool to avoid proliferation of duplicates.

Parameters:
  `entry` - - source entry.
  `flagsToAdd` - - binary combination of bits to add to the flags.
  `flafsToClear` - - binary combination of bits to clear in the flags.
Returns:
  new entry with the modified flags.

#### createEntry

    public static ICLanguageSettingEntry createEntry​(ICLanguageSettingEntry entry,
                                                     int flags)

Convenience method to clone `ICLanguageSettingEntry` with different flags. Note that this method keeps the entries in the pool to avoid proliferation of duplicates.

Parameters:
  `entry` - - source entry.
  `flags` - - new flags.
Returns:
  new entry with the specified flags.

#### createEntry

    public static ICSettingEntry createEntry​(int kind,
                                             String name,
                                             String value,
                                             org.eclipse.core.runtime.IPath[] exclusionPatterns,
                                             int flags)

Convenience method to create `ICSettingEntry` depending on kind. Note that this method keeps the entries in the pool to avoid proliferation of duplicates.

#### createEntry

    public static ICSettingEntry createEntry​(int kind,
                                             String name,
                                             String value,
                                             org.eclipse.core.runtime.IPath[] exclusionPatterns,
                                             int flags,
                                             org.eclipse.core.runtime.IPath sourceAttachmentPath,
                                             org.eclipse.core.runtime.IPath sourceAttachmentRootPath,
                                             org.eclipse.core.runtime.IPath sourceAttachmentPrefixMapping)

Convenience method to create `ICSettingEntry` depending on kind. Note that this method keeps the entries in the pool to avoid proliferation of duplicates.

#### createCIncludePathEntry

    public static CIncludePathEntry createCIncludePathEntry​(String name,
                                                            int flags)

Utility method to create `CIncludePathEntry`. Note that this method keeps the entries in the pool to avoid proliferation of duplicates.

Since:
  5.4

#### createCIncludeFileEntry

    public static CIncludeFileEntry createCIncludeFileEntry​(String name,
                                                            int flags)

Utility method to create `CIncludeFileEntry`. Note that this method keeps the entries in the pool to avoid proliferation of duplicates.

Since:
  5.4

#### createCMacroEntry

    public static CMacroEntry createCMacroEntry​(String name,
                                                String value,
                                                int flags)

Utility method to create `CMacroEntry`. Note that this method keeps the entries in the pool to avoid proliferation of duplicates.

Since:
  5.4

#### createCMacroFileEntry

    public static CMacroFileEntry createCMacroFileEntry​(String name,
                                                        int flags)

Utility method to create `CMacroFileEntry`. Note that this method keeps the entries in the pool to avoid proliferation of duplicates.

Since:
  5.4

#### createCLibraryPathEntry

    public static CLibraryPathEntry createCLibraryPathEntry​(String name,
                                                            int flags)

Utility method to create `CLibraryPathEntry`. Note that this method keeps the entries in the pool to avoid proliferation of duplicates.

Since:
  5.4

#### createCLibraryFileEntry

    public static CLibraryFileEntry createCLibraryFileEntry​(String name,
                                                            int flags)

Utility method to create `CLibraryFileEntry`. Note that this method keeps the entries in the pool to avoid proliferation of duplicates.

Since:
  5.4

#### getSourceExtensions

    public static String[] getSourceExtensions​(org.eclipse.core.resources.IProject project,
                                               CLanguageData data)

#### getExtensionsFromContentTypes

    public static String[] getExtensionsFromContentTypes​(org.eclipse.core.resources.IProject project,
                                                         String[] typeIds)

#### getContentTypeFileSpecs

    public static String[] getContentTypeFileSpecs​(org.eclipse.core.resources.IProject project,
                                                   org.eclipse.core.runtime.content.IContentType type)

#### findLanguagDataForFile

    public static CLanguageData findLanguagDataForFile​(String fileName,
                                                       org.eclipse.core.resources.IProject project,
                                                       CFolderData fData)

#### findLanguagDataForFile

    public static CLanguageData findLanguagDataForFile​(String fileName,
                                                       org.eclipse.core.resources.IProject project,
                                                       CLanguageData[] datas)

#### findLanguageDataForExtension

    public static CLanguageData findLanguageDataForExtension​(String ext,
                                                             CLanguageData[] datas)

#### createPathRcDataMap

    public static Map<org.eclipse.core.runtime.IPath,​CResourceData> createPathRcDataMap​(CConfigurationData data)

#### createRcDataHolder

    public static PathSettingsContainer createRcDataHolder​(CConfigurationData data)

#### createEmptyData

    public static CConfigurationData createEmptyData​(String id,
                                                     String name,
                                                     CDataFactory factory,
                                                     boolean performLangAdjustment)

#### adjustConfig

    public static CConfigurationData adjustConfig​(CConfigurationData cfg,
                                                  CDataFactory factory)

#### isExcluded

    public static boolean isExcluded​(org.eclipse.core.runtime.IPath path,
                                     ICSourceEntry[] entries)

#### isExcluded

    public static boolean isExcluded​(org.eclipse.core.runtime.IPath path,
                                     ICSourceEntry entry)

#### isOnSourceEntry

    public static boolean isOnSourceEntry​(org.eclipse.core.runtime.IPath path,
                                          ICSourceEntry entry)

#### canExclude

    public static boolean canExclude​(org.eclipse.core.runtime.IPath path,
                                     boolean isFolder,
                                     boolean excluded,
                                     ICSourceEntry[] entries)

#### isEqual

    public static boolean isEqual​(ICSourceEntry[] ein,
                                  ICSourceEntry[] aus)

Parameters:
  `ein` - - initial source entries
  `aus` - - resulting source entries
Returns:
  - true if they are equal

#### setExcluded

    public static ICSourceEntry[] setExcluded​(org.eclipse.core.runtime.IPath path,
                                              boolean isFolder,
                                              boolean excluded,
                                              ICSourceEntry[] entries)
                                       throws org.eclipse.core.runtime.CoreException

Throws:
  `org.eclipse.core.runtime.CoreException`

#### setExcludedIfPossible

    public static ICSourceEntry[] setExcludedIfPossible​(org.eclipse.core.runtime.IPath path,
                                                        boolean isFolder,
                                                        boolean excluded,
                                                        ICSourceEntry[] entries)

#### setExcluded

    public static ICSourceEntry[] setExcluded​(org.eclipse.core.runtime.IPath path,
                                              boolean isFolder,
                                              boolean excluded,
                                              ICSourceEntry[] entries,
                                              boolean throwExceptionOnErr)
                                       throws org.eclipse.core.runtime.CoreException

Throws:
  `org.eclipse.core.runtime.CoreException`

#### adjustEntries

    public static ICSourceEntry[] adjustEntries​(ICSourceEntry[] entries)

#### adjustEntries

    public static ICOutputEntry[] adjustEntries​(ICOutputEntry[] entries,
                                                boolean makeAbsolute,
                                                org.eclipse.core.resources.IProject project)

#### adjustEntries

    public static ICSourceEntry[] adjustEntries​(ICSourceEntry[] entries,
                                                boolean makeAbsolute,
                                                org.eclipse.core.resources.IProject project)

#### makeAbsolute

    public static ICSourceEntry makeAbsolute​(org.eclipse.core.resources.IProject project,
                                             ICSourceEntry entry)

#### makeRelative

    public static ICSourceEntry makeRelative​(org.eclipse.core.resources.IProject project,
                                             ICSourceEntry entry)

#### makeRelative

    public static ICSourceEntry[] makeRelative​(org.eclipse.core.resources.IProject project,
                                               ICSourceEntry[] entries)

#### makeAbsolute

    public static ICSourceEntry[] makeAbsolute​(org.eclipse.core.resources.IProject project,
                                               ICSourceEntry[] entries)

#### makeAbsolute

    public static ICOutputEntry makeAbsolute​(org.eclipse.core.resources.IProject project,
                                             ICOutputEntry entry)

#### makeRelative

    public static ICOutputEntry makeRelative​(org.eclipse.core.resources.IProject project,
                                             ICOutputEntry entry)

#### makeAbsolute

    public static ICOutputEntry[] makeAbsolute​(org.eclipse.core.resources.IProject project,
                                               ICOutputEntry[] entries)

#### makeRelative

    public static ICOutputEntry[] makeRelative​(org.eclipse.core.resources.IProject project,
                                               ICOutputEntry[] entries)

#### addExcludePaths

    public static ICSourceEntry addExcludePaths​(ICSourceEntry entry,
                                                Collection<org.eclipse.core.runtime.IPath> paths,
                                                boolean removePrefix)

#### fillEntriesMapByNameKey

    public static Map<EntryNameKey,​ICSettingEntry> fillEntriesMapByNameKey​(Map<EntryNameKey,​ICSettingEntry> map,
                                                                                 ICSettingEntry[] entries)

#### fillEntriesMapByContentsKey

    public static Map<EntryContentsKey,​ICSettingEntry> fillEntriesMapByContentsKey​(Map<EntryContentsKey,​ICSettingEntry> map,
                                                                                         ICSettingEntry[] entries)

#### getBoolean

    public static boolean getBoolean​(ICStorageElement el,
                                     String attr,
                                     boolean defaultValue)

#### setBoolean

    public static void setBoolean​(ICStorageElement el,
                                  String attr,
                                  boolean value)

#### getInteger

    public static int getInteger​(ICStorageElement el,
                                 String attr,
                                 int defaultValue)

#### setInteger

    public static void setInteger​(ICStorageElement el,
                                  String attr,
                                  int value)

#### addRemoveExclusionsToEntry

    public static ICExclusionPatternPathEntry addRemoveExclusionsToEntry​(ICExclusionPatternPathEntry entry,
                                                                         org.eclipse.core.runtime.IPath[] paths,
                                                                         boolean add)
                                                                  throws IllegalArgumentException

Throws:
  `IllegalArgumentException`

#### makeAbsolute

    public static ICExclusionPatternPathEntry makeAbsolute​(org.eclipse.core.resources.IProject project,
                                                           ICExclusionPatternPathEntry entry,
                                                           boolean force)

#### makeRelative

    public static ICExclusionPatternPathEntry makeRelative​(org.eclipse.core.resources.IProject project,
                                                           ICExclusionPatternPathEntry entry,
                                                           boolean force)

#### makeRelative

    public static ICExclusionPatternPathEntry[] makeRelative​(org.eclipse.core.resources.IProject project,
                                                             ICExclusionPatternPathEntry[] entries,
                                                             boolean force)

#### makeAbsolute

    public static ICExclusionPatternPathEntry[] makeAbsolute​(org.eclipse.core.resources.IProject project,
                                                             ICExclusionPatternPathEntry[] entries,
                                                             boolean force)