blob: fa7e1824b1fe3946bd72de503eed9752276ea45c [file] [log] [blame]
import org.checkerframework.checker.guieffect.qual.*;
package org.eclipse.compare;
@UIType public abstract class CompareEditorInput extends PlatformObject implements IEditorInput, IPropertyChangeNotifier, IRunnableWithProgress, ICompareContainer {
@SafeEffect public CompareConfiguration getCompareConfiguration();
@SafeEffect public void setTitle(String title);
@SafeEffect public boolean isSaveNeeded();
@SafeEffect public void save(IProgressMonitor pm);
@SafeEffect public void saveChanges(IProgressMonitor monitor) throws CoreException;
@SafeEffect protected void setMessage(String message);
@SafeEFfect public String getMessage();
}
package org.eclipse.core.commands;
@PolyUIType public interface IHandler {
@SafeEffect void addHandlerListener(IHandlerListener handlerListener);
@SafeEffect void dispose();
@PolyUIEffect Object execute(@PolyUI IHandler this, ExecutionEvent event);
@SafeEffect boolean isEnabled();
@SafeEffect boolean isHandled();
@SafeEffect void removeHandlerListener(IHandlerListener handlerListener);
}
package org.eclipse.core.expression;
public interface IPropertyTester {
// XXX Not sure if this should be UIEffect or poly
@UIEffect boolean test(Object receiver, String property, Object[] args, Object expectedValue);
}
public abstract class PropertyTester implements IPropertyTester {
// XXX Not sure if this should be UIEffect or poly
@UIEffect boolean test(Object receiver, String property, Object[] args, Object expectedValue);
}
package org.eclipse.core.runtime;
@PolyUIType public interface IProgressMonitor {
@PolyUIEffect void beginTask(@PolyUI IProgressMonitor this, String name, int totalWork);
@PolyUIEffect void done(@PolyUI IProgressMonitor this);
@PolyUIEffect void internalWorked(@PolyUI IProgressMonitor this, double work);
@PolyUIEffect boolean isCanceled(@PolyUI IProgressMonitor this);
@PolyUIEffect void setCanceled(@PolyUI IProgressMonitor this, boolean value);
@PolyUIEffect void setTaskName(@PolyUI IProgressMonitor this, String name);
@PolyUIEffect void subTask(@PolyUI IProgressMonitor this, String name);
@PolyUIEffect void worked(@PolyUI IProgressMonitor this, int work);
}
@PolyUIType
public abstract class Plugin implements BundleActivator {
// These methods are present on all plugins, UI or not
@PolyUIEffect void start(@PolyUI Plugin this, BundleContext context);
@PolyUIEffect void stop(@PolyUI Plugin this, BundleContext context);
@SafeEffect public final Preferences getPluginPreferences();
}
public class Preferences extends Object {
public static interface IPropertyChangeListener extends EventListener {
@PolyUIEffect public void propertyChange(@PolyUI Preferences$IPropertyChangeListener this, Preferences.PropertyChangeEvent event);
}
}
package org.eclipse.core.runtime.jobs;
@PolyUIType
public abstract class Job extends org.eclipse.core.internal.jobs.InternalJob implements IAdaptable {
@PolyUIEffect protected abstract IStatus run(@PolyUI Job this, IProgressMonitor monitor);
}
@UIPackage package org.eclipse.debug.ui;
@UIPackage package org.eclipse.debug.ui.actions;
@UIPackage package org.eclipse.debug.ui.console;
@UIPackage package org.eclipse.debug.ui.contexts;
@UIPackage package org.eclipse.debug.ui.memory;
@UIPackage package org.eclipse.debug.ui.sourcelookup;
@UIPackage package org.eclipse.draw2d;
@UIPackage package org.eclipse.draw2d.geometry;
@UIPackage package org.eclipse.draw2d.parts;
@UIPackage package org.eclipse.gef;
@UIPackage package org.eclipse.gef.editparts;
@UIPackage package org.eclipse.gef.editpolicies;
@UIPackage package org.eclipse.gef.tools;
@UIPackage package org.eclipse.gef.ui;
@UIPackage package org.eclipse.gef.ui.actions;
@UIPackage package org.eclipse.gef.ui.parts;
@UIPackage package org.eclipse.help.ui;
@UIPackage package org.eclipse.help.ui.browser;
@UIPackage package org.eclipse.jface.action;
//@PolyUIType
//public interface IAction {
// // TODO: IAction and Action are all-safe interfaces!
// @PolyUIEffect public void run();
// @PolyUIEffect public void runWithEvent(Event event);
//}
//@PolyUIType
//public abstract class Action extends AbstractAction implements IAction {
// // TODO: IAction and Action are all-safe interfaces!
// @PolyUIEffect public void run();
// @PolyUIEffect public void runWithEvent(Event event);
//}
//public interface IContributionManager {
// @UIEffect public void add(@UI IAction action);
//}
@SafeType interface IAction {
@UIEffect public void run();
@UIEffect public void runWithEvent(Event event);
}
@SafeType class Action extends AbstractAction implements IAction {
@UIEffect public void run();
@UIEffect public void runWithEvent(Event event);
}
public interface IContributionManager {
@SafeEffect public void add(IAction action);
@SafeEffect public void add(IContributionItem item);
}
public interface IMenuManager extends IContributionManager, IContributionItem {
@SafeEffect public void addMenuListener(IMenuListener listener);
@SafeEffect public void setRemoveAllWhenShown(boolean removeAll);
}
@UIPackage package org.eclipse.jface.bindings;
@UIPackage package org.eclipse.jface.bindings.keys;
@UIPackage package org.eclipse.jface.bindings.keys.formatting;
@UIPackage package org.eclipse.jface.commands;
@UIPackage package org.eclipse.jface.contentassist;
@UIPackage package org.eclipse.jface.contexts;
@UIPackage package org.eclipse.jface.databinding.dialog;
@UIPackage package org.eclipse.jface.databinding.preference;
@UIPackage package org.eclipse.jface.databinding.swt;
@UIPackage package org.eclipse.jface.databinding.util;
@UIPackage package org.eclipse.jface.databinding.viewers;
@UIPackage package org.eclipse.jface.databinding.wizard;
@UIPackage package org.eclipse.jface.dialogs;
public abstract class Dialog extends Window {
// XXX: Not 100% sure about this
// XXX: Reproduced here because if Window is annotated @UIType, it doesn't inherit the weaker override!
@SafeEffect void getShell();
}
// XXX: Not 100% sure about this
@SafeType public interface IDialogSettings {}
@UIPackage package org.eclipse.jface.fieldassist;
@UIPackage package org.eclipse.jface.layout;
@UIPackage package org.eclipse.jface.menus;
@UIPackage package org.eclipse.jface.operation;
@UIPackage package org.eclipse.jface.preference;
public interface IPreferenceStore {
@SafeEffect void addPropertyChangeListener(IPropertyChangeListener listener);
// TODO: ALL methods of this type should be safe!
@SafeEffect boolean contains(String name);
@SafeEffect void firePropertyChangeEvent(String name, Object oldValue, Object newValue);
@SafeEffect boolean getBoolean(String name);
@SafeEffect boolean getDefaultBoolean(String name);
@SafeEffect double getDefaultDouble(String name);
@SafeEffect float getDefaultFloat(String name);
@SafeEffect int getDefaultInt(String name);
@SafeEffect long getDefaultLong(String name);
@SafeEffect String getDefaultString(String name);
@SafeEffect double getDouble(String name);
@SafeEffect float getFloat(String name);
@SafeEffect int getInt(String name);
@SafeEffect long getLong(String name);
@SafeEffect String getString(String name);
@SafeEffect boolean isDefault(String name);
@SafeEffect boolean needsSaving();
@SafeEffect void putValue(String name, String value);
@SafeEffect void removePropertyChangeListener(IPropertyChangeListener listener);
@SafeEffect void setDefault(String name, boolean value);
@SafeEffect void setDefault(String name, double value);
@SafeEffect void setDefault(String name, float value);
@SafeEffect void setDefault(String name, int value);
@SafeEffect void setDefault(String name, long value);
@SafeEffect void setDefault(String name, String defaultObject);
@SafeEffect void setToDefault(String name);
@SafeEffect void setValue(String name, boolean value);
@SafeEffect void setValue(String name, double value);
@SafeEffect void setValue(String name, float value);
@SafeEffect void setValue(String name, int value);
@SafeEffect void setValue(String name, long value);
@SafeEffect void setValue(String name, String value);
}
public abstract class PreferencePage extends DialogPage implements IPreferencePage {
@SafeEffect protected IPreferenceStore doGetPreferenceStore();
}
public class ColorSelector extends EventManager {
void addListener(@UI IPropertyChangeListener listener);
void removeListener(@UI IPropertyChangeListener listener);
}
public abstract class FieldEditor {
public void setPropertyChangeListener(@UI IPropertyChangeListener listener);
}
// XXX: Not 100% on this
@SafeType public class PreferenceConverter {}
@UIPackage package org.eclipse.jface.resource;
// XXX: Not 100% on this
@SafeType public class JFaceResources {
// This method is explicitly documented as UI-only
@UIEffect public static ResourceManager getResources();
// This method is NOT documented as ui-only, but the above does something safe and then calls this... might just be a nullness issue, though (Display.getCurrent())
@UIEffect public static ResourceManager getResources(Display toQuery);
}
@SafeType public class StringConverter {}
public class ImageRegistry {
@SafeEffect ImageDescriptor getDescriptor(String key);
@SafeEffect public Image get(String key);
}
public abstract class ImageDescriptor extends DeviceResourceDescriptor {
@SafeEffect public static ImageDescriptor createFromURL(URL url);
}
public class FontRegistry extends ResourceRegistry {
@SafeEffect public Font get(String symbolicName);
}
public abstract class ResourceRegistry extends EventManager {
@SafeEffect public void addListener(IPropertyChangeListener listener);
@SafeEffect public void removeListener(IPropertyChangeListener listener);
}
@UIPackage package org.eclipse.jface.text;
@SafeType public class DocumentEvent{}
// XXX: Not 100% on this
@SafeType public interface IDocument{}
@SafeType public abstract class AbstractDocument implements IDocument, IDocumentExtension, IDocumentExtension2, IDocumentExtension3, IDocumentExtension4, IRepairableDocument, IRepairableDocumentExtension {}
@SafeType public interface ITextStore{}
@SafeType public class GapTextStore implements ITextStore {}
@SafeType public class CopyOnWriteTextStore implements ITextStore {}
@SafeType public interface ILineTracker {}
@SafeType public class DefaultLineTracker extends AbstractLineTracker {}
@SafeType public class ConfigurableLineTracker extends AbstractLineTracker {}
@SafeType public abstract class AbstractLineTracker implements ILineTracker, ILineTrackerExtension {}
public interface ITextViewer {
@SafeEffect public ITextOperationTarget getTextOperationTarget();
@SafeEffect public IDocument getDocument();
}
@UIPackage package org.eclipse.jface.text.contentassist;
@UIPackage package org.eclipse.jface.text.formatter;
@UIPackage package org.eclipse.jface.text.hyperlink;
@UIPackage package org.eclipse.jface.text.information;
@UIPackage package org.eclipse.jface.text.link;
@UIPackage package org.eclipse.jface.text.presentation;
@UIPackage package org.eclipse.jface.text.projection;
@UIPackage package org.eclipse.jface.text.quickassist;
@UIPackage package org.eclipse.jface.text.reconciler;
@UIPackage package org.eclipse.jface.text.revisions;
// XXX: Not 100%, but everything in jface.text.rules seems to be safe
//@UIPackage package org.eclipse.jface.text.rules;
@UIPackage package org.eclipse.jface.text.source;
@UIPackage package org.eclipse.jface.text.source.projection;
@UIPackage package org.eclipse.jface.text.templates;
@UIPackage package org.eclipse.jface.text.templates.persistence;
@UIPackage package org.eclipse.jface.util;
public class PropertyChangeEvent extends EventObject {
@SafeEffect PropertyChangeEvent(Object source, String property, Object oldValue, Object newValue);
@SafeEffect Object getNewValue();
@SafeEffect Object getOldValue();
@SafeEffect String getProperty();
}
@PolyUIType public interface IPropertyChangeListener extends EventListener {
@PolyUIEffect void propertyChange(@PolyUI IPropertyChangeListener this, PropertyChangeEvent event);
}
@UIPackage package org.eclipse.jface.viewers;
public abstract class ContentViewer extends Viewer {
@SafeEffect public Object getInput();
}
public abstract class StructuredViewer extends ContentViewer implements IPostSelectionProvider {
// @SafeEffect void refresh(); -- Why the hell did I ever mark this safe???
}
public class TreeViewer extends AbstractTreeViewer {
@SafeEffect Tree getTree();
@SafeEffect Control getControl();
}
@SafeType public interface IStructuredSelection extends ISelection {
}
@UIPackage package org.eclipse.jface.viewers.deferred;
@UIPackage package org.eclipse.jface.window;
public interface IShellProvider {
// XXX: Not 100% sure about this
@SafeEffect void getShell();
}
public abstract class Window implements IShellProvider {
// XXX: Not 100% sure about this
// XXX: Reproduced here because if Window is annotated @UIType, it doesn't inherit the weaker override!
@SafeEffect void getShell();
}
@UIPackage package org.eclipse.jface.wizard;
@UIPackage package org.eclipse.jsch.ui;
@UIPackage package org.eclipse.ltk.ui.refactoring;
@UIPackage package org.eclipse.ltk.ui.refactoring.actions;
@UIPackage package org.eclipse.ltk.ui.refactoring.history;
@UIPackage package org.eclipse.ltk.ui.refactoring.model;
@UIPackage package org.eclipse.ltk.ui.refactoring.resource;
@UIPackage package org.eclipse.search.ui;
@UIPackage package org.eclipse.search.ui.actions;
@UIPackage package org.eclipse.search.ui.text;
/*
* SWT
*/
@UIPackage package org.eclipse.swt;
@UIPackage package org.eclipse.swt.accessibility;
@UIPackage package org.eclipse.swt.awt;
@UIPackage package org.eclipse.swt.browser;
@UIPackage package org.eclipse.swt.custom;
public class BusyIndicator {
@UIEffect public static void showWhile(Display display, @UI Runnable runnable);
}
@UIPackage package org.eclipse.swt.dnd;
@SafeType public abstract class Transfer {}
@SafeType public abstract class ByteArrayTransfer extends Transfer {}
@UIPackage package org.eclipse.swt.events;
@UIPackage package org.eclipse.swt.graphics;
// XXX: Not 100%, but this seems safe. At least the .equals(), which is what my case study needs
public final class RGB extends Object implements org.eclipse.swt.internal.SerializableCompatibility {
@SafeEffect public boolean equals(Object object);
}
public final class Font extends Resource {
// Another SWT class that happens to work on other threads... (https://bugs.eclipse.org/bugs/show_bug.cgi?id=241062)
@SafeEffect FontData[] getFontData();
}
public abstract class Resource {
// XXX not 100% - the impl appears safe, but this is probably not the intended model
@SafeEffect public void dispose();
}
public final class Image extends Resource implements Drawable {
@SafeEffect public boolean equals(Object object);
@SafeEffect public int hashCode();
}
@UIPackage package org.eclipse.swt.layout;
@UIPackage package org.eclipse.swt.ole.win32;
@UIPackage package org.eclipse.swt.opengl;
@UIPackage package org.eclipse.swt.printing;
@UIPackage package org.eclipse.swt.program;
@UIPackage package org.eclipse.swt.widgets;
// These are the only two safe methods in all of SWT according to the docs
@UIType class Display extends Device {
@SafeEffect public void syncExec(@UI Runnable runnable);
@SafeEffect public void asyncExec(@UI Runnable runnable);
// Not 100% sure about this one
@SafeEffect public static Display getDefault();
@SafeEffect public static Display getCurrent();
}
public class Shell extends Decorations {
// XXX: Actually inherited, as @SafeEffect, from Widget
@SafeEffect public Display getDisplay();
}
public abstract class Widget {
// XXX: Not 100% on this
@SafeEffect public Display getDisplay();
@SafeEffect public boolean isDisposed();
}
// XXX Not 100% on these internal packages
@UIPackage package org.eclipse.team.internal.ui;
@UIPackage package org.eclipse.team.internal.ui.synchronize;
public abstract class SyncInfoSetChangeSetCollector extends ChangeSetManager {
@SafeEffect protected final void performUpdate(IWorkspaceRunnable runnable, boolean preserveExpansion, IProgressMonitor monitor);
}
@UIPackage package org.eclipse.team.ui;
// XXX This TeamOperation class is messy for us: canRunAsJob() determines whether the class has UI
// effects or safe effects. Some of these methods need to be marked safe because they're to be used
// by both variants. Because there are issues with valid types, I'm making this type safe for now,
// and I'll suffer the extra warnings until I decide whether or not I want to go polymorphic.
@SafeType public abstract class TeamOperation extends JobChangeAdapter implements IRunnableWithProgress {
}
@SafeType public class TeamImages {}
@UIPackage package org.eclipse.team.ui.history;
public abstract class HistoryPage extends Page implements IHistoryPage, IAdaptable {
@SafeEffect public Object getInput();
}
@UIPackage package org.eclipse.team.ui.synchronize;
public interface ISynchronizeModelElement extends IDiffContainer, ITypedElement, ICompareInput {
@SafeEffect IResource getResource();
}
public abstract class SubscriberParticipant extends AbstractSynchronizeParticipant implements IPropertyChangeListener {
@SafeEffect public final IStatus refreshNow(IResource[] resources, String taskName, IProgressMonitor monitor);
@SafeEffect public final void refresh(IResource[] resources, String shortTaskName, String longTaskName, IWorkbenchSite site);
@SafeEffect protected String getLongTaskName(IResource[] resources);
@SafeEffect public IResource[] getResources();
@SafeEffect public void reset();
}
public abstract class SynchronizeModelOperation extends TeamOperation {
@SafeEffect protected SyncInfoSet getSyncInfoSet();
}
@UIPackage package org.eclipse.ui;
public final class PlatformUI {
// XXX Not 100%
@SafeEffect public static IWorkbench getWorkbench();
@SafeEffect public static boolean isWorkbenchRunning();
}
// XXX Not 100% about these "safe" types
@SafeType public interface IWorkbench extends IAdaptable, IServiceLocator {}
public interface IWorkbenchPart extends IAdaptable {
@SafeEffect IWorkbenchPartSite getSite();
}
public interface IWorkbenchPartSite extends IWorkbenchSite {
@SafeEffect IWorkbenchPart getPart();
}
@SafeType public interface IWorkbenchWindow extends IPageService, IRunnableContext, IServiceLocator, IShellProvider {}
public interface IWorkbenchSite extends IAdaptable, IShellProvider, IServiceLocator {
@SafeEffect public Shell getShell(); // XXX: This is specified by IShellProvider, but the docs for IWorkbenchSite say this is ui safe only for compat, and the result may be wrong
@SafeEffect IWorkbenchPage getPage();
}
public interface IFileEditorInput extends IStorageEditorInput {
// XXX Not 100%
@SafeEffect IFile getFile();
}
public interface IPathEditorInput extends IEditorInput {
@SafeEffect IPath getPath();
}
@SafeType public interface IEditorRegistry {}
@SafeType public interface IEditorDescriptor extends IWorkbenchPartDescriptor {}
public interface IEditorPart extends IWorkbenchPart, ISaveablePart {
// XXX not 100% sure
@SafeEffect public IEditorInput getEditorInput();
}
public interface IPartService {
@SafeEffect IWorkbenchPart getActivePart();
}
@UIPackage package org.eclipse.ui.about;
@UIPackage package org.eclipse.ui.actions;
public abstract class BaseSelectionListenerAction extends Action implements ISelectionChangedListener {
// XXX every impl of this simply returns a member, but I can't tell if this is actually (race) safe
@SafeEffect public IStructuredSelection getStructuredSelection();
}
@UIPackage package org.eclipse.ui.activities;
@UIPackage package org.eclipse.ui.application;
@UIPackage package org.eclipse.ui.branding;
@UIPackage package org.eclipse.ui.browser;
@UIPackage package org.eclipse.ui.cheatsheets;
@UIPackage package org.eclipse.ui.commands;
@UIPackage package org.eclipse.ui.console;
// XXX: Not 100% on these console types
@SafeType public interface IConsole {}
@SafeType public interface IConsoleManager {}
@SafeType public abstract class TextConsole extends AbstractConsole {
@UIEffect public Font getFont();
}
@SafeType public class ConsolePlugin extends AbstractUIPlugin {}
@SafeType public class IOConsole extends TextConsole{}
@SafeType public class IOConsoleInputStream extends InputStream{}
@SafeType public class IOConsoleOutputStream extends OutputStream{}
@UIPackage package org.eclipse.ui.console.actions;
@UIPackage package org.eclipse.ui.contentassist;
@UIPackage package org.eclipse.ui.contexts;
@UIPackage package org.eclipse.ui.databinding;
@UIPackage package org.eclipse.ui.dialogs;
public class FilteredTree extends Composite {
// XXX Not 100%
@SafeEffect TreeViewer getViewer();
}
@UIPackage package org.eclipse.ui.editors.text;
// XXX not 100%
@SafeType public interface IStorageDocumentProvider {}
@UIPackage package org.eclipse.ui.editors.text.templates;
@UIPackage package org.eclipse.ui.fieldassist;
@UIPackage package org.eclipse.ui.forms;
@UIPackage package org.eclipse.ui.forms.editor;
@UIPackage package org.eclipse.ui.forms.events;
@UIPackage package org.eclipse.ui.forms.widgets;
@UIPackage package org.eclipse.ui.handlers;
@UIPackage package org.eclipse.ui.help;
public interface IWorkbenchHelpSystem {
// XXX not 100%
@SafeEffect void setHelp(IAction action, String contextId);
}
@UIPackage package org.eclipse.ui.ide;
@UIPackage package org.eclipse.ui.ide.dialogs;
@UIPackage package org.eclipse.ui.ide.fileSystem;
@UIPackage package org.eclipse.ui.ide.undo;
@UIPackage package org.eclipse.ui.intro;
@UIPackage package org.eclipse.ui.intro.config;
@UIPackage package org.eclipse.ui.intro.contentproviders;
@UIPackage package org.eclipse.ui.intro.universal;
@UIPackage package org.eclipse.ui.keys;
@UIPackage package org.eclipse.ui.menus;
@UIPackage package org.eclipse.ui.model;
public interface IWorkbenchAdapter {
@SafeEffect ImageDescriptor getImageDescriptor(Object object);
}
@UIPackage package org.eclipse.ui.navigator;
@UIPackage package org.eclipse.ui.navigator.resources;
@UIPackage package org.eclipse.ui.operations;
@UIPackage package org.eclipse.ui.part;
public abstract class EditorPart extends WorkbenchPart implements IEditorPart {
// XXX Again, not 100%
@SafeEffect public IEditorInput getEditorInput();
}
public abstract class Page implements IPageBookViewPage {
@SafeEffect public IPageSite getSite();
}
@SafeType public class PluginTransfer extends ByteArrayTransfer {}
@UIPackage package org.eclipse.ui.plugin;
@UI public abstract class AbstractUIPlugin extends @UI Plugin {
// XXX: These methods are present on all plugins, UI or not, and I'm reproducing them explicitly here because inheritance from a *particular* polymorphic instantiation doesn't work yet
@SafeEffect public AbstractUIPlugin();
@SafeEffect public AbstractUIPlugin(IPluginDescriptor descriptor);
@SafeEffect void start(BundleContext context);
@SafeEffect void stop(BundleContext context);
@SafeEffect public static ImageDescriptor imageDescriptorFromPlugin(String pluginId, String imageFilePath);
@SafeEffect public IDialogSettings getDialogSettings();
// XXX Not 100%
@SafeEffect public IWorkbench getWorkbench();
@SafeEffect public Preferences getPluginPreferences();
@SafeEffect public IPreferenceStore getPreferenceStore();
@SafeEffect public ImageRegistry getImageRegistry(); // Technically only safe after the workbench is running, but no plugins will ever call this before then...
}
public final class PlatformUI {
// XXX Not 100%
@SafeEffect public static IWorkbench getWorkbench();
}
public abstract class Page implements IPageBookViewPage {
@SafeEffect public IPageSite getSite();
}
@UIPackage package org.eclipse.ui.preferences;
@UIPackage package org.eclipse.ui.presentations;
@UIPackage package org.eclipse.ui.progress;
@SafeType public interface IWorkbenchSiteProgressService extends IProgressService {}
@UIPackage package org.eclipse.ui.services;
@UIPackage package org.eclipse.ui.splash;
@UIPackage package org.eclipse.ui.statushandlers;
@UIPackage package org.eclipse.ui.swt;
@UIPackage package org.eclipse.ui.testing;
@UIPackage package org.eclipse.ui.texteditor;
@UIType public class StatusLineContributionItem extends ContributionItem implements IStatusField, IStatusFieldExtension {
@UIEffect public void setActionHandler(@UI IAction actionHandler);
}
public interface ITextEditor extends IEditorPart {
// XXX not 100% sure
@SafeEffect public IEditorInput getEditorInput();
@SafeEffect public IDocumentProvider getDocumentProvider();
}
@SafeType public interface IDocumentProvider {}
@UIPackage package org.eclipse.ui.texteditor.link;
@UIPackage package org.eclipse.ui.texteditor.quickdiff;
@UIPackage package org.eclipse.ui.texteditor.rulers;
@UIPackage package org.eclipse.ui.texteditor.spelling;
@UIPackage package org.eclipse.ui.texteditor.templates;
@UIPackage package org.eclipse.ui.themes;
@UIPackage package org.eclipse.ui.views;
@UIPackage package org.eclipse.ui.views.bookmarkexplorer;
@UIPackage package org.eclipse.ui.views.contentoutline;
@UIPackage package org.eclipse.ui.views.framelist;
@UIPackage package org.eclipse.ui.views.markers;
@UIPackage package org.eclipse.ui.views.navigator;
@UIPackage package org.eclipse.ui.views.properties;
@SafeType public class PropertySheet extends PageBookView implements ISelectionListener, IShowInTarget, IShowInSource, IRegistryEventListener {
}
@UIPackage package org.eclipse.ui.views.properties.tabbed;
@UIPackage package org.eclipse.ui.views.tasklist;
@UIPackage package org.eclipse.ui.wizards;
@UIPackage package org.eclipse.ui.wizards.datatransfer;
@UIPackage package org.eclipse.ui.wizards.newresource;