Example usage for org.eclipse.jdt.core.dom AST newMethodRefParameter

List of usage examples for org.eclipse.jdt.core.dom AST newMethodRefParameter

Introduction

In this page you can find the example usage for org.eclipse.jdt.core.dom AST newMethodRefParameter.

Prototype

public MethodRefParameter newMethodRefParameter() 

Source Link

Document

Creates and returns a new method reference node.

Usage

From source file:de.akra.idocit.java.services.JavaInterfaceParserTest.java

License:Apache License

/**
 * Creates the expected {@link JavaInterfaceArtifact} for the source
 * AllIDocItJavaTests.SOURCE_DIR + "JavaInterfaceParser.java".
 * //from   ww  w  . jav  a  2s.com
 * @param fileName
 *            The file name of the source file.
 * @param cu
 *            The {@link CompilationUnit} of the source file.
 * @return {@link JavaInterfaceArtifact}
 * @throws JavaModelException
 */
@SuppressWarnings("unchecked")
private JavaInterfaceArtifact createExpectedArtifact(String fileName, CompilationUnit cu)
        throws JavaModelException {
    Addressee developer = DescribedItemUtils.findAddressee("Developer");

    JavaInterfaceArtifact artifact = new JavaInterfaceArtifact(SignatureElement.EMPTY_SIGNATURE_ELEMENT,
            CATEGORY_ARTIFACT, cu, Numerus.SINGULAR);
    artifact.setIdentifier(fileName);

    ICompilationUnit icu = (ICompilationUnit) cu.getJavaElement();
    artifact.setOriginalDocument(icu.getSource());

    AST ast = AST.newAST(AST.JLS3);

    /*
     * Interface
     */
    JavaInterface jInterface = new JavaInterface(artifact, CATEGORY_CLASS, Numerus.SINGULAR);
    jInterface.setIdentifier("JavaInterfaceParser");
    jInterface.setQualifiedIdentifier("JavaInterfaceParser");
    jInterface.addDocpart(makeDocumentation(developer, null,
            "<p><b>This is a test class used in JUnit test!!</b></p>The parser parses Java Interfaces, Classes and Enumerations and maps the structure to the iDocIt structure."));
    artifact.addInterface(jInterface);

    List<TagElement> tags = new ArrayList<TagElement>();
    TagElement tag = ast.newTagElement();
    tag.setTagName(TagElement.TAG_AUTHOR);
    TextElement textElem = ast.newTextElement();
    textElem.setText(" Dirk Meier-Eickhoff");
    tag.fragments().add(textElem);
    tags.add(tag);

    tag = ast.newTagElement();
    tag.setTagName(TagElement.TAG_SINCE);
    textElem = ast.newTextElement();
    textElem.setText(" 0.0.1");
    tag.fragments().add(textElem);
    tags.add(tag);

    tag = ast.newTagElement();
    tag.setTagName(TagElement.TAG_VERSION);
    textElem = ast.newTextElement();
    textElem.setText(" 0.0.1");
    tag.fragments().add(textElem);
    tags.add(tag);

    jInterface.setAdditionalTags(tags);

    List<JavaMethod> methods = new ArrayList<JavaMethod>();
    jInterface.setOperations(methods);

    /*
     * Constructor
     */
    JavaMethod method = new JavaMethod(jInterface, CATEGORY_CONSTRUCTOR,
            ThematicGridConstants.THEMATIC_GRID_DEFAULT_NAME, Numerus.SINGULAR);
    method.setIdentifier("JavaInterfaceParser");
    method.setQualifiedIdentifier("JavaInterfaceParser");
    method.addDocpart(makeDocumentation(developer, null, "This is the constructor."));
    methods.add(method);

    /*
     * Constructor -> input params
     */
    JavaParameters inputParams = new JavaParameters(method, CATEGORY_PARAMETERS, Numerus.SINGULAR, false);
    inputParams.setIdentifier(StringUtils.EMPTY);
    inputParams.setQualifiedIdentifier(StringUtils.EMPTY);
    method.setInputParameters(inputParams);

    JavaParameter param = new JavaParameter(inputParams, Numerus.SINGULAR, false);
    param.setIdentifier("compilationUnit");
    param.setQualifiedIdentifier("compilationUnit");
    param.setDataTypeName("CompilationUnit");
    param.setQualifiedDataTypeName("CompilationUnit");
    param.setSignatureElementPath("compilationUnit:CompilationUnit");
    param.addDocpart(makeDocumentation(developer, "compilationUnit:CompilationUnit",
            "The {@link CompilationUnit} that should be parsed &amp; checked."));
    inputParams.addParameter(param);

    param = new JavaParameter(inputParams, Numerus.SINGULAR, false);
    param.setIdentifier("artifactName");
    param.setQualifiedIdentifier("artifactName");
    param.setDataTypeName("String");
    param.setQualifiedDataTypeName("String");
    param.setSignatureElementPath("artifactName:String");
    param.addDocpart(makeDocumentation(developer, "artifactName:String",
            "The name for the CompilationUnit (in general the Java source file)."));
    inputParams.addParameter(param);

    param = new JavaParameter(inputParams, Numerus.SINGULAR, false);
    param.setIdentifier("delimiters");
    param.setQualifiedIdentifier("delimiters");
    param.setDataTypeName("Delimiters");
    param.setQualifiedDataTypeName("Delimiters");
    param.setSignatureElementPath("delimiters:Delimiters");
    param.addDocpart(makeDocumentation(developer, "delimiters:Delimiters",
            "The {@link Delimiters} for creating paths."));
    inputParams.addParameter(param);

    /*
     * Method
     */
    method = new JavaMethod(jInterface, CATEGORY_METHOD, ThematicGridConstants.THEMATIC_GRID_DEFAULT_NAME,
            Numerus.SINGULAR);
    method.setIdentifier("parse");
    method.setQualifiedIdentifier("parse");
    method.addDocpart(makeDocumentation(developer, null,
            "Parses the {@link CompilationUnit} <code>compilationUnit</code> (Java source file) and converts it to a {@link JavaInterfaceArtifact}. (Read {@link JavaInterfaceArtifact#copy(de.akra.idocit.common.structure.SignatureElement)})"));

    tags = new ArrayList<TagElement>();
    tag = ast.newTagElement();
    tag.setTagName(TagElement.TAG_SEE);
    SimpleName name = ast.newSimpleName("JavaModelException");
    tag.fragments().add(name);
    tags.add(tag);

    tag = ast.newTagElement();
    tag.setTagName(TagElement.TAG_SEE);
    MethodRef mRef = ast.newMethodRef();
    mRef.setName(ast.newSimpleName("parse"));

    MethodRefParameter mRefParam = ast.newMethodRefParameter();
    mRefParam.setType(ast.newPrimitiveType(PrimitiveType.INT));
    mRef.parameters().add(mRefParam);

    mRefParam = ast.newMethodRefParameter();
    mRefParam.setType(ast.newSimpleType(ast.newName("String")));
    mRef.parameters().add(mRefParam);

    tag.fragments().add(mRef);
    tags.add(tag);

    tag = ast.newTagElement();
    tag.setTagName(TagElement.TAG_AUTHOR);
    textElem = ast.newTextElement();
    textElem.setText(" Dirk Meier-Eickhoff");
    tag.fragments().add(textElem);
    tags.add(tag);

    tag = ast.newTagElement();
    tag.setTagName(TagElement.TAG_SINCE);
    textElem = ast.newTextElement();
    textElem.setText(" 0.0.1");
    tag.fragments().add(textElem);
    tags.add(tag);

    tag = ast.newTagElement();
    tag.setTagName(TagElement.TAG_VERSION);
    textElem = ast.newTextElement();
    textElem.setText(" 0.0.4");
    tag.fragments().add(textElem);
    tags.add(tag);

    method.setAdditionalTags(tags);
    methods.add(method);

    /*
     * Method -> input params
     */
    inputParams = new JavaParameters(method, CATEGORY_PARAMETERS, Numerus.SINGULAR, false);
    inputParams.setIdentifier(StringUtils.EMPTY);
    inputParams.setQualifiedIdentifier(StringUtils.EMPTY);
    method.setInputParameters(inputParams);

    param = new JavaParameter(inputParams, Numerus.SINGULAR, false);
    param.setIdentifier("anyNumber");
    param.setQualifiedIdentifier("anyNumber");
    param.setDataTypeName("int");
    param.setQualifiedDataTypeName("int");
    param.setSignatureElementPath("anyNumber:int");
    param.addDocpart(makeDocumentation(developer, "anyNumber:int", "This is only any number."));
    inputParams.addParameter(param);

    param = new JavaParameter(inputParams, Numerus.SINGULAR, false);
    param.setIdentifier("anyString");
    param.setQualifiedIdentifier("anyString");
    param.setDataTypeName("String");
    param.setQualifiedDataTypeName("String");
    param.setSignatureElementPath("anyString:String");
    param.addDocpart(makeDocumentation(developer, "anyString:String",
            "This is only any simple String. {@literal This Is A Literal}."));
    inputParams.addParameter(param);

    param = new JavaParameter(inputParams, Numerus.PLURAL, false);
    param.setIdentifier("names");
    param.setQualifiedIdentifier("names");
    param.setDataTypeName("List<String>");
    param.setQualifiedDataTypeName("List<String>");
    param.setSignatureElementPath("names:List<String>");
    param.addDocpart(makeDocumentation(developer, "names:List<String>", "The list of names"));
    inputParams.addParameter(param);

    /*
     * Method -> output param
     */
    JavaParameters outputParam = new JavaParameters(method, CATEGORY_RETURN_TYPE, Numerus.SINGULAR, false);
    outputParam.setIdentifier(StringUtils.EMPTY);
    outputParam.setQualifiedIdentifier(StringUtils.EMPTY);
    method.setOutputParameters(outputParam);

    param = new JavaParameter(outputParam, Numerus.SINGULAR, true);
    param.setIdentifier("InterfaceArtifact");
    param.setQualifiedIdentifier("InterfaceArtifact");
    param.setDataTypeName("InterfaceArtifact");
    param.setQualifiedDataTypeName("InterfaceArtifact");
    param.setSignatureElementPath("InterfaceArtifact:InterfaceArtifact");
    param.addDocpart(makeDocumentation(developer, "InterfaceArtifact:InterfaceArtifact",
            "a new {@link JavaInterfaceArtifact}."));
    outputParam.addParameter(param);

    /*
     * Method -> exceptions
     */
    List<JavaParameters> exceptionList = new ArrayList<JavaParameters>();
    method.setExceptions(exceptionList);

    JavaParameters exceptions = new JavaParameters(method, CATEGORY_THROWS, Numerus.SINGULAR, false);
    exceptions.setIdentifier(StringUtils.EMPTY);
    exceptions.setQualifiedIdentifier(StringUtils.EMPTY);
    exceptionList.add(exceptions);

    param = new JavaParameter(exceptions, Numerus.SINGULAR, false);
    param.setIdentifier("JavaModelException");
    param.setQualifiedIdentifier("JavaModelException");
    param.setDataTypeName("JavaModelException");
    param.setQualifiedDataTypeName("JavaModelException");
    param.setSignatureElementPath("JavaModelException:JavaModelException");
    param.addDocpart(makeDocumentation(developer, "JavaModelException:JavaModelException",
            "if an error occurs by getting the source code from ICompilationUnit."));
    exceptions.addParameter(param);

    param = new JavaParameter(exceptions, Numerus.SINGULAR, false);
    param.setIdentifier("SAXException");
    param.setQualifiedIdentifier("SAXException");
    param.setDataTypeName("SAXException");
    param.setQualifiedDataTypeName("SAXException");
    param.setSignatureElementPath("SAXException:SAXException");
    param.addDocpart(makeDocumentation(developer, "SAXException:SAXException", StringUtils.EMPTY));
    exceptions.addParameter(param);

    param = new JavaParameter(exceptions, Numerus.SINGULAR, false);
    param.setIdentifier("IOException");
    param.setQualifiedIdentifier("IOException");
    param.setDataTypeName("IOException");
    param.setQualifiedDataTypeName("IOException");
    param.setSignatureElementPath("IOException:IOException");
    param.addDocpart(makeDocumentation(developer, "IOException:IOException", StringUtils.EMPTY));
    exceptions.addParameter(param);

    param = new JavaParameter(exceptions, Numerus.SINGULAR, false);
    param.setIdentifier("ParserConfigurationException");
    param.setQualifiedIdentifier("ParserConfigurationException");
    param.setDataTypeName("ParserConfigurationException");
    param.setQualifiedDataTypeName("ParserConfigurationException");
    param.setSignatureElementPath("ParserConfigurationException:ParserConfigurationException");
    param.addDocpart(makeDocumentation(developer, "ParserConfigurationException:ParserConfigurationException",
            StringUtils.EMPTY));
    exceptions.addParameter(param);

    return artifact;
}