All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.core.runtime.PlatformObject Maven / Gradle / Ivy

/*******************************************************************************
 * Copyright (c) 2000, 2015 IBM Corporation and others.
 *
 * This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *     Sergey Prigogin (Google) - use parameterized types (bug 442021)
 *******************************************************************************/
package org.eclipse.core.runtime;

import org.eclipse.core.internal.runtime.AdapterManager;

/**
 * An abstract superclass implementing the IAdaptable
 * interface. getAdapter invocations are directed
 * to the platform's adapter manager.
 * 

* Note: In situations where it would be awkward to subclass this * class, the same effect can be achieved simply by implementing * the {@link IAdaptable} interface and explicitly forwarding * the getAdapter request to an implementation * of the {@link IAdapterManager} service. The method would look like: *

*
 *     public <T> T getAdapter(Class<T> adapter) {
 *         IAdapterManager manager = ...;//lookup the IAdapterManager service         
 *         return manager.getAdapter(this, adapter);
 *     }
 * 
*

* This class can be used without OSGi running. *

* Clients may subclass. *

* * @see IAdapterManager * @see IAdaptable */ public abstract class PlatformObject implements IAdaptable { /** * Constructs a new platform object. */ public PlatformObject() { super(); } /** * Returns an object which is an instance of the given class * associated with this object. Returns null if * no such object can be found. *

* This implementation of the method declared by IAdaptable * passes the request along to the platform's adapter manager; roughly * Platform.getAdapterManager().getAdapter(this, adapter). * Subclasses may override this method (however, if they do so, they * should invoke the method on their superclass to ensure that the * Platform's adapter manager is consulted). *

* * @param adapter the class to adapt to * @return the adapted object or null * @see IAdaptable#getAdapter(Class) */ @Override public T getAdapter(Class adapter) { return AdapterManager.getDefault().getAdapter(this, adapter); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy