blob: 8c445273798c0166a94bcaa6f2a57c82a74e8b7f [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2011 QNX Software Systems and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* QNX Software Systems - Initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.make.internal.core;
import java.util.ArrayList;
import java.util.StringTokenizer;
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.ICDescriptor;
import org.eclipse.cdt.core.ICOwner;
import org.eclipse.cdt.make.core.MakeCorePlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.Preferences;
/**
* @deprecated This class is obsolete but it is there just in case it might be used with old style projects.
*/
@Deprecated
public class MakeProject implements ICOwner {
@Override
public void configure(ICDescriptor cDescriptor) throws CoreException {
cDescriptor.remove(CCorePlugin.BUILD_SCANNER_INFO_UNIQ_ID);
cDescriptor.remove(CCorePlugin.BUILDER_MODEL_ID);
updateBinaryParsers(cDescriptor);
updateIndexers(cDescriptor);
}
@Override
public void update(ICDescriptor cDescriptor, String extensionID) throws CoreException {
if (extensionID.equals(CCorePlugin.BINARY_PARSER_UNIQ_ID)) {
updateBinaryParsers(cDescriptor);
}
if (extensionID.equals(CCorePlugin.INDEXER_UNIQ_ID)) {
updateIndexers(cDescriptor);
}
}
private void updateBinaryParsers(ICDescriptor cDescriptor) throws CoreException {
cDescriptor.remove(CCorePlugin.BINARY_PARSER_UNIQ_ID);
Preferences makePrefs = MakeCorePlugin.getDefault().getPluginPreferences();
String ids = makePrefs.getString(CCorePlugin.PREF_BINARY_PARSER);
if (ids != null && ids.length() != 0) {
for (String id : parseStringToArray(ids)) {
cDescriptor.create(CCorePlugin.BINARY_PARSER_UNIQ_ID, id);
}
}
}
private void updateIndexers(ICDescriptor cDescriptor) throws CoreException {
cDescriptor.remove(CCorePlugin.INDEXER_UNIQ_ID);
Preferences corePrefs = CCorePlugin.getDefault().getPluginPreferences();
String ids = corePrefs.getString(CCorePlugin.PREF_INDEXER);
if (ids != null && ids.length() != 0) {
for (String id : parseStringToArray(ids)) {
cDescriptor.create(CCorePlugin.INDEXER_UNIQ_ID, id);
}
}
}
private String[] parseStringToArray(String syms) {
if (syms != null && syms.length() > 0) {
StringTokenizer tok = new StringTokenizer(syms, ";"); //$NON-NLS-1$
ArrayList<String> list = new ArrayList<>(tok.countTokens());
while (tok.hasMoreElements()) {
list.add(tok.nextToken());
}
return list.toArray(new String[list.size()]);
}
return new String[0];
}
}