blob: 03429acaa45beafca766afabed076c11736f16a0 [file] [log] [blame]
/*
* Copyright (c) 2007, 2008, 2011, 2012, 2015 Eike Stepper (Berlin, Germany) 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:
* Eike Stepper - initial API and implementation
*/
package org.eclipse.net4j.util.om;
import org.eclipse.net4j.util.om.log.OMLogger;
import org.eclipse.net4j.util.om.pref.OMPreferences;
import org.eclipse.net4j.util.om.trace.OMTracer;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.osgi.service.debug.DebugOptions;
import org.osgi.framework.Bundle;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Iterator;
import java.util.Properties;
import java.util.ResourceBundle;
/**
* Represents a {@link Bundle bundle}, whether OSGi {@link OMPlatform#isOSGiRunning() is running} or not.
*
* @author Eike Stepper
* @noextend This interface is not intended to be extended by clients.
* @noimplement This interface is not intended to be implemented by clients.
* @apiviz.landmark
* @apiviz.has {@link org.eclipse.net4j.util.om.pref.OMPreferences} oneway - - preferences
* @apiviz.has {@link org.eclipse.net4j.util.om.log.OMLogger} oneway - - logger
* @apiviz.owns {@link org.eclipse.net4j.util.om.trace.OMTracer} - - tracers
* @apiviz.has {@link OMBundle.DebugSupport}
* @apiviz.has {@link OMBundle.TranslationSupport}
* @apiviz.has {@link java.util.Properties} oneway - - config
*/
public interface OMBundle
{
public OMPlatform getPlatform();
public String getBundleID();
public URL getBaseURL();
/**
* @since 3.2
*/
public Iterator<Class<?>> getClasses();
public OMTracer tracer(String name);
public OMLogger logger();
public OMPreferences preferences();
/**
* @since 3.5
*/
public IStatus getStatus(Object obj);
/**
* @since 3.5
*/
public void coreException(Throwable t) throws CoreException;
public File getConfigFile();
public Properties getConfigProperties();
public String getStateLocation();
public InputStream getInputStream(String path) throws IOException;
public DebugSupport getDebugSupport();
public TranslationSupport getTranslationSupport();
/**
* @deprecated For internal use only.
*/
@Deprecated
public void setBundleContext(Object bundleContext);
/**
* A facility for accessing OSGi {@link DebugOptions debug options}, whether OSGi {@link OMPlatform#isOSGiRunning() is
* running} or not.
*
* @author Eike Stepper
*/
public interface DebugSupport
{
public boolean isDebugging();
public void setDebugging(boolean debugging);
public String getDebugOption(String option);
public void setDebugOption(String option, String value);
public String getDebugOption(String option, String defaultValue);
public boolean getDebugOption(String option, boolean defaultValue);
public void setDebugOption(String option, boolean value);
public int getDebugOption(String option, int defaultValue);
public void setDebugOption(String option, int value);
}
/**
* A facility for accessing {@link ResourceBundle resource bundles}.
*
* @author Eike Stepper
*/
public interface TranslationSupport
{
/**
* Indicates whether strings should be translated by default.
*
* @return <code>true</code> if strings should be translated by default; <code>false</code> otherwise.
*/
public boolean shouldTranslate();
/**
* Sets whether strings should be translated by default.
*
* @param shouldTranslate
* whether strings should be translated by default.
*/
public void setShouldTranslate(boolean shouldTranslate);
/**
* Returns the string resource associated with the key.
*
* @param key
* the key of the string resource.
* @return the string resource associated with the key.
*/
String getString(String key);
/**
* Returns the string resource associated with the key.
*
* @param key
* the key of the string resource.
* @param translate
* whether the result is to be translated to the current locale.
* @return the string resource associated with the key.
*/
String getString(String key, boolean translate);
/**
* Returns a string resource associated with the key, and performs substitutions.
*
* @param key
* the key of the string.
* @param args
* the message substitutions.
* @return a string resource associated with the key.
* @see #getString(String)
* @see java.text.MessageFormat#format(String, Object...)
*/
String getString(String key, Object... args);
/**
* Returns a string resource associated with the key, and performs substitutions.
*
* @param key
* the key of the string.
* @param translate
* whether the result is to be translated to the current locale.
* @param args
* the message substitutions.
* @return a string resource associated with the key.
* @see #getString(String)
* @see java.text.MessageFormat#format(String, Object[])
*/
String getString(String key, boolean translate, Object... args);
}
}