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.team.core.synchronize; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.team.core.ITeamStatus;
Classes which implement this interface provide methods that deal with the change events that are generated by a SyncInfoSet.

Implementors of this interface it can be added to a sync info set using the addSyncSetChangedListener method and removed using the removeSyncSetChangedListener method.

The originating sync set holds modification locks on the sync info set to ensure that no more changes occur until after the current change event is processed. The implementors of this interface must not modify the set within the scope of the listener's methods. If modifications are attempted a runtime exception will occur.

See Also:
Since:3.0
/** * Classes which implement this interface provide methods that deal with the * change events that are generated by a {@link SyncInfoSet}. * <p> * Implementors of this interface it can * be added to a sync info set using the <code>addSyncSetChangedListener</code> * method and removed using the <code>removeSyncSetChangedListener</code> * method. * </p><p> * The originating sync set holds modification locks on the sync info set to ensure * that no more changes occur until after the current change event is processed. * The implementors of this interface must not modify the set within the scope of * the listener's methods. If modifications are attempted a runtime exception will occur. * </p> * @see ISyncInfoSetChangeEvent * @since 3.0 */
public interface ISyncInfoSetChangeListener {
Sent when the contents of a SyncInfoSet have been reset or the listener has been connected to the set for the first time using SyncInfoSet#connect(ISyncInfoSetChangeListener, IProgressMonitor). Listeners should discard any state they have accumulated from the originating sync info set and re-obtain their state from the set. The originating sync set will be locked for modification when this method is called.

Clients should not modify the set within this method and other threads that try to modify the set will be blocked until the reset is processed.

Params:
/** * Sent when the contents of a {@link SyncInfoSet} have been reset or the * listener has been connected to the set for the first time using * <code>SyncInfoSet#connect(ISyncInfoSetChangeListener, IProgressMonitor)</code>. Listeners * should discard any state they have accumulated from the originating sync info set * and re-obtain their state from the set. The originating sync set will be * locked for modification when this method is called. * <p> * Clients should not modify the set within this method and other threads that try to * modify the set will be blocked until the reset is processed. * </p> * @param set the originating {@link SyncInfoSet} */
public void syncInfoSetReset(SyncInfoSet set, IProgressMonitor monitor);
Sent when a SyncInfoSet changes. For example, when a resource's synchronization state changes. The originating sync set will be locked for modification when this method is called. Clients should not modify the set within this method and other threads that try to modify the set will be blocked until the change is processed.

If the originating set is an instance of SyncInfoTree then the event will be an instance of ISyncInfoTreeChangeEvent. Clients can determine this using an instancof check.

Params:
  • event – an event containing information about the change.
/** * Sent when a {@link SyncInfoSet} changes. For example, when a resource's * synchronization state changes. The originating sync set will be * locked for modification when this method is called. * Clients should not modify the set within this method and other threads that try to * modify the set will be blocked until the change is processed. * <p> * If the originating set is an instance of <code>SyncInfoTree</code> then * the event will be an instance of <code>ISyncInfoTreeChangeEvent</code>. * Clients can determine this using an <code>instancof</code> check. * </p> * @param event an event containing information about the change. */
public void syncInfoChanged(ISyncInfoSetChangeEvent event, IProgressMonitor monitor);
This method is called when errors have occurred calculating the SyncInfo for a resource. The resource associated with the error is available from the ITeamStatus. This event only provides the latest errors that occurred. An array of all errors can be retrieved directly from the set.
Params:
  • set – the originating SyncInfoSet
  • errors – the errors that occurred during the latest set modifications
  • monitor – a progress monitor
/** * This method is called when errors have occurred calculating the <code>SyncInfo</code> * for a resource. The resource associated with the error is available from the * <code>ITeamStatus</code>. This event only provides the latest errors that occurred. * An array of all errors can be retrieved directly from the set. * * @param set the originating {@link SyncInfoSet} * @param errors the errors that occurred during the latest set modifications * @param monitor a progress monitor */
public void syncInfoSetErrors(SyncInfoSet set, ITeamStatus[] errors, IProgressMonitor monitor); }