blob: 10aac2651c2e1ef5b81832fee104305e9136a61d [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2012 Tilera 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:
* William R. Swanson (Tilera Corporation)
*******************************************************************************/
package org.eclipse.cdt.visualizer.core;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.Platform;
// ---------------------------------------------------------------------------
// Extension
// ---------------------------------------------------------------------------
/** Facade/utility class for dealing with Eclipse extensions. */
public class Extension extends ExtensionElement
{
// --- static methods ---
/** Gets extension point declaration with specified full ID (including plugin ID prefix). */
public static IExtensionPoint getExtensionPoint(String extensionPointID)
{
IExtensionPoint extensionPoint =
Platform.getExtensionRegistry().getExtensionPoint(
extensionPointID);
return extensionPoint;
}
/** Gets extension point declaration with specified name defined by specified plugin. */
public static IExtensionPoint getExtensionPoint(String pluginID, String extensionPointName)
{
IExtensionPoint extensionPoint =
Platform.getExtensionRegistry().getExtensionPoint(
pluginID, extensionPointName);
return extensionPoint;
}
/** Gets list of extensions for specified extension point ID (including plugin ID prefix). */
public static List<Extension> getExtensions(String extensionPointID)
{
IExtensionPoint extensionPoint = getExtensionPoint(extensionPointID);
return getExtensions(extensionPoint);
}
/** Gets list of extensions for specified plugin and extension point name. */
public static List<Extension> getExtensions(String pluginID, String extensionPointName)
{
IExtensionPoint extensionPoint = getExtensionPoint(pluginID, extensionPointName);
return getExtensions(extensionPoint);
}
/** Gets list of extensions for specified plugin and extension point name. */
public static List<Extension> getExtensions(IExtensionPoint extensionPoint)
{
return (extensionPoint == null) ? null :
Extension.wrapExtensions(extensionPoint.getConfigurationElements());
}
/** Wraps list of raw extension declarations. */
public static List<Extension> wrapExtensions(IConfigurationElement[] elements)
{
int count = (elements == null) ? 0 : elements.length;
List<Extension> result = new ArrayList<Extension>(count);
for (int i=0; i<count; ++i) {
result.add(new Extension(elements[i]));
}
return result;
}
// --- members ---
// --- constructors/destructors ---
/** Constructor. */
public Extension(IConfigurationElement element) {
super(element);
}
// --- methods ---
}