/******************************************************************************* * Copyright (c) 2007, 2010 Intel Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Intel Corporation - Initial API and implementation *******************************************************************************/ package org.eclipse.cdt.make.internal.core.dataprovider; import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry; import org.eclipse.cdt.core.settings.model.extension.CLanguageData; import org.eclipse.cdt.core.settings.model.util.UserAndDiscoveredEntryLanguageData; import org.eclipse.cdt.make.core.scannerconfig.PathInfo; import org.eclipse.cdt.make.internal.core.scannerconfig.util.PathInfoToLangSettingsConverter; public class MakeLanguageData extends UserAndDiscoveredEntryLanguageData { private PathInfo fDiscoveredCache; public MakeLanguageData() { super(); } public MakeLanguageData(String id, CLanguageData base) { super(id, base); } public MakeLanguageData(String id, String name, String languageId, int kinds, String[] ids, boolean isContentTypes) { super(id, languageId, ids, isContentTypes); fName = name; fSupportedKinds = kinds; } @Override protected void copySettingsFrom(CLanguageData data) { super.copySettingsFrom(data); if(data instanceof MakeLanguageData){ fDiscoveredCache = ((MakeLanguageData)data).fDiscoveredCache; } } @Override protected ICLanguageSettingEntry[] getAllDiscoveredEntries(int kind) { if(fDiscoveredCache != null){ int roFlag = canDisableDiscoveredEntries(kind) ? 0 : ICLanguageSettingEntry.READONLY; return PathInfoToLangSettingsConverter.entriesForKind(kind, roFlag | ICLanguageSettingEntry.BUILTIN | ICLanguageSettingEntry.RESOLVED, fDiscoveredCache); } return null; } protected void setDiscoveredInfo(PathInfo info){ fDiscoveredCache = info; } }