public Class<?> initialize(Class<?> sourceValueType) {

    if (_methods != null) {
      if (_methods.length == 0)
        return sourceValueType;
      return _methods[_methods.length - 1].getReturnType();
    }

    _methods = new PropertyMethod[_properties.length];

    for (int i = 0; i < _properties.length; i++) {
      _methods[i] = _resolver.getPropertyMethod(sourceValueType, _properties[i]);
      sourceValueType = _methods[i].getReturnType();
    }

    return sourceValueType;
  }