![JAR search and dependency download from the Maven repository](/logo.png)
org.eclipse.emf.common.EMFPlugin Maven / Gradle / Ivy
The newest version!
/**
* Copyright (c) 2002-2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v20.html
*
* Contributors:
* IBM - Initial API and implementation
*/
package org.eclipse.emf.common;
import org.eclipse.emf.common.util.DelegatingResourceLocator;
import org.eclipse.emf.common.util.Logger;
import org.eclipse.emf.common.util.ResourceLocator;
/**
* EMF must run
* within an Eclipse workbench,
* within a headless Eclipse workspace,
* or just stand-alone as part of some other application.
* To support this, all resource access (e.g., NL strings, images, and so on) is directed to the resource locator methods,
* which can redirect the service as appropriate to the runtime.
* During Eclipse invocation, the implementation delegates to a plugin implementation.
* During stand-alone invocation, no plugin initialization takes place,
* so the implementation delegates to a resource JAR on the CLASSPATH.
* The resource jar will typically not be on the CLASSPATH during Eclipse invocation.
* It will contain things like the icons and the .properties,
* which are available in a different way during Eclipse invocation.
* @see DelegatingResourceLocator
* @see ResourceLocator
* @see Logger
*/
public abstract class EMFPlugin extends DelegatingResourceLocator implements ResourceLocator, Logger
{
public static final boolean IS_ECLIPSE_RUNNING = false;
public static final boolean IS_RESOURCES_BUNDLE_AVAILABLE = false;
protected ResourceLocator [] delegateResourceLocators;
public EMFPlugin(ResourceLocator [] delegateResourceLocators)
{
this.delegateResourceLocators = delegateResourceLocators;
}
/**
* Returns an Eclipse plugin implementation of a resource locator.
* @return an Eclipse plugin implementation of a resource locator.
*/
public abstract ResourceLocator getPluginResourceLocator();
@Override
final protected ResourceLocator getPrimaryResourceLocator()
{
return getPluginResourceLocator();
}
@Override
protected ResourceLocator[] getDelegateResourceLocators()
{
return delegateResourceLocators;
}
/**
* Returns an Eclipse plugin implementation of a logger.
* @return an Eclipse plugin implementation of a logger.
*/
public Logger getPluginLogger()
{
return (Logger)getPluginResourceLocator();
}
public String getSymbolicName()
{
ResourceLocator resourceLocator = getPluginResourceLocator();
if (resourceLocator instanceof InternalEclipsePlugin)
{
return ((InternalEclipsePlugin)resourceLocator).getSymbolicName();
}
else
{
String result = getClass().getName();
return result.substring(0, result.lastIndexOf('.'));
}
}
/*
* Javadoc copied from interface.
*/
public void log(Object logEntry)
{
Logger logger = getPluginLogger();
if (logger == null)
{
if (logEntry instanceof Throwable)
{
((Throwable)logEntry).printStackTrace(System.err);
}
else
{
System.err.println(logEntry);
}
}
else
{
logger.log(logEntry);
}
}
/**
* This just provides a common interface for the Eclipse plugins supported by EMF.
* It is not considered API and should not be used by clients.
*/
public static interface InternalEclipsePlugin
{
String getSymbolicName();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy