blob: 53a8d9c0784c6f06721dc56e90fe0fc45b3b8ebf [file] [log] [blame]
/*
* Copyright (c) 2012, 2019 Eike Stepper (Loehne, 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.emf.cdo.view;
import org.eclipse.emf.cdo.transaction.CDOTransaction;
import org.eclipse.emf.cdo.view.CDOViewRegistry.Registration;
import org.eclipse.net4j.util.container.IContainer;
/**
* A global registry of all open {@link CDOView views} and {@link CDOTransaction transactions}.
*
* @author Eike Stepper
* @since 4.2
* @noextend This interface is not intended to be extended by clients.
* @noimplement This interface is not intended to be implemented by clients.
*/
public interface CDOViewRegistry extends IContainer<Registration>
{
/**
* The {@link ClassLoader class loader}-wide singleton instance of the {@link CDOViewRegistry view registry}.
*/
public static final CDOViewRegistry INSTANCE = org.eclipse.emf.internal.cdo.view.CDOViewRegistryImpl.INSTANCE;
/**
* A symbolic constant returned from {@link #getID(CDOView)} if the view is not registered.
*/
public static final int NOT_REGISTERED = 0;
/**
* Returns the {@link Registration#getID() IDs} of all registered {@link CDOView views}.
*/
public int[] getIDs();
/**
* Returns all registered {@link CDOView views}.
*/
public CDOView[] getViews();
/**
* Returns the {@link Registration#getID() ID} of the given {@link CDOView view} if it is registered, {@value #NOT_REGISTERED} otherwise.
*/
public int getID(CDOView view);
/**
* Returns the {@link CDOView view} with the given {@link Registration#getID() ID} if it is registered, <code>null</code> otherwise.
*/
public CDOView getView(int id);
/**
* A bidirectional mapping between a registered {@link CDOView view} and its {@link ClassLoader class loader}-wide {@link #getID() ID}.
*
* @author Eike Stepper
*/
public interface Registration
{
/**
* Returns the ID of this registration.
*/
public int getID();
/**
* Returns the {@link CDOView} of this registration.
*/
public CDOView getView();
}
}