org.eclipse.xtend.core.dispatch
Class DispatchingSupport

java.lang.Object
  extended by org.eclipse.xtend.core.dispatch.DispatchingSupport

public class DispatchingSupport
extends java.lang.Object

Author:
Sven Efftinge - Initial contribution and API

Constructor Summary
DispatchingSupport()
           
 
Method Summary
protected  void collectDispatchMethods(JvmGenericType type, com.google.common.collect.Multimap<Pair<java.lang.String,java.lang.Integer>,JvmOperation> result)
           
protected  int compare(JvmOperation o1, JvmOperation o2)
           
 JvmOperation findSyntheticDispatchMethod(XtendClass clazz, Pair<java.lang.String,java.lang.Integer> signature)
           
 com.google.common.collect.Multimap<JvmOperation,JvmOperation> getDispatcher2dispatched(XtendClass clazz, boolean isLocalOnly)
           
 com.google.common.collect.Multimap<Pair<java.lang.String,java.lang.Integer>,JvmOperation> getDispatchMethods(JvmGenericType type)
           
protected  int getMaxDistanceToObject(JvmTypeReference type)
           
protected  boolean isDispatchOperation(JvmOperation operation, JvmGenericType contextType)
           
protected  void removeNonLocalMethods(JvmGenericType type, com.google.common.collect.Multimap<Pair<java.lang.String,java.lang.Integer>,JvmOperation> result)
           
 java.util.List<JvmOperation> sort(java.util.Collection<JvmOperation> collection)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DispatchingSupport

public DispatchingSupport()
Method Detail

getDispatchMethods

public com.google.common.collect.Multimap<Pair<java.lang.String,java.lang.Integer>,JvmOperation> getDispatchMethods(JvmGenericType type)

getDispatcher2dispatched

public com.google.common.collect.Multimap<JvmOperation,JvmOperation> getDispatcher2dispatched(XtendClass clazz,
                                                                                              boolean isLocalOnly)

findSyntheticDispatchMethod

public JvmOperation findSyntheticDispatchMethod(XtendClass clazz,
                                                Pair<java.lang.String,java.lang.Integer> signature)

collectDispatchMethods

protected void collectDispatchMethods(JvmGenericType type,
                                      com.google.common.collect.Multimap<Pair<java.lang.String,java.lang.Integer>,JvmOperation> result)

removeNonLocalMethods

protected void removeNonLocalMethods(JvmGenericType type,
                                     com.google.common.collect.Multimap<Pair<java.lang.String,java.lang.Integer>,JvmOperation> result)

isDispatchOperation

protected boolean isDispatchOperation(JvmOperation operation,
                                      JvmGenericType contextType)

sort

public java.util.List<JvmOperation> sort(java.util.Collection<JvmOperation> collection)

compare

protected int compare(JvmOperation o1,
                      JvmOperation o2)

getMaxDistanceToObject

protected int getMaxDistanceToObject(JvmTypeReference type)