List of usage examples for org.eclipse.jdt.core ILocalVariable getTypeSignature
String getTypeSignature();
From source file:at.bestsolution.efxclipse.tooling.fxml.compile.FxmlAnnotationCompilationParticipant.java
License:Open Source License
/** * @param context//from ww w.j a v a2s . com */ 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.fxide.jdt.text.viewersupport.JavaElementLabelComposer.java
License:Open Source License
/** * Appends the styled label for a local variable. * * @param localVariable the element to render * @param flags the rendering flags. Flags with names starting with 'F_' are considered. *///from w w w. j av a 2 s.c o m public void appendLocalVariableLabel(ILocalVariable localVariable, long flags) { if (getFlag(flags, JavaElementLabels.F_PRE_TYPE_SIGNATURE)) { appendTypeSignatureLabel(localVariable, localVariable.getTypeSignature(), flags); fBuffer.append(' '); } if (getFlag(flags, JavaElementLabels.F_FULLY_QUALIFIED)) { appendElementLabel(localVariable.getDeclaringMember(), JavaElementLabels.M_PARAMETER_TYPES | JavaElementLabels.M_FULLY_QUALIFIED | JavaElementLabels.T_FULLY_QUALIFIED | (flags & QUALIFIER_FLAGS)); fBuffer.append('.'); } fBuffer.append(getElementName(localVariable)); if (getFlag(flags, JavaElementLabels.F_APP_TYPE_SIGNATURE)) { int offset = fBuffer.length(); fBuffer.append(JavaElementLabels.DECL_STRING); appendTypeSignatureLabel(localVariable, localVariable.getTypeSignature(), flags); // if (getFlag(flags, JavaElementLabels.COLORIZE)) { // fBuffer.setStyle(offset, fBuffer.length() - offset, DECORATIONS_STYLE); // } } // post qualification if (getFlag(flags, JavaElementLabels.F_POST_QUALIFIED)) { fBuffer.append(JavaElementLabels.CONCAT_STRING); appendElementLabel(localVariable.getDeclaringMember(), JavaElementLabels.M_PARAMETER_TYPES | JavaElementLabels.M_FULLY_QUALIFIED | JavaElementLabels.T_FULLY_QUALIFIED | (flags & QUALIFIER_FLAGS)); } }
From source file:com.codenvy.ide.ext.java.server.javadoc.JavaElementLabelComposer.java
License:Open Source License
/** * Appends the styled label for a local variable. * * @param localVariable the element to render * @param flags the rendering flags. Flags with names starting with 'F_' are considered. *///ww w . j a v a 2s .c o m public void appendLocalVariableLabel(ILocalVariable localVariable, long flags) { if (getFlag(flags, JavaElementLabels.F_PRE_TYPE_SIGNATURE)) { appendTypeSignatureLabel(localVariable, localVariable.getTypeSignature(), flags); fBuffer.append(' '); } if (getFlag(flags, JavaElementLabels.F_FULLY_QUALIFIED)) { appendElementLabel(localVariable.getDeclaringMember(), JavaElementLabels.M_PARAMETER_TYPES | JavaElementLabels.M_FULLY_QUALIFIED | JavaElementLabels.T_FULLY_QUALIFIED | (flags & QUALIFIER_FLAGS)); fBuffer.append('.'); } fBuffer.append(getElementName(localVariable)); if (getFlag(flags, JavaElementLabels.F_APP_TYPE_SIGNATURE)) { int offset = fBuffer.length(); fBuffer.append(JavaElementLabels.DECL_STRING); appendTypeSignatureLabel(localVariable, localVariable.getTypeSignature(), flags); if (getFlag(flags, JavaElementLabels.COLORIZE)) { // fBuffer.setStyle(offset, fBuffer.length() - offset, DECORATIONS_STYLE); } } // post qualification if (getFlag(flags, JavaElementLabels.F_POST_QUALIFIED)) { fBuffer.append(JavaElementLabels.CONCAT_STRING); appendElementLabel(localVariable.getDeclaringMember(), JavaElementLabels.M_PARAMETER_TYPES | JavaElementLabels.M_FULLY_QUALIFIED | JavaElementLabels.T_FULLY_QUALIFIED | (flags & QUALIFIER_FLAGS)); } }
From source file:com.codenvy.ide.ext.java.server.SourcesFromBytecodeGenerator.java
License:Open Source License
private void generateType(IType type, StringBuilder builder, String indent) throws JavaModelException { int flags = 0; appendAnnotationLabels(type.getAnnotations(), flags, builder, indent.substring(TAB.length())); builder.append(indent.substring(TAB.length())); builder.append(getModifiers(type.getFlags(), type.getFlags())).append(' ').append(getJavaType(type)) .append(' ').append(type.getElementName()); if (type.isResolved()) { BindingKey key = new BindingKey(type.getKey()); if (key.isParameterizedType()) { String[] typeArguments = key.getTypeArguments(); appendTypeArgumentSignaturesLabel(type, typeArguments, flags, builder); } else {//from w w w . j a va 2 s.c o m String[] typeParameters = Signature.getTypeParameters(key.toSignature()); appendTypeParameterSignaturesLabel(typeParameters, builder); } } else { appendTypeParametersLabels(type.getTypeParameters(), flags, builder); } if (!"java.lang.Object".equals(type.getSuperclassName()) && !"java.lang.Enum".equals(type.getSuperclassName())) { builder.append(" extends "); if (type.getSuperclassTypeSignature() != null) { // appendTypeSignatureLabel(type, type.getSuperclassTypeSignature(), flags, builder); builder.append(Signature.toString(type.getSuperclassTypeSignature())); } else { builder.append(type.getSuperclassName()); } } if (!type.isAnnotation()) { if (type.getSuperInterfaceNames().length != 0) { builder.append(" implements "); String[] signatures = type.getSuperInterfaceTypeSignatures(); if (signatures.length == 0) { signatures = type.getSuperInterfaceNames(); } for (String interfaceFqn : signatures) { builder.append(Signature.toString(interfaceFqn)).append(", "); } builder.delete(builder.length() - 2, builder.length()); } } builder.append(" {\n"); List<IField> fields = new ArrayList<>(); if (type.isEnum()) { builder.append(indent); for (IField field : type.getFields()) { if (field.isEnumConstant()) { builder.append(field.getElementName()).append(", "); } else { fields.add(field); } } if (", ".equals(builder.substring(builder.length() - 2))) { builder.delete(builder.length() - 2, builder.length()); } builder.append(";\n"); } else { fields.addAll(Arrays.asList(type.getFields())); } for (IField field : fields) { if (Flags.isSynthetic(field.getFlags())) { continue; } appendAnnotationLabels(field.getAnnotations(), flags, builder, indent); builder.append(indent).append(getModifiers(field.getFlags(), type.getFlags())); if (builder.charAt(builder.length() - 1) != ' ') { builder.append(' '); } builder.append(Signature.toCharArray(field.getTypeSignature().toCharArray())).append(' ') .append(field.getElementName()); if (field.getConstant() != null) { builder.append(" = "); if (field.getConstant() instanceof String) { builder.append('"').append(field.getConstant()).append('"'); } else { builder.append(field.getConstant()); } } builder.append(";\n"); } builder.append('\n'); for (IMethod method : type.getMethods()) { if (method.getElementName().equals("<clinit>") || Flags.isSynthetic(method.getFlags())) { continue; } appendAnnotationLabels(method.getAnnotations(), flags, builder, indent); BindingKey resolvedKey = method.isResolved() ? new BindingKey(method.getKey()) : null; String resolvedSig = (resolvedKey != null) ? resolvedKey.toSignature() : null; builder.append(indent).append(getModifiers(method.getFlags(), type.getFlags())); if (builder.charAt(builder.length() - 1) != ' ') { builder.append(' '); } if (resolvedKey != null) { if (resolvedKey.isParameterizedMethod()) { String[] typeArgRefs = resolvedKey.getTypeArguments(); if (typeArgRefs.length > 0) { appendTypeArgumentSignaturesLabel(method, typeArgRefs, flags, builder); builder.append(' '); } } else { String[] typeParameterSigs = Signature.getTypeParameters(resolvedSig); if (typeParameterSigs.length > 0) { appendTypeParameterSignaturesLabel(typeParameterSigs, builder); builder.append(' '); } } } else if (method.exists()) { ITypeParameter[] typeParameters = method.getTypeParameters(); if (typeParameters.length > 0) { appendTypeParametersLabels(typeParameters, flags, builder); builder.append(' '); } } if (!method.isConstructor()) { String returnTypeSig = resolvedSig != null ? Signature.getReturnType(resolvedSig) : method.getReturnType(); appendTypeSignatureLabel(method, returnTypeSig, 0, builder); builder.append(' '); // builder.append(Signature.toCharArray(method.getReturnType().toCharArray())).append(' '); } builder.append(method.getElementName()); builder.append('('); for (ILocalVariable variable : method.getParameters()) { builder.append(Signature.toString(variable.getTypeSignature())); builder.append(' ').append(variable.getElementName()).append(", "); } if (builder.charAt(builder.length() - 1) == ' ') { builder.delete(builder.length() - 2, builder.length()); } builder.append(')'); String[] exceptionTypes = method.getExceptionTypes(); if (exceptionTypes != null && exceptionTypes.length != 0) { builder.append(' ').append("throws "); for (String exceptionType : exceptionTypes) { builder.append(Signature.toCharArray(exceptionType.toCharArray())).append(", "); } builder.delete(builder.length() - 2, builder.length()); } if (type.isInterface() || type.isAnnotation()) { builder.append(";\n\n"); } else { builder.append(" {").append(METHOD_BODY).append("}\n\n"); } } for (IType iType : type.getTypes()) { generateType(iType, builder, indent + indent); } builder.append(indent.substring(TAB.length())); builder.append("}\n"); }
From source file:com.ecfeed.ui.common.JavaModelAnalyser.java
License:Open Source License
public static String getTypeName(IMethod method, ILocalVariable parameter) { String typeSignaure = parameter.getTypeSignature(); switch (typeSignaure) { case Signature.SIG_BOOLEAN: return com.ecfeed.core.adapter.java.Constants.TYPE_NAME_BOOLEAN; case Signature.SIG_BYTE: return com.ecfeed.core.adapter.java.Constants.TYPE_NAME_BYTE; case Signature.SIG_CHAR: return com.ecfeed.core.adapter.java.Constants.TYPE_NAME_CHAR; case Signature.SIG_DOUBLE: return com.ecfeed.core.adapter.java.Constants.TYPE_NAME_DOUBLE; case Signature.SIG_FLOAT: return com.ecfeed.core.adapter.java.Constants.TYPE_NAME_FLOAT; case Signature.SIG_INT: return com.ecfeed.core.adapter.java.Constants.TYPE_NAME_INT; case Signature.SIG_LONG: return com.ecfeed.core.adapter.java.Constants.TYPE_NAME_LONG; case Signature.SIG_SHORT: return com.ecfeed.core.adapter.java.Constants.TYPE_NAME_SHORT; case "QString;": return com.ecfeed.core.adapter.java.Constants.TYPE_NAME_STRING; default:/*from ww w. j a v a 2 s . c o m*/ return getVariableType(method, parameter).getFullyQualifiedName().replaceAll("\\$", "\\."); } }
From source file:com.ecfeed.ui.common.JavaModelAnalyser.java
License:Open Source License
protected static IType getLocalVariableType(IMethod method, ILocalVariable var) { try {//from w ww.jav a 2 s.co m IType declaringType = method.getDeclaringType(); String variableTypeName = Signature.toString(var.getTypeSignature()); for (IType type : declaringType.getTypes()) { if (type.getElementName().equals(variableTypeName)) { return type; } } } catch (JavaModelException e) { } return null; }
From source file:com.ecfeed.ui.common.JavaModelAnalyser.java
License:Open Source License
protected static IType getPackageVariableType(IMethod method, ILocalVariable var) { IType declaringType = method.getDeclaringType(); String packageName = declaringType.getPackageFragment().getElementName(); String variableTypeName = Signature.toString(var.getTypeSignature()); String qualifiedName = packageName + "." + variableTypeName; IType type = getIType(qualifiedName); return type;//from w w w. ja v a 2 s . c o m }
From source file:com.ecfeed.ui.common.JavaModelAnalyser.java
License:Open Source License
protected static IType getImportedVariableType(IMethod method, ILocalVariable var) { String variableTypeName = Signature.toString(var.getTypeSignature()); try {/* ww w . j av a2s. co m*/ for (IImportDeclaration importDeclaration : method.getDeclaringType().getCompilationUnit() .getImports()) { String qualifiedName; if (importDeclaration.isOnDemand() == false) { qualifiedName = importDeclaration.getElementName(); } else { qualifiedName = importDeclaration.getElementName().replaceFirst("\\*", variableTypeName); } IType type = getIType(qualifiedName); if (type != null && type.getElementName().equals(variableTypeName)) { return type; } } } catch (JavaModelException e1) { } return null; }
From source file:com.microsoft.javapkgsrv.JavaElementLabelComposer.java
License:Open Source License
/** * Appends the styled label for a local variable. * * @param localVariable the element to render * @param flags the rendering flags. Flags with names starting with 'F_' are considered. *///from w w w . j a va2 s. c o m public void appendLocalVariableLabel(ILocalVariable localVariable, long flags) { if (getFlag(flags, F_PRE_TYPE_SIGNATURE)) { appendTypeSignatureLabel(localVariable, localVariable.getTypeSignature(), flags); fBuffer.append(' '); } if (getFlag(flags, F_FULLY_QUALIFIED)) { appendElementLabel(localVariable.getDeclaringMember(), M_PARAMETER_TYPES | M_FULLY_QUALIFIED | T_FULLY_QUALIFIED | (flags & QUALIFIER_FLAGS)); fBuffer.append('.'); } fBuffer.append(getElementName(localVariable)); if (getFlag(flags, F_APP_TYPE_SIGNATURE)) { int offset = fBuffer.length(); fBuffer.append(DECL_STRING); appendTypeSignatureLabel(localVariable, localVariable.getTypeSignature(), flags); } // post qualification if (getFlag(flags, F_POST_QUALIFIED)) { fBuffer.append(CONCAT_STRING); appendElementLabel(localVariable.getDeclaringMember(), M_PARAMETER_TYPES | M_FULLY_QUALIFIED | T_FULLY_QUALIFIED | (flags & QUALIFIER_FLAGS)); } }
From source file:com.testify.ecfeed.ui.common.JavaModelAnalyser.java
License:Open Source License
public static String getTypeName(IMethod method, ILocalVariable parameter) { String typeSignaure = parameter.getTypeSignature(); switch (typeSignaure) { case Signature.SIG_BOOLEAN: return com.testify.ecfeed.adapter.java.Constants.TYPE_NAME_BOOLEAN; case Signature.SIG_BYTE: return com.testify.ecfeed.adapter.java.Constants.TYPE_NAME_BYTE; case Signature.SIG_CHAR: return com.testify.ecfeed.adapter.java.Constants.TYPE_NAME_CHAR; case Signature.SIG_DOUBLE: return com.testify.ecfeed.adapter.java.Constants.TYPE_NAME_DOUBLE; case Signature.SIG_FLOAT: return com.testify.ecfeed.adapter.java.Constants.TYPE_NAME_FLOAT; case Signature.SIG_INT: return com.testify.ecfeed.adapter.java.Constants.TYPE_NAME_INT; case Signature.SIG_LONG: return com.testify.ecfeed.adapter.java.Constants.TYPE_NAME_LONG; case Signature.SIG_SHORT: return com.testify.ecfeed.adapter.java.Constants.TYPE_NAME_SHORT; case "QString;": return com.testify.ecfeed.adapter.java.Constants.TYPE_NAME_STRING; default://from w w w . j a v a 2s .c o m return getVariableType(method, parameter).getFullyQualifiedName().replaceAll("\\$", "\\."); } }