List of usage examples for org.eclipse.jdt.core.dom MethodRef getQualifier
public Name getQualifier()
null if there is none. From source file:at.bestsolution.fxide.jdt.corext.dom.ASTFlattener.java
License:Open Source License
@Override public boolean visit(MethodRef node) { if (node.getQualifier() != null) { node.getQualifier().accept(this); }/*w w w. j a v a 2s .co m*/ this.fBuffer.append("#");//$NON-NLS-1$ node.getName().accept(this); this.fBuffer.append("(");//$NON-NLS-1$ for (Iterator<MethodRefParameter> it = node.parameters().iterator(); it.hasNext();) { MethodRefParameter e = it.next(); e.accept(this); if (it.hasNext()) { this.fBuffer.append(",");//$NON-NLS-1$ } } this.fBuffer.append(")");//$NON-NLS-1$ return false; }
From source file:at.bestsolution.fxide.jdt.text.javadoc.JavadocContentAccess2.java
License:Open Source License
private void handleLink(List<? extends ASTNode> fragments) { //TODO: Javadoc shortens type names to minimal length according to context int fs = fragments.size(); if (fs > 0) { Object first = fragments.get(0); String refTypeName = null; String refMemberName = null; String[] refMethodParamTypes = null; String[] refMethodParamNames = null; if (first instanceof Name) { Name name = (Name) first; refTypeName = name.getFullyQualifiedName(); } else if (first instanceof MemberRef) { MemberRef memberRef = (MemberRef) first; Name qualifier = memberRef.getQualifier(); refTypeName = qualifier == null ? "" : qualifier.getFullyQualifiedName(); //$NON-NLS-1$ refMemberName = memberRef.getName().getIdentifier(); } else if (first instanceof MethodRef) { MethodRef methodRef = (MethodRef) first; Name qualifier = methodRef.getQualifier(); refTypeName = qualifier == null ? "" : qualifier.getFullyQualifiedName(); //$NON-NLS-1$ refMemberName = methodRef.getName().getIdentifier(); List<MethodRefParameter> params = methodRef.parameters(); int ps = params.size(); refMethodParamTypes = new String[ps]; refMethodParamNames = new String[ps]; for (int i = 0; i < ps; i++) { MethodRefParameter param = params.get(i); refMethodParamTypes[i] = ASTNodes.asString(param.getType()); SimpleName paramName = param.getName(); if (paramName != null) refMethodParamNames[i] = paramName.getIdentifier(); }/* w w w.ja v a 2s . c o m*/ } if (refTypeName != null) { fBuf.append("<a href='"); //$NON-NLS-1$ try { String scheme = JavaElementLinks.JAVADOC_SCHEME; String uri = JavaElementLinks.createURI(scheme, fElement, refTypeName, refMemberName, refMethodParamTypes); fBuf.append(uri); } catch (URISyntaxException e) { //TODO e.printStackTrace(); } fBuf.append("'>"); //$NON-NLS-1$ if (fs > 1 && !(fs == 2 && isWhitespaceTextElement(fragments.get(1)))) { handleContentElements(fragments.subList(1, fs), true); } else { fBuf.append(refTypeName); if (refMemberName != null) { if (refTypeName.length() > 0) { fBuf.append('.'); } fBuf.append(refMemberName); if (refMethodParamTypes != null) { fBuf.append('('); for (int i = 0; i < refMethodParamTypes.length; i++) { String pType = refMethodParamTypes[i]; fBuf.append(pType); String pName = refMethodParamNames[i]; if (pName != null) { fBuf.append(' ').append(pName); } if (i < refMethodParamTypes.length - 1) { fBuf.append(", "); //$NON-NLS-1$ } } fBuf.append(')'); } } } fBuf.append("</a>"); //$NON-NLS-1$ } else { handleContentElements(fragments); } } }
From source file:coloredide.utils.CopiedNaiveASTFlattener.java
License:Open Source License
public boolean visit(MethodRef node) { if (node.getQualifier() != null) { node.getQualifier().accept(this); }//from w ww . j a v a 2s.c o m this.buffer.append("#");//$NON-NLS-1$ node.getName().accept(this); this.buffer.append("(");//$NON-NLS-1$ for (Iterator it = node.parameters().iterator(); it.hasNext();) { MethodRefParameter e = (MethodRefParameter) it.next(); e.accept(this); if (it.hasNext()) { this.buffer.append(",");//$NON-NLS-1$ } } this.buffer.append(")");//$NON-NLS-1$ return false; }
From source file:com.codenvy.ide.ext.java.server.javadoc.JavadocContentAccess2.java
License:Open Source License
private void handleLink(List<? extends ASTNode> fragments) { //TODO: Javadoc shortens type names to minimal length according to context int fs = fragments.size(); if (fs > 0) { Object first = fragments.get(0); String refTypeName = null; String refMemberName = null; String[] refMethodParamTypes = null; String[] refMethodParamNames = null; if (first instanceof Name) { Name name = (Name) first; refTypeName = name.getFullyQualifiedName(); } else if (first instanceof MemberRef) { MemberRef memberRef = (MemberRef) first; Name qualifier = memberRef.getQualifier(); refTypeName = qualifier == null ? "" : qualifier.getFullyQualifiedName(); //$NON-NLS-1$ refMemberName = memberRef.getName().getIdentifier(); } else if (first instanceof MethodRef) { MethodRef methodRef = (MethodRef) first; Name qualifier = methodRef.getQualifier(); refTypeName = qualifier == null ? "" : qualifier.getFullyQualifiedName(); //$NON-NLS-1$ refMemberName = methodRef.getName().getIdentifier(); List<MethodRefParameter> params = methodRef.parameters(); int ps = params.size(); refMethodParamTypes = new String[ps]; refMethodParamNames = new String[ps]; for (int i = 0; i < ps; i++) { MethodRefParameter param = params.get(i); refMethodParamTypes[i] = ASTNodes.asString(param.getType()); SimpleName paramName = param.getName(); if (paramName != null) refMethodParamNames[i] = paramName.getIdentifier(); }// w ww .jav a 2 s . co m } if (refTypeName != null) { fBuf.append("<a href='"); //$NON-NLS-1$ try { String scheme = urlPrefix; String uri = JavaElementLinks.createURI(scheme, fElement, refTypeName, refMemberName, refMethodParamTypes); fBuf.append(uri); } catch (URISyntaxException e) { LOG.error(e.getMessage(), e); } fBuf.append("'>"); //$NON-NLS-1$ if (fs > 1 && !(fs == 2 && isWhitespaceTextElement(fragments.get(1)))) { handleContentElements(fragments.subList(1, fs), true); } else { fBuf.append(refTypeName); if (refMemberName != null) { if (refTypeName.length() > 0) { fBuf.append('.'); } fBuf.append(refMemberName); if (refMethodParamTypes != null) { fBuf.append('('); for (int i = 0; i < refMethodParamTypes.length; i++) { String pType = refMethodParamTypes[i]; fBuf.append(pType); String pName = refMethodParamNames[i]; if (pName != null) { fBuf.append(' ').append(pName); } if (i < refMethodParamTypes.length - 1) { fBuf.append(", "); //$NON-NLS-1$ } } fBuf.append(')'); } } } fBuf.append("</a>"); //$NON-NLS-1$ } else { handleContentElements(fragments); } } }
From source file:com.servoy.eclipse.docgenerator.parser.JavadocExtractor.java
License:Open Source License
@Override public boolean visit(MethodRef node) { storeWhitespaceIfAny(node, -1);//from w ww .ja va2 s . c o m ReferenceMetaModel ref = extractBinding(node.resolveBinding(), node.getQualifier(), node.getName(), node.parameters()); javadocsStack.peek().addPart(ref); return false; }
From source file:de.akra.idocit.java.utils.JavadocUtils.java
License:Apache License
/** * Extracts the plain text from the <code>fragments</code>. * //from w w w . j ava 2s. c om * @param fragments * The fragments to read. * @param offset * The index at which should be started to read. If the fragments are e.g. * from a "@param" tag, then it is followed by the the variable name which * should be skipped. Therefore the <code>offset</code> should be 1. * @return The text from the <code>fragments</code>. */ @SuppressWarnings("unchecked") public static String readFragments(final List<ASTNode> fragments, final int offset) { final StringBuffer html = new StringBuffer(); if (fragments != null && fragments.size() >= offset) { for (final ASTNode fragment : fragments.subList(offset, fragments.size())) { final StringBuffer tempText = new StringBuffer(fragment.getLength()); switch (fragment.getNodeType()) { case ASTNode.TEXT_ELEMENT: { final TextElement textElem = (TextElement) fragment; tempText.append(textElem.getText()); break; } case ASTNode.SIMPLE_NAME: case ASTNode.QUALIFIED_NAME: { final Name name = (Name) fragment; tempText.append(name.getFullyQualifiedName()); break; } case ASTNode.METHOD_REF: { final MethodRef mRef = (MethodRef) fragment; if (mRef.getQualifier() != null) { final Name qualifier = mRef.getQualifier(); tempText.append(qualifier.getFullyQualifiedName()); } tempText.append('#'); tempText.append(mRef.getName().getIdentifier()); tempText.append('('); // write parameter list final List<MethodRefParameter> mRefParameters = (List<MethodRefParameter>) mRef.parameters(); for (final MethodRefParameter mRefParam : mRefParameters) { tempText.append(ReflectionHelper.extractIdentifierFrom(mRefParam.getType())); if (mRefParam.isVarargs()) { tempText.append("..."); } if (mRefParam.getName() != null) { tempText.append(' '); tempText.append(mRefParam.getName().getFullyQualifiedName()); } tempText.append(','); } if (!mRefParameters.isEmpty()) { // remove last comma tempText.deleteCharAt(tempText.length() - 1); } tempText.append(')'); break; } case ASTNode.MEMBER_REF: { final MemberRef mRef = (MemberRef) fragment; if (mRef.getQualifier() != null) { final Name qualifier = mRef.getQualifier(); tempText.append(qualifier.getFullyQualifiedName()); } tempText.append('#'); tempText.append(mRef.getName().getIdentifier()); break; } case ASTNode.TAG_ELEMENT: { final TagElement tagElem = (TagElement) fragment; if (tagElem.isNested()) { tempText.append('{'); } tempText.append(tagElem.getTagName()); tempText.append(' '); tempText.append(readFragments((List<ASTNode>) tagElem.fragments(), 0)); if (tagElem.isNested()) { tempText.append('}'); } break; } default: { // Do nothing! logger.info("The fragment " + String.valueOf(fragment) + " has nodetype-value " + fragment.getNodeType()); } } appendWithSpace(html, tempText); } // delete leading space, that was added by Javadoc to separate a tag // from the following text (e.g. '@param My documentation'). if (html.length() > 0 && html.charAt(0) == ' ') { html.deleteCharAt(0); } } return html.toString(); }
From source file:java5totext.input.JDTVisitor.java
License:Open Source License
@Override public void endVisit(org.eclipse.jdt.core.dom.MethodRef node) { MethodRef element = (MethodRef) this.binding.get(node); this.initializeNode(element, node); if (this.binding.get(node.getName()) != null) element.setMethod((NamedElementRef) this.binding.get(node.getName())); if (this.binding.get(node.getQualifier()) != null) element.setQualifier((NamedElementRef) this.binding.get(node.getQualifier())); for (Iterator<?> i = node.parameters().iterator(); i.hasNext();) { MethodRefParameter itElement = (MethodRefParameter) this.binding.get(i.next()); if (itElement != null) element.getParameters().add(itElement); }//from w w w .j ava2 s . c om }
From source file:org.eclipse.emf.texo.generator.ImportReferenceCollector.java
License:Open Source License
@Override public boolean visit(final MethodRef node) { Name qualifier = node.getQualifier(); if (qualifier != null) { typeRefFound(qualifier);/*from w w w . ja va 2 s. c om*/ } List<?> list = node.parameters(); if (list != null) { doVisitChildren(list); // visit MethodRefParameter with Type } return false; }
From source file:org.eclipse.jdt.core.dom.ASTConverter.java
License:Open Source License
protected void recordNodes(org.eclipse.jdt.internal.compiler.ast.Javadoc javadoc, TagElement tagElement) { Iterator fragments = tagElement.fragments().listIterator(); while (fragments.hasNext()) { ASTNode node = (ASTNode) fragments.next(); if (node.getNodeType() == ASTNode.MEMBER_REF) { MemberRef memberRef = (MemberRef) node; Name name = memberRef.getName(); // get compiler node and record nodes int start = name.getStartPosition(); org.eclipse.jdt.internal.compiler.ast.ASTNode compilerNode = javadoc.getNodeStartingAt(start); if (compilerNode != null) { recordNodes(name, compilerNode); recordNodes(node, compilerNode); }/* w ww. j av a 2 s .co m*/ // Replace qualifier to have all nodes recorded if (memberRef.getQualifier() != null) { org.eclipse.jdt.internal.compiler.ast.TypeReference typeRef = null; if (compilerNode instanceof JavadocFieldReference) { org.eclipse.jdt.internal.compiler.ast.Expression expression = ((JavadocFieldReference) compilerNode).receiver; if (expression instanceof org.eclipse.jdt.internal.compiler.ast.TypeReference) { typeRef = (org.eclipse.jdt.internal.compiler.ast.TypeReference) expression; } } else if (compilerNode instanceof JavadocMessageSend) { org.eclipse.jdt.internal.compiler.ast.Expression expression = ((JavadocMessageSend) compilerNode).receiver; if (expression instanceof org.eclipse.jdt.internal.compiler.ast.TypeReference) { typeRef = (org.eclipse.jdt.internal.compiler.ast.TypeReference) expression; } } if (typeRef != null) { recordName(memberRef.getQualifier(), typeRef); } } } else if (node.getNodeType() == ASTNode.METHOD_REF) { MethodRef methodRef = (MethodRef) node; Name name = methodRef.getName(); // get method name start position int start = methodRef.getStartPosition(); this.scanner.resetTo(start, start + name.getStartPosition() + name.getLength()); int token; try { nextToken: while ((token = this.scanner.getNextToken()) != TerminalTokens.TokenNameEOF && token != TerminalTokens.TokenNameLPAREN) { if (token == TerminalTokens.TokenNameERROR && this.scanner.currentCharacter == '#') { start = this.scanner.getCurrentTokenEndPosition() + 1; break nextToken; } } } catch (InvalidInputException e) { // ignore } // get compiler node and record nodes org.eclipse.jdt.internal.compiler.ast.ASTNode compilerNode = javadoc.getNodeStartingAt(start); // record nodes if (compilerNode != null) { recordNodes(methodRef, compilerNode); // get type ref org.eclipse.jdt.internal.compiler.ast.TypeReference typeRef = null; if (compilerNode instanceof org.eclipse.jdt.internal.compiler.ast.JavadocAllocationExpression) { typeRef = ((org.eclipse.jdt.internal.compiler.ast.JavadocAllocationExpression) compilerNode).type; if (typeRef != null) recordNodes(name, compilerNode); } else if (compilerNode instanceof org.eclipse.jdt.internal.compiler.ast.JavadocMessageSend) { org.eclipse.jdt.internal.compiler.ast.Expression expression = ((org.eclipse.jdt.internal.compiler.ast.JavadocMessageSend) compilerNode).receiver; if (expression instanceof org.eclipse.jdt.internal.compiler.ast.TypeReference) { typeRef = (org.eclipse.jdt.internal.compiler.ast.TypeReference) expression; } recordNodes(name, compilerNode); } // record name and qualifier if (typeRef != null && methodRef.getQualifier() != null) { recordName(methodRef.getQualifier(), typeRef); } } // Resolve parameters Iterator parameters = methodRef.parameters().listIterator(); while (parameters.hasNext()) { MethodRefParameter param = (MethodRefParameter) parameters.next(); org.eclipse.jdt.internal.compiler.ast.Expression expression = (org.eclipse.jdt.internal.compiler.ast.Expression) javadoc .getNodeStartingAt(param.getStartPosition()); if (expression != null) { recordNodes(param, expression); if (expression instanceof JavadocArgumentExpression) { JavadocArgumentExpression argExpr = (JavadocArgumentExpression) expression; org.eclipse.jdt.internal.compiler.ast.TypeReference typeRef = argExpr.argument.type; if (this.ast.apiLevel >= AST.JLS3) { param.setVarargs(argExpr.argument.isVarArgs()); } recordNodes(param.getType(), typeRef); if (param.getType().isSimpleType()) { recordName(((SimpleType) param.getType()).getName(), typeRef); } else if (param.getType().isArrayType()) { Type type = ((ArrayType) param.getType()).getElementType(); recordNodes(type, typeRef); if (type.isSimpleType()) { recordName(((SimpleType) type).getName(), typeRef); } } } } } } else if (node.getNodeType() == ASTNode.SIMPLE_NAME || node.getNodeType() == ASTNode.QUALIFIED_NAME) { org.eclipse.jdt.internal.compiler.ast.ASTNode compilerNode = javadoc .getNodeStartingAt(node.getStartPosition()); recordName((Name) node, compilerNode); } else if (node.getNodeType() == ASTNode.TAG_ELEMENT) { // resolve member and method references binding recordNodes(javadoc, (TagElement) node); } } }
From source file:org.eclipse.modisco.java.discoverer.internal.io.java.JDTVisitor.java
License:Open Source License
@Override public void endVisit(final org.eclipse.jdt.core.dom.MethodRef node) { MethodRef element = (MethodRef) this.binding.get(node); initializeNode(element, node);/* ww w. j a v a 2 s . c o m*/ ASTNode modiscoNode = this.binding.get(node.getName()); if (JDTVisitorUtils.completeBinding(element, modiscoNode, "method")) { //$NON-NLS-1$ element.setMethod((AbstractMethodDeclaration) modiscoNode); } if (this.binding.get(node.getQualifier()) != null) { element.setQualifier(JDTVisitorUtils.completeTypeAccess(this.binding.get(node.getQualifier()), this)); } for (Iterator<?> i = node.parameters().iterator(); i.hasNext();) { MethodRefParameter itElement = (MethodRefParameter) this.binding.get(i.next()); if (itElement != null) { element.getParameters().add(itElement); } } }