public <E> E lookUpWorkingObject(E externalObject) {
        if (externalObject == null) {
            return null;
        }
        LookUpStrategy lookUpStrategy = lookUpStrategyResolver.determineLookUpStrategy(externalObject);
        return lookUpStrategy.lookUpWorkingObject(idToWorkingObjectMap, externalObject);
    }
public <E> E lookUpWorkingObject(E externalObject) {
        if (externalObject == null) {
            return null;
        }
        LookUpStrategy lookUpStrategy = lookUpStrategyResolver.determineLookUpStrategy(externalObject);
        return lookUpStrategy.lookUpWorkingObject(idToWorkingObjectMap, externalObject);
    }
public < E > E lookUpWorkingObject ( E externalObject ) { if ( externalObject == null ) { return null ; } LookUpStrategy lookUpStrategy = lookUpStrategyResolver . determineLookUpStrategy ( externalObject ) ; return lookUpStrategy . lookUpWorkingObject ( idToWorkingObjectMap , externalObject ) ; }
As defined by {@link ScoreDirector#lookUpWorkingObject(Object)}.
@param externalObject sometimes null
@return null if externalObject is null
@throws IllegalArgumentException if there is no workingObject for externalObject, if it cannot be looked up
or if the externalObject's class is not supported
@throws IllegalStateException if it cannot be looked up
@param <E> the object type
As defined by {