List of usage examples for org.eclipse.jdt.core Signature getTypeSignatureKind
public static int getTypeSignatureKind(String typeSignature)
From source file:at.bestsolution.fxide.jdt.corext.util.MethodOverrideTester.java
License:Open Source License
private StringBuffer internalGetSubstitutedTypeName(String typeSig, IMember context, boolean erasure, StringBuffer buf) throws JavaModelException { int sigKind = Signature.getTypeSignatureKind(typeSig); switch (sigKind) { case Signature.BASE_TYPE_SIGNATURE: return buf.append(Signature.toString(typeSig)); case Signature.ARRAY_TYPE_SIGNATURE: internalGetSubstitutedTypeName(Signature.getElementType(typeSig), context, erasure, buf); for (int i = Signature.getArrayCount(typeSig); i > 0; i--) { buf.append('[').append(']'); }//from ww w . j av a 2 s . com return buf; case Signature.CLASS_TYPE_SIGNATURE: { String erasureSig = Signature.getTypeErasure(typeSig); String erasureName = Signature.getSimpleName(Signature.toString(erasureSig)); char ch = erasureSig.charAt(0); if (ch == Signature.C_RESOLVED) { buf.append(erasureName); } else if (ch == Signature.C_UNRESOLVED) { // could be a type variable if (erasure) { buf.append(getVariableErasure(context, erasureName)); } else { buf.append(getVariableSubstitution(context, erasureName)); } } else { Assert.isTrue(false, "Unknown class type signature"); //$NON-NLS-1$ } if (!erasure) { String[] typeArguments = Signature.getTypeArguments(typeSig); if (typeArguments.length > 0) { buf.append('<'); for (int i = 0; i < typeArguments.length; i++) { if (i > 0) { buf.append(','); } internalGetSubstitutedTypeName(typeArguments[i], context, erasure, buf); } buf.append('>'); } } return buf; } case Signature.TYPE_VARIABLE_SIGNATURE: String varName = Signature.toString(typeSig); if (erasure) { return buf.append(getVariableErasure(context, varName)); } else { return buf.append(getVariableSubstitution(context, varName)); } case Signature.WILDCARD_TYPE_SIGNATURE: { buf.append('?'); char ch = typeSig.charAt(0); if (ch == Signature.C_STAR) { return buf; } else if (ch == Signature.C_EXTENDS) { buf.append(" extends "); //$NON-NLS-1$ } else { buf.append(" super "); //$NON-NLS-1$ } return internalGetSubstitutedTypeName(typeSig.substring(1), context, erasure, buf); } case Signature.CAPTURE_TYPE_SIGNATURE: return internalGetSubstitutedTypeName(typeSig.substring(1), context, erasure, buf); default: Assert.isTrue(false, "Unhandled type signature kind"); //$NON-NLS-1$ return buf; } }
From source file:at.bestsolution.fxide.jdt.text.viewersupport.JavaElementLabelComposer.java
License:Open Source License
protected void appendTypeSignatureLabel(IJavaElement enclosingElement, String typeSig, long flags) { int sigKind = Signature.getTypeSignatureKind(typeSig); switch (sigKind) { case Signature.BASE_TYPE_SIGNATURE: fBuffer.append(Signature.toString(typeSig)); break;/*from w w w .j a v a 2 s. co m*/ case Signature.ARRAY_TYPE_SIGNATURE: appendTypeSignatureLabel(enclosingElement, Signature.getElementType(typeSig), flags); for (int dim = Signature.getArrayCount(typeSig); dim > 0; dim--) { fBuffer.append('[').append(']'); } break; case Signature.CLASS_TYPE_SIGNATURE: String baseType = getSimpleTypeName(enclosingElement, typeSig); fBuffer.append(baseType); String[] typeArguments = Signature.getTypeArguments(typeSig); appendTypeArgumentSignaturesLabel(enclosingElement, typeArguments, flags); break; case Signature.TYPE_VARIABLE_SIGNATURE: fBuffer.append(getSimpleTypeName(enclosingElement, typeSig)); break; case Signature.WILDCARD_TYPE_SIGNATURE: char ch = typeSig.charAt(0); if (ch == Signature.C_STAR) { //workaround for bug 85713 fBuffer.append('?'); } else { if (ch == Signature.C_EXTENDS) { fBuffer.append("? extends "); //$NON-NLS-1$ appendTypeSignatureLabel(enclosingElement, typeSig.substring(1), flags); } else if (ch == Signature.C_SUPER) { fBuffer.append("? super "); //$NON-NLS-1$ appendTypeSignatureLabel(enclosingElement, typeSig.substring(1), flags); } } break; case Signature.CAPTURE_TYPE_SIGNATURE: appendTypeSignatureLabel(enclosingElement, typeSig.substring(1), flags); break; case Signature.INTERSECTION_TYPE_SIGNATURE: String[] typeBounds = Signature.getIntersectionTypeBounds(typeSig); appendTypeBoundsSignaturesLabel(enclosingElement, typeBounds, flags); break; default: // unknown } }
From source file:ca.mcgill.cs.swevo.jayfx.FastConverter.java
License:Open Source License
/** * Returns an IElement describing the argument Java element. Not designed to * be able to find initializer blocks or arrays. * /*from w ww .jav a2s.c o m*/ * @param pElement * Never null. * @return Never null */ public IElement getElement(final IJavaElement pElement) throws ConversionException { // assert( pElement != null ); IElement lReturn = null; if (pElement instanceof IType) lReturn = this.getClassElement((IType) pElement); else if (pElement instanceof IField) { final IElement lClass = this.getClassElement(((IField) pElement).getDeclaringType()); lReturn = FlyweightElementFactory.getElement(Category.FIELD, lClass.getId() + "." + ((IField) pElement).getElementName()); } else if (pElement instanceof IMethod) { final IElement lClass = this.getClassElement(((IMethod) pElement).getDeclaringType()); String lName = ((IMethod) pElement).getElementName(); try { if (((IMethod) pElement).isConstructor()) lName = "<init>"; } catch (final JavaModelException pException) { throw new ConversionException(pException); } String lSignature = "("; final String[] lParams = ((IMethod) pElement).getParameterTypes(); for (int i = 0; i < lParams.length - 1; i++) { String param = null; if (Signature.getTypeSignatureKind(lParams[i]) == Signature.TYPE_VARIABLE_SIGNATURE) // its // a // type // variable, // erase // it. param = "Ljava.lang.Object;"; else param = lParams[i]; lSignature += this.resolveType(param, ((IMethod) pElement).getDeclaringType()) + ","; } if (lParams.length > 0) { String param = lParams[lParams.length - 1]; if (Signature .getTypeSignatureKind(Signature.getElementType(param)) == Signature.TYPE_VARIABLE_SIGNATURE) // its // a // type // variable, // erase // it. param = "Ljava.lang.Object;"; else param = lParams[lParams.length - 1]; if (param.charAt(0) == 'Q' && param.charAt(1) == 'T') param = "Ljava.lang.Object;"; lSignature += this.resolveType(param, ((IMethod) pElement).getDeclaringType()); } lSignature += ")"; lReturn = FlyweightElementFactory.getElement(Category.METHOD, lClass.getId() + "." + lName + lSignature); } else if (pElement instanceof IAJCodeElement) { final String lName = ((IAJCodeElement) pElement).getElementName(); System.out.println(lName); } if (lReturn == null) { System.err.println("Error with element: " + pElement); throw new IllegalStateException("In trouble."); } return lReturn; }
From source file:ca.uvic.chisel.javasketch.internal.JavaSearchUtils.java
License:Open Source License
public static boolean isSimilar(IMethod method1, IMethod method2) { String[] myParams = method1.getParameterTypes(); String[] theirParams = method2.getParameterTypes(); int myParamsLength = myParams.length; String[] simpleNames = new String[myParamsLength]; for (int i = 0; i < myParamsLength; i++) { String erasure = Signature.getTypeErasure(myParams[i]); simpleNames[i] = Signature.getSimpleName(Signature.toString(erasure)); }//from w w w . j a v a 2s . c om String name = method1.getElementName(); if (name.equals(method2.getElementName())) { if (myParamsLength == theirParams.length) { for (int i = 0; i < myParamsLength; i++) { String mySimpleName = simpleNames[i]; String simpleName2 = Signature .getSimpleName(Signature.toString(Signature.getTypeErasure(theirParams[i]))); //first, check for generics. If my param is not generic, //but theirs is, it is a match. int myTypeKind = Signature.getTypeSignatureKind(myParams[i]); int theirTypeKind = Signature.getTypeSignatureKind(theirParams[i]); switch (theirTypeKind) { case Signature.TYPE_VARIABLE_SIGNATURE: case Signature.WILDCARD_TYPE_SIGNATURE: case Signature.CAPTURE_TYPE_SIGNATURE: switch (myTypeKind) { case Signature.CLASS_TYPE_SIGNATURE: case Signature.ARRAY_TYPE_SIGNATURE: continue; } } //otherwise, try and match exactly if (!mySimpleName.equals(simpleName2)) { return false; } } return true; } } return false; }
From source file:com.codenvy.ide.ext.java.server.SourcesFromBytecodeGenerator.java
License:Open Source License
protected void appendTypeSignatureLabel(IJavaElement enclosingElement, String typeSig, long flags, StringBuilder builder) {/*from w ww .jav a 2 s . com*/ int sigKind = Signature.getTypeSignatureKind(typeSig); switch (sigKind) { case Signature.BASE_TYPE_SIGNATURE: builder.append(Signature.toString(typeSig)); break; case Signature.ARRAY_TYPE_SIGNATURE: appendTypeSignatureLabel(enclosingElement, Signature.getElementType(typeSig), flags, builder); for (int dim = Signature.getArrayCount(typeSig); dim > 0; dim--) { builder.append('[').append(']'); } break; case Signature.CLASS_TYPE_SIGNATURE: String baseType = getSimpleTypeName(enclosingElement, typeSig); builder.append(baseType); String[] typeArguments = Signature.getTypeArguments(typeSig); appendTypeArgumentSignaturesLabel(enclosingElement, typeArguments, flags, builder); break; case Signature.TYPE_VARIABLE_SIGNATURE: builder.append(getSimpleTypeName(enclosingElement, typeSig)); break; case Signature.WILDCARD_TYPE_SIGNATURE: char ch = typeSig.charAt(0); if (ch == Signature.C_STAR) { //workaround for bug 85713 builder.append('?'); } else { if (ch == Signature.C_EXTENDS) { builder.append("? extends "); //$NON-NLS-1$ appendTypeSignatureLabel(enclosingElement, typeSig.substring(1), flags, builder); } else if (ch == Signature.C_SUPER) { builder.append("? super "); //$NON-NLS-1$ appendTypeSignatureLabel(enclosingElement, typeSig.substring(1), flags, builder); } } break; case Signature.CAPTURE_TYPE_SIGNATURE: appendTypeSignatureLabel(enclosingElement, typeSig.substring(1), flags, builder); break; case Signature.INTERSECTION_TYPE_SIGNATURE: String[] typeBounds = Signature.getIntersectionTypeBounds(typeSig); appendTypeBoundsSignaturesLabel(enclosingElement, typeBounds, flags, builder); break; default: // unknown } }
From source file:com.google.gdt.eclipse.appengine.rpc.util.CompilationUnitCreator.java
License:Open Source License
private boolean addImport(Set<String> names, List<String> entityNameList, IImportDeclaration[] importDeclarations, ImportsManager imports) { boolean addedImport = false; for (String name : names) { if (Signature.getTypeSignatureKind(name) == Signature.CLASS_TYPE_SIGNATURE) { if (entityNameList.contains(Signature.toString(name))) { addedImport = true;/* ww w. jav a 2s . c o m*/ } else { for (IImportDeclaration imp : importDeclarations) { if (imp.getElementName().contains(Signature.toString(name))) { imports.addImport(imp.getElementName()); } } } } } return addedImport; }
From source file:com.google.gdt.eclipse.appengine.rpc.util.JavaUtils.java
License:Open Source License
private static List<String> getElementSignatures(String typeName) { List<String> list = new ArrayList<String>(); if (Signature.getTypeSignatureKind(typeName) == Signature.ARRAY_TYPE_SIGNATURE) { list.add(Signature.getElementType(typeName)); } else {//from ww w .j a va 2s . c om String[] names = Signature.getTypeArguments(typeName); list.add(Signature.getTypeErasure(typeName)); if (names.length > 0) { list.add(names[0]); } } return list; }
From source file:com.google.gdt.eclipse.appengine.rpc.wizards.helpers.RpcServiceLayerCreator.java
License:Open Source License
private boolean addImport(List<String> names, List<String> entityNameList, IImportDeclaration[] importDeclarations, ImportsManager imports) { boolean addedImport = false; for (String name : names) { if (Signature.getTypeSignatureKind(name) == Signature.CLASS_TYPE_SIGNATURE) { if (entityNameList.contains(Signature.toString(name))) { addedImport = true;//www . j a va 2 s. c o m } else { for (IImportDeclaration imp : importDeclarations) { if (imp.getElementName().contains(Signature.toString(name))) { imports.addImport(imp.getElementName()); } } } } } return addedImport; }
From source file:com.google.gdt.eclipse.appengine.rpc.wizards.helpers.RpcServiceLayerCreator.java
License:Open Source License
private String[] getElementSignatures(String typeName) { if (Signature.getTypeSignatureKind(typeName) == Signature.ARRAY_TYPE_SIGNATURE) { return new String[] { Signature.getElementType(typeName) }; } else {//from w w w. j a v a2 s .c om String[] names = Signature.getTypeArguments(typeName); List<String> list = new ArrayList<String>(); list.add(Signature.getTypeErasure(typeName)); if (names.length > 0) { list.add(names[0]); } return list.toArray(new String[list.size()]); } }
From source file:com.google.gwt.eclipse.core.search.JsniJavaRefParamType.java
License:Open Source License
public static JsniJavaRefParamType parse(IPath source, int offset, String paramTypeString) { // Minimal class type signature is of form "LClassName;" if (paramTypeString.length() < 3 || !paramTypeString.endsWith(";")) { return null; }//from w w w . j a v a 2 s. c o m // We only consider class types (no primitives) if (Signature.getTypeSignatureKind(paramTypeString) != Signature.CLASS_TYPE_SIGNATURE) { return null; } return new JsniJavaRefParamType(source, offset, paramTypeString); }