result = rr.sfResolve((Reference)result, 0);
result = rr.sfResolve((Reference)result);
    public Object resolve(ReferenceResolver rr, Reference r, int index)        throws SmartFrogResolutionException {        // Find here        Object result = rr.sfResolveHere(getValue(),false);        if (result == null) {            throw SmartFrogResolutionException.notFound(r, null);        }        try {            // if reference ask rr to resolve it (chaining)            if (result instanceof Reference && !((Reference)result).getData()) {                result = rr.sfResolve((Reference)result, 0);                // if vector ask rr to resolve any contained reference(chaining)            } else if (result instanceof Vector) {                result = sfResolveVector(rr, (Vector)result);            }        } catch (SmartFrogResolutionException ex) {            throw new SmartFrogResolutionException(r,null,null,null,ex,null);        }        // If the end we are there!        if (index == (r.size() - 1)) {            return result;        }        // Else forward on to result        return forwardReference(result, r, index + 1);    }