/******************************************************************************* * 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.internal.core.settings.model; import java.util.Arrays; import java.util.Comparator; import org.eclipse.cdt.core.settings.model.ICFolderDescription; import org.eclipse.cdt.core.settings.model.ICLanguageSetting; import org.eclipse.cdt.core.settings.model.ICMultiFolderDescription; import org.eclipse.cdt.core.settings.model.ICResourceDescription; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; /** * * */ public class MultiFolderDescription extends MultiResourceDescription implements ICMultiFolderDescription { public MultiFolderDescription(ICFolderDescription[] res) { super(res); } /* (non-Javadoc) * @see org.eclipse.cdt.core.settings.model.ICFolderDescription#createLanguageSettingForContentTypes(java.lang.String, java.lang.String[]) */ public ICLanguageSetting createLanguageSettingForContentTypes( String languageId, String[] typeIds) throws CoreException { if (DEBUG) System.out.println("Bad multi access: MultiFolderDescription.createLanguageSettingForContentType()"); //$NON-NLS-1$ return null; } /* (non-Javadoc) * @see org.eclipse.cdt.core.settings.model.ICFolderDescription#createLanguageSettingForExtensions(java.lang.String, java.lang.String[]) */ public ICLanguageSetting createLanguageSettingForExtensions( String languageId, String[] extensions) throws CoreException { if (DEBUG) System.out.println("Bad multi access: MultiFolderDescription.createLanguageSettingForExt()"); //$NON-NLS-1$ return null; } /* (non-Javadoc) * @see org.eclipse.cdt.core.settings.model.ICFolderDescription#getLanguageSettingForFile(java.lang.String) */ public ICLanguageSetting getLanguageSettingForFile(String fileName) { ICLanguageSetting ls0 = ((ICFolderDescription)fRess[0]).getLanguageSettingForFile(fileName); if (ls0 == null || ls0.getName() == null) return null; for (int i=1; i<fRess.length; i++) { if (fRess[i] instanceof ICFolderDescription) { ICLanguageSetting ls1 = ((ICFolderDescription)fRess[i]).getLanguageSettingForFile(fileName); if (ls1 == null || ! ls0.getName().equals(ls1.getName())) return null; } } return ls0; } /* (non-Javadoc) * @see org.eclipse.cdt.core.settings.model.ICFolderDescription#getLanguageSettings() */ public ICLanguageSetting[][] getLanguageSettingsM(Comparator<Object> comp) { ICLanguageSetting[][] ls = new ICLanguageSetting[fRess.length][]; for (int i=0; i<fRess.length; i++) { if (fRess[i] instanceof ICFolderDescription) { ls[i] = ((ICFolderDescription)fRess[i]).getLanguageSettings(); Arrays.sort(ls[i], comp); } } return ls; } /* (non-Javadoc) * @see org.eclipse.cdt.core.settings.model.ICFolderDescription#getNestedResourceDescription(org.eclipse.core.runtime.IPath, boolean) */ public ICResourceDescription getNestedResourceDescription(IPath relPath, boolean exactPath) { if (DEBUG) System.out.println("Bad multi access: MultiFolderDescription.getNestedResourceDescription(path, exact)"); //$NON-NLS-1$ return null; } /* (non-Javadoc) * @see org.eclipse.cdt.core.settings.model.ICFolderDescription#getNestedResourceDescriptions(int) */ public ICResourceDescription[] getNestedResourceDescriptions(int kind) { if (DEBUG) System.out.println("Bad multi access: MultiFolderDescription.getNestedResourceDescriptions(kind)"); //$NON-NLS-1$ return null; } /* (non-Javadoc) * @see org.eclipse.cdt.core.settings.model.ICFolderDescription#getNestedResourceDescriptions() */ public ICResourceDescription[] getNestedResourceDescriptions() { if (DEBUG) System.out.println("Bad multi access: MultiFolderDescription.getNestedResourceDescriptions()"); //$NON-NLS-1$ return null; } /* (non-Javadoc) * @see org.eclipse.cdt.core.settings.model.ICFolderDescription#isRoot() */ public boolean isRoot() { for (int i=0; i<fRess.length; i++) if (! ((ICFolderDescription)fRess[i]).isRoot()) return false; return true; } public ICLanguageSetting[] getLanguageSettings() { return ((ICFolderDescription)fRess[0]).getLanguageSettings(); } }