Copyright (c) 2000, 2006 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
/*******************************************************************************
* Copyright (c) 2000, 2006 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
*******************************************************************************/
package org.eclipse.jface.text;
Interface for text related objects which may be used in the multi-threaded
context and thus must provide a way to prevent concurrent access and
manipulation.
In order to reduce the probability of dead locks clients should synchronize
their access to these objects by using the provided lock object rather than
the object itself.
Managing objects can use the setLockObject
method in order to
synchronize whole sets of objects.
Since: 3.0
/**
* Interface for text related objects which may be used in the multi-threaded
* context and thus must provide a way to prevent concurrent access and
* manipulation.
* <p>
* In order to reduce the probability of dead locks clients should synchronize
* their access to these objects by using the provided lock object rather than
* the object itself.</p>
* <p>
* Managing objects can use the <code>setLockObject</code> method in order to
* synchronize whole sets of objects.</p>
*
* @since 3.0
*/
public interface ISynchronizable {
Sets the lock object for this object. If the lock object is not
null
subsequent calls to specified methods of this object
are synchronized on this lock object. Which methods are synchronized is
specified by the implementer.
You should not override an existing lock object unless you own
that lock object yourself. Use the existing lock object instead.
Params: - lockObject – the lock object. May be
null
.
/**
* Sets the lock object for this object. If the lock object is not
* <code>null</code> subsequent calls to specified methods of this object
* are synchronized on this lock object. Which methods are synchronized is
* specified by the implementer.
* <p>
* <em>You should not override an existing lock object unless you own
* that lock object yourself. Use the existing lock object instead.</em>
* </p>
*
* @param lockObject the lock object. May be <code>null</code>.
*/
void setLockObject(Object lockObject);
Returns the lock object or null
if there is none. Clients
should use the lock object in order to synchronize concurrent access to
the implementer.
Returns: the lock object or null
/**
* Returns the lock object or <code>null</code> if there is none. Clients
* should use the lock object in order to synchronize concurrent access to
* the implementer.
*
* @return the lock object or <code>null</code>
*/
Object getLockObject();
}