Example usage for org.eclipse.jdt.core IMethod getElementName

List of usage examples for org.eclipse.jdt.core IMethod getElementName

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IMethod getElementName.

Prototype

@Override
String getElementName();

Source Link

Document

Returns the simple name of this method.

Usage

From source file:ar.com.tadp.xml.rinzo.jdt.wizards.NewJAXBParserWizard.java

License:Open Source License

private RootTypeFactoryMethod getRootType() {
    try {/*from w  ww  .  j  ava  2  s  .  c  o m*/
        IMethod[] methods = this.newParserPage.getPackageFragmentRoot()
                .getPackageFragment(this.newParserPage.getPackage()).getCompilationUnit("ObjectFactory.java")
                .getType("ObjectFactory").getMethods();
        for (IMethod method : methods) {
            String returnType = method.getReturnType();
            if (returnType.contains("JAXBElement")) {
                String rootType = returnType.substring(returnType.indexOf("<"), returnType.lastIndexOf(">"));
                rootType = rootType.substring(rootType.indexOf("Q") + 1, rootType.lastIndexOf(";"));
                return new RootTypeFactoryMethod(method.getElementName(), rootType);
            }
        }
        for (IMethod method : methods) {
            String returnType = method.getReturnType();
            if (!returnType.contains(".") && method.getElementName().startsWith("create")) {
                String rootType = returnType.substring(returnType.indexOf("Q") + 1,
                        returnType.lastIndexOf(";"));
                return new RootTypeFactoryMethod(method.getElementName(), rootType);
            }
        }

    } catch (JavaModelException e) {
        XMLEditorPlugin.log(e);
    }
    return null;
}

From source file:at.bestsolution.efxclipse.tooling.fxgraph.ui.util.JDTHelper.java

License:Open Source License

private TypeData createData(List<IMethod> allMethods, IJavaProject jproject) throws JavaModelException {
    TypeData d = new TypeData();
    for (IMethod m : allMethods) {
        if (!Flags.isPublic(m.getFlags())) {
            continue;
        }/* www .  j a v  a  2s  .c  om*/

        if (m.getElementName().startsWith("impl_") || m.getElementName().startsWith("getImpl_")) {
            continue;
        }

        if (m.getElementName().startsWith("get") && m.getParameterNames().length == 0) {
            String returnSignature = Signature.toString(m.getReturnType());
            if (returnSignature.startsWith("javafx.event.EventHandler<? super ")
                    || returnSignature.startsWith("javafx.event.EventHandler<")) {
                String eventType;
                if (returnSignature.startsWith("javafx.event.EventHandler<? super ")) {
                    eventType = returnSignature.substring("javafx.event.EventHandler<? super ".length(),
                            returnSignature.length() - 1);
                } else {
                    eventType = returnSignature.substring("javafx.event.EventHandler<".length(),
                            returnSignature.length() - 1);
                }

                EventValueProperty p = new EventValueProperty(m, extractAttributename(m.getElementName()),
                        m.getParent().getElementName(), eventType);
                d.properties.add(p);

            } else {
                String propName = extractAttributename(m.getElementName());
                String ownerName = m.getParent().getElementName();
                boolean isReadonly = isReadonlySetter(propName, allMethods);

                if ("double".equals(returnSignature) || "float".equals(returnSignature)) {
                    if (!isReadonly) {
                        FloatingValueProperty p = new FloatingValueProperty(m, propName, ownerName,
                                returnSignature);
                        d.properties.add(p);
                    }
                } else if ("int".equals(returnSignature) || "long".equals(returnSignature)
                        || "short".equals(returnSignature) || "byte".equals(returnSignature)
                        || "char".equals(returnSignature)) {
                    if (!isReadonly) {
                        IntegerValueProperty p = new IntegerValueProperty(m, propName, ownerName,
                                returnSignature);
                        d.properties.add(p);
                    }
                } else {
                    IType type;
                    if (returnSignature.indexOf('<') == -1) {
                        type = jproject.findType(returnSignature);
                    } else {
                        type = jproject.findType(returnSignature.substring(0, returnSignature.indexOf('<')));
                    }

                    if (type == null) {
                        continue;
                    }

                    if (type.isEnum()) {
                        if (!isReadonly) {
                            EnumValueProperty p = new EnumValueProperty(m, propName, ownerName, returnSignature,
                                    type);
                            d.properties.add(p);
                        }
                    } else {
                        boolean isLists = false;
                        boolean isMap = false;
                        if ("java.util.List".equals(type.getFullyQualifiedName())) {
                            isLists = true;
                        } else {
                            for (String i : type.getSuperInterfaceNames()) {
                                if (i.equals("java.util.List")) {
                                    isLists = true;
                                }
                            }
                        }

                        if (!isLists) {
                            if ("java.util.Map".equals(type.getFullyQualifiedName())) {
                                isMap = true;
                            } else {
                                for (String i : type.getSuperInterfaceNames()) {
                                    if (i.equals("java.util.Map")) {
                                        isMap = true;
                                    }
                                }
                            }
                        }

                        if (isLists) {
                            String listType;
                            if (returnSignature.indexOf('<') != -1) {
                                listType = returnSignature.substring(returnSignature.indexOf('<') + 1,
                                        returnSignature.lastIndexOf('>'));
                            } else {
                                listType = "?";
                            }

                            if (!propName.endsWith("Unmodifiable")) {
                                ListValueProperty p = new ListValueProperty(m, propName, ownerName, listType,
                                        isReadonly);
                                d.properties.add(p);
                            }
                        } else if (isMap) {
                            MapValueProperty p = new MapValueProperty(m, propName, ownerName);
                            d.properties.add(p);
                        } else if (type.getFullyQualifiedName().equals("java.lang.String")) {
                            if (!isReadonly) {
                                StringValueProperty p = new StringValueProperty(m, propName, ownerName,
                                        returnSignature);
                                d.properties.add(p);
                            }
                        } else {
                            if (!isReadonly) {
                                List<Proposal> props = getProposals(type, jproject);
                                ElementValueProperty p = new ElementValueProperty(m, propName, ownerName,
                                        returnSignature, props);
                                d.properties.add(p);
                            }
                        }
                    }
                }
            }
        } else if (m.getElementName().startsWith("is") && m.getParameterNames().length == 0
                && "Z".equals(m.getReturnType())) {
            String propName = extractAttributename(m.getElementName());
            boolean isReadonly = isReadonlySetter(propName, allMethods);

            if (!isReadonly) {
                BooleanValueProperty p = new BooleanValueProperty(m, propName, m.getParent().getElementName(),
                        "boolean");
                d.properties.add(p);
            }
        }
    }
    return d;
}

From source file:at.bestsolution.efxclipse.tooling.fxgraph.ui.util.JDTHelper.java

License:Open Source License

private List<Proposal> getProposals(IType type, IJavaProject jp) {
    if (PROVIDERS.containsKey(type.getFullyQualifiedName())) {
        return PROVIDERS.get(type.getFullyQualifiedName()).getProposals(jp);
    } else {// w ww  .  j av  a 2  s . co  m
        try {
            for (IMethod m : type.getMethods()) {
                if (Flags.isStatic(m.getFlags()) && "valueOf".equals(m.getElementName())) {
                    Proposal p = new Proposal("\"<string>\"");
                    p.hover = new HoverImpl(m);
                    return Collections.singletonList(p);
                }
            }
        } catch (JavaModelException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    return Collections.emptyList();
}

From source file:at.bestsolution.efxclipse.tooling.fxgraph.ui.util.JDTHelper.java

License:Open Source License

private boolean isReadonlySetter(String name, List<IMethod> methods) throws JavaModelException {
    for (IMethod m : methods) {
        if (!m.getElementName().startsWith("set") || !Flags.isPublic(m.getFlags())) {
            continue;
        }/*w  w  w . j  a v a2s  .  c  o m*/

        if (name.equals(extractAttributename(m.getElementName()))) {
            return false;
        }
    }
    return true;
}

From source file:at.bestsolution.efxclipse.tooling.fxgraph.ui.util.prop.KeyCombinationProvider.java

License:Open Source License

protected IMethod findMethod(IJavaProject jp) {
    try {/* w ww  .  j a  v a  2s  .  co  m*/
        IType t = jp.findType("javafx.scene.input.KeyCombination");
        for (IMethod m : t.getMethods()) {
            if (Flags.isStatic(m.getFlags()) && "valueOf".equals(m.getElementName())) {
                return m;
            }
        }
    } catch (JavaModelException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return null;
}

From source file:at.bestsolution.efxclipse.tooling.fxgraph.ui.util.prop.PaintProposalProvider.java

License:Open Source License

protected IMethod findMethod(IJavaProject jp) {
    try {/* ww  w  .  jav a2 s.c  om*/
        IType t = jp.findType("javafx.scene.paint.Color");
        for (IMethod m : t.getMethods()) {
            if (Flags.isStatic(m.getFlags()) && "web".equals(m.getElementName())
                    && m.getParameters().length == 1) {
                return m;
            }
        }
    } catch (JavaModelException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return null;
}

From source file:at.bestsolution.efxclipse.tooling.fxml.compile.FxmlAnnotationCompilationParticipant.java

License:Open Source License

/**
 * @param context/*from  ww w.  ja v a 2s  .  c om*/
 */
private List<CategorizedProblem> checkCU(final ICompilationUnit unit,
        final Collection<CategorizedProblem> existingProblems) {
    List<CategorizedProblem> problems = new ArrayList<CategorizedProblem>();
    if (existingProblems != null) {
        problems.addAll(existingProblems);
    }
    List<String> fxmlMethods = new ArrayList<String>();
    try {
        IJavaProject project = unit.getJavaProject();
        for (IType type : unit.getTypes()) {
            for (IMethod method : type.getMethods()) {
                for (IAnnotation a : method.getAnnotations()) {
                    if ("FXML".equals(a.getElementName())) { ////$NON-NLS-1$
                        if (fxmlMethods.contains(method.getElementName())) {
                            DefaultProblem problem = new DefaultProblem(unit.getElementName().toCharArray(),
                                    "JavaFX controller method name is not unique: " //$NON-NLS-1$
                                            + method.getElementName(),
                                    IProblem.ExternalProblemNotFixable, new String[0],
                                    ProblemSeverities.Warning, method.getSourceRange().getOffset(),
                                    method.getSourceRange().getOffset() + method.getSourceRange().getLength(),
                                    getMethodLineNumber(type, method), 0);
                            problems.add(problem);
                        }
                        fxmlMethods.add(method.getElementName());

                        switch (method.getNumberOfParameters()) {
                        case 0:
                            break;
                        case 1: {
                            ILocalVariable pType = method.getParameters()[0];
                            String[][] resolvedType = type
                                    .resolveType(Signature.toString(pType.getTypeSignature()));
                            IType parameterType = null;
                            if (resolvedType != null) {
                                parameterType = project.findType(resolvedType[0][0] + "." + resolvedType[0][1]); //$NON-NLS-1$
                            }
                            if (resolvedType == null || !Util.assignable(parameterType,
                                    project.findType("javafx.event.Event"))) { ////$NON-NLS-1$
                                DefaultProblem problem = new DefaultProblem(unit.getElementName().toCharArray(),
                                        "Parameter '" //$NON-NLS-1$
                                                + pType.getElementName()
                                                + "' is not assignable to javafx.event.Event", //$NON-NLS-1$
                                        IProblem.ExternalProblemNotFixable, new String[0],
                                        ProblemSeverities.Warning, pType.getSourceRange().getOffset(),
                                        pType.getSourceRange().getOffset() + pType.getSourceRange().getLength(),
                                        getMethodLineNumber(type, method), 0);
                                problems.add(problem);
                            }

                        }
                            break;
                        default: {
                            DefaultProblem problem = new DefaultProblem(unit.getElementName().toCharArray(),
                                    "JavaFX controller method must have 0 or exactly 1 argument", //$NON-NLS-1$
                                    IProblem.ExternalProblemNotFixable, new String[0],
                                    ProblemSeverities.Warning, method.getSourceRange().getOffset(),
                                    method.getSourceRange().getOffset() + method.getSourceRange().getLength(),
                                    getMethodLineNumber(type, method), 0);
                            problems.add(problem);
                        }
                        }
                    }
                }
            }
        }
    } catch (JavaModelException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return problems;
}

From source file:at.bestsolution.efxclipse.tooling.model.internal.FXClass.java

License:Open Source License

@Override
public IMethod getValueOf() {
    //      if( ! valueOfResolved ) {
    try {/*from  ww w  .j av  a2 s. co  m*/
        for (IMethod m : type.getMethods()) {
            if (Flags.isStatic(m.getFlags()) && Flags.isPublic(m.getFlags())
                    && "valueOf".equals(m.getElementName())) {
                if (m.getParameterTypes().length == 1) {
                    //                     String fqnType = Util.toFQN((IType) m.getParent(),m.getParameterTypes()[0]);
                    //                     if("java.lang.String".equals( fqnType) ) {
                    valueOfMethod = m;
                    break;
                    //                     }
                }
            }
        }
        valueOfResolved = true;
    } catch (JavaModelException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    //      }
    return valueOfMethod;
}

From source file:at.bestsolution.efxclipse.tooling.model.internal.FXCtrlClass.java

License:Open Source License

private Map<String, IFXCtrlEventMethod> getLocalEventMethods() {
    if (eventMethods == null) {
        eventMethods = new HashMap<String, IFXCtrlEventMethod>();
        try {//from   w ww  .  j a v a2s.c  om
            for (IMethod m : type.getMethods()) {
                boolean annotated = false;
                for (IAnnotation a : m.getAnnotations()) {
                    if (a.getElementName().endsWith("FXML")) {
                        annotated = true;
                        break;
                    }
                }

                if (annotated) {
                    String[] types = m.getParameterTypes();
                    if (types.length <= 1) {
                        if (types.length == 1) {
                            String erasedFQNType = Util.getFQNType((IType) m.getParent(),
                                    Signature.getTypeErasure(Signature.toString(types[0])));
                            if (FXCtrlEventMethod.isEventMethod(javaProject, erasedFQNType)) {
                                eventMethods.put(m.getElementName(),
                                        new FXCtrlEventMethod(this, m, erasedFQNType));
                            }
                        } else {
                            // Only if there's not already a method with the same id
                            if (!eventMethods.containsKey(m.getElementName())) {
                                eventMethods.put(m.getElementName(), new FXCtrlEventMethod(this, m, null));
                            }
                        }
                    }
                }

            }
        } catch (JavaModelException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    return eventMethods;
}

From source file:at.bestsolution.efxclipse.tooling.model.internal.FXObjectPoperty.java

License:Open Source License

public IMethod getValueOfMethod() {
    if (!valueOfMethodResolved) {
        try {/*  w w w  .j ava2  s. c om*/
            for (IMethod m : getElementType().getMethods()) {
                if (Flags.isStatic(m.getFlags()) && Flags.isPublic(m.getFlags())
                        && "valueOf".equals(m.getElementName())) {
                    valueOfMethod = m;
                }
            }
        } catch (JavaModelException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        valueOfMethodResolved = true;
    }

    return valueOfMethod;
}