else { nextType = nextTypeAttempt; }
nextType = nextTypeAttempt;
  protected void fillInAssociationValueCompletionProposals(IJavaProject _project, IType _associatedType, String _token, int _tokenOffset, int _offset, List _completionProposalsList) throws JavaModelException {    String partialToken = partialToken(_token, _tokenOffset, _offset).toLowerCase();    String[] accessors = partialToken.split("\\.");    // Split tosses empty tokens, so we check to see if we're on the last "." and fake an empty token in the list    if (partialToken.length() > 0 && partialToken.charAt(partialToken.length() - 1) == '.') {      String[] addedBlankAccessor = new String[accessors.length + 1];      System.arraycopy(accessors, 0, addedBlankAccessor, 0, accessors.length);      addedBlankAccessor[addedBlankAccessor.length - 1] = "";      accessors = addedBlankAccessor;    }    IType nextType = _associatedType;    int offset = _tokenOffset;    for (int i = 0; nextType != null && i < accessors.length - 1; i++) {      String nextTypeName = nextType(nextType, accessors[i]);      if (nextTypeName != null) {        nextTypeName = Signature.toString(nextTypeName);        IType nextTypeAttempt = _project.findType(nextTypeName);        if (nextTypeAttempt == null) {          String[][] resolvedTypes = nextType.resolveType(nextTypeName);          if (resolvedTypes != null && resolvedTypes.length == 1) {            nextTypeName = Signature.toQualifiedName(resolvedTypes[0]);            nextType = _project.findType(nextTypeName);          }          else {            nextType = null;          }        }        else {          nextType = nextTypeAttempt;        }      }      else {        nextType = null;      }    }    if (nextType != null) {      // Jump forward to the last '.'      int previousTokenLength = partialToken.lastIndexOf('.') + 1;      _tokenOffset += previousTokenLength;      String accessor = accessors[accessors.length - 1];      _token = accessors[accessors.length - 1];      ITypeHierarchy typeHierarchy = nextType.newSupertypeHierarchy(null);      IType[] types = typeHierarchy.getAllTypes();      for (int typeNum = 0; typeNum < types.length; typeNum++) {        IField[] fields = types[typeNum].getFields();        for (int fieldNum = 0; fieldNum < fields.length; fieldNum++) {          findMemberProposals(fields[fieldNum], accessor, WODCompletionProcessor.FIELD_PREFIXES, _token, _tokenOffset, _offset, _completionProposalsList, 0, true);        }        IMethod[] methods = types[typeNum].getMethods();        for (int methodsNum = 0; methodsNum < methods.length; methodsNum++) {          findMemberProposals(methods[methodsNum], accessor, WODCompletionProcessor.GET_METHOD_PREFIXES, _token, _tokenOffset, _offset, _completionProposalsList, 0, true);        }      }    }  }