List of usage examples for org.eclipse.jdt.core IMethod getElementName
@Override String getElementName();
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; }