org.eclipse.emf.compare.diff.service
Class DiffEngineRegistry

java.lang.Object
  extended by java.util.AbstractMap<K,V>
      extended by java.util.HashMap<java.lang.String,java.util.List<java.lang.Object>>
          extended by org.eclipse.emf.compare.diff.service.DiffEngineRegistry
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.util.Map<java.lang.String,java.util.List<java.lang.Object>>

public final class DiffEngineRegistry
extends java.util.HashMap<java.lang.String,java.util.List<java.lang.Object>>

This registry will be initialized with all the diff engines that could be parsed from the extension points if Eclipse is running according to EMFPlugin.IS_ECLIPSE_RUNNING, else it will contain only the two generic ones. Clients can add their own diff engines in the registry for standalone usage.

See Also:
Serialized Form

Field Summary
static DiffEngineRegistry INSTANCE
          Singleton instance of the registry.
 
Method Summary
 java.util.List<DiffEngineDescriptor> getDescriptors(java.lang.String fileExtension)
          This will return the list of engines available for a given fileExtension.
 IDiffEngine getHighestEngine(java.lang.String fileExtension)
          Returns the highest priority IDiffEngine registered against the given file extension.
 void putValue(java.lang.String key, java.lang.Object value)
          Adds the given value in the list of engines known for the given extension.
 
Methods inherited from class java.util.HashMap
clear, clone, containsKey, containsValue, entrySet, get, isEmpty, keySet, put, putAll, remove, size, values
 
Methods inherited from class java.util.AbstractMap
equals, hashCode, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Map
equals, hashCode
 

Field Detail

INSTANCE

public static final DiffEngineRegistry INSTANCE
Singleton instance of the registry.

Method Detail

getDescriptors

public java.util.List<DiffEngineDescriptor> getDescriptors(java.lang.String fileExtension)
This will return the list of engines available for a given fileExtension. Engines must have been registered through an extension point for this to return anything else than an empty list. Note that engines registered against will always be returned at the end of this list.

Parameters:
fileExtension - Extension of the file we seek the diff engines for.
Returns:
The list of available engines.

getHighestEngine

public IDiffEngine getHighestEngine(java.lang.String fileExtension)
Returns the highest priority IDiffEngine registered against the given file extension. Specific engines will always come before generic ones regardless of their priority. If engines have been manually added to the list, the latest added will be returned.

Parameters:
fileExtension - The extension of the file we need an IDiffEngine for.
Returns:
The best IDiffEngine for the given file extension.

putValue

public void putValue(java.lang.String key,
                     java.lang.Object value)
Adds the given value in the list of engines known for the given extension.

Parameters:
key - The file extension we wish to add an engine for.
value - Engine to be added.

Copyright 2006 IBM Corporation and others.
All Rights Reserved.