List of usage examples for org.eclipse.jdt.core ITypeParameter getBoundsSignatures
String[] getBoundsSignatures() throws JavaModelException;
From source file:at.bestsolution.fxide.jdt.text.viewersupport.JavaElementLabelComposer.java
License:Open Source License
private void appendTypeParameterWithBounds(ITypeParameter typeParameter, long flags) throws JavaModelException { fBuffer.append(getElementName(typeParameter)); if (typeParameter.exists()) { String[] bounds = typeParameter.getBoundsSignatures(); if (bounds.length > 0 && !(bounds.length == 1 && "Ljava.lang.Object;".equals(bounds[0]))) { //$NON-NLS-1$ fBuffer.append(" extends "); //$NON-NLS-1$ for (int j = 0; j < bounds.length; j++) { if (j > 0) { fBuffer.append(" & "); //$NON-NLS-1$ }/* w w w . j a v a 2 s . c o m*/ appendTypeSignatureLabel(typeParameter, bounds[j], flags); } } } }
From source file:com.codenvy.ide.ext.java.server.SourcesFromBytecodeGenerator.java
License:Open Source License
private void appendTypeParameterWithBounds(ITypeParameter typeParameter, long flags, StringBuilder builder) throws JavaModelException { builder.append(getElementName(typeParameter)); if (typeParameter.exists()) { String[] bounds = typeParameter.getBoundsSignatures(); if (bounds.length > 0 && !(bounds.length == 1 && "Ljava.lang.Object;".equals(bounds[0]))) { //$NON-NLS-1$ builder.append(" extends "); //$NON-NLS-1$ for (int j = 0; j < bounds.length; j++) { if (j > 0) { builder.append(" & "); //$NON-NLS-1$ }/* www . j a v a 2 s.c o m*/ appendTypeSignatureLabel(typeParameter, bounds[j], flags, builder); } } } }
From source file:edu.uci.ics.sourcerer.tools.java.extractor.eclipse.ClassFileExtractor.java
License:Open Source License
private String getTypeParam(ITypeParameter typeParam) { try {/*ww w .j av a 2 s.co m*/ StringBuilder builder = new StringBuilder(); builder.append('<').append(typeParam.getElementName()); boolean first = true; for (String bound : typeParam.getBoundsSignatures()) { if (first) { first = false; builder.append('+'); } else { builder.append('&'); } builder.append(typeSignatureToFqn(bound)); } builder.append('>'); return builder.toString(); } catch (JavaModelException e) { e.printStackTrace(); System.out.println("bad"); return null; } }
From source file:org.eclipse.e4.demo.simpleide.jdt.internal.editor.viewer.JavaElementLabelComposer.java
License:Open Source License
/** * Appends the styled label for a type parameter. * //from w ww .j a v a 2s . co m * @param typeParameter * the element to render * @param flags * the rendering flags. Flags with names starting with 'T_' are * considered. */ public void appendTypeParameterLabel(ITypeParameter typeParameter, long flags) { try { fBuffer.append(getElementName(typeParameter)); if (typeParameter.exists()) { String[] bounds = typeParameter.getBoundsSignatures(); if (bounds.length > 0 && !(bounds.length == 1 && "Ljava.lang.Object;".equals(bounds[0]))) { //$NON-NLS-1$ fBuffer.append(" extends "); //$NON-NLS-1$ for (int j = 0; j < bounds.length; j++) { if (j > 0) { fBuffer.append(JavaElementLabels.COMMA_STRING); } appendTypeSignatureLabel(typeParameter, bounds[j], flags); } } } // post qualification if (getFlag(flags, JavaElementLabels.TP_POST_QUALIFIED)) { fBuffer.append(JavaElementLabels.CONCAT_STRING); IMember declaringMember = typeParameter.getDeclaringMember(); appendElementLabel(declaringMember, JavaElementLabels.M_PARAMETER_TYPES | JavaElementLabels.M_FULLY_QUALIFIED | JavaElementLabels.T_FULLY_QUALIFIED | (flags & QUALIFIER_FLAGS)); } } catch (JavaModelException e) { logger.error(e); } }
From source file:org.eclipse.jpt.common.core.internal.resource.java.binary.BinaryMember.java
License:Open Source License
/** * no null check//from ww w. j av a 2 s.c o m */ static String convertTypeSignatureToTypeName_(String typeSignature, Iterable<ITypeParameter> typeParameters) { String erasureSignature = Signature.getTypeErasure(typeSignature); if (Signature.getTypeSignatureKind(erasureSignature) == Signature.TYPE_VARIABLE_SIGNATURE) { try { String typeParameterName = Signature.toString(erasureSignature); for (ITypeParameter typeParameter : typeParameters) { if (typeParameterName.equals(typeParameter.getElementName())) { String[] bounds = typeParameter.getBoundsSignatures(); if (bounds.length > 0) { return convertTypeSignatureToTypeName_(bounds[0], typeParameters); } } } } catch (JavaModelException jme) { JptCommonCorePlugin.instance().logError(jme); } } else if (Signature.getTypeSignatureKind(erasureSignature) == Signature.ARRAY_TYPE_SIGNATURE) { int dim = Signature.getArrayCount(erasureSignature); String arrayTypeName = convertTypeSignatureToTypeName(Signature.getElementType(erasureSignature), typeParameters); return Signature.toString( Signature.createArraySignature(Signature.createTypeSignature(arrayTypeName, true), dim)); } else if (Signature.getTypeSignatureKind(erasureSignature) == Signature.WILDCARD_TYPE_SIGNATURE) { // if signature is ? (wildcard) or ? super X (bottom bounded), return top bound, which is Object if (String.valueOf(Signature.C_STAR).equals(erasureSignature) || erasureSignature.startsWith(String.valueOf(Signature.C_SUPER))) { return Object.class.getName(); } // return top bound return Signature.toString(erasureSignature.substring(1)); } return Signature.toString(erasureSignature); }
From source file:org.eclipse.recommenders.jdt.JavaElementsFinder.java
License:Open Source License
private static String[] getBoundSignatures(ITypeParameter param) throws JavaModelException { String[] res = CharOperation.NO_STRINGS; try {//from w ww . j a v a2 s. co m res = param.getBoundsSignatures(); } catch (NullPointerException e) { // swallow. That happened during testing in JDT Mars M6 } return res; }
From source file:org.eclipse.recommenders.rcp.JavaElementResolver.java
License:Open Source License
private String resolveType(final IType jdtDeclaringType, final String unresolvedType, final ITypeParameter[] typeParameters) throws JavaModelException { final int arrayCount = Signature.getArrayCount(unresolvedType); String toResolve = unresolvedType.substring(arrayCount); if (typeParameters != null && toResolve.startsWith("Q")) { //$NON-NLS-1$ String typeName = toResolve.substring(1, toResolve.length() - 1); for (ITypeParameter typeParameter : typeParameters) { if (!typeParameter.getElementName().equals(typeName)) { continue; }/* ww w. j a va2s . c o m*/ String[] boundsSignatures = typeParameter.getBoundsSignatures(); if (boundsSignatures.length > 0) { toResolve = boundsSignatures[0]; break; } } } String resolvedType = JdtUtils .resolveUnqualifiedTypeNamesAndStripOffGenericsAndArrayDimension(toResolve, jdtDeclaringType) .or(Signature.SIG_VOID); resolvedType = resolvedType + StringUtils.repeat("[]", arrayCount); //$NON-NLS-1$ return resolvedType; }
From source file:org.eclipse.recommenders.rcp.utils.JdtUtils.java
License:Open Source License
private static Optional<IType> resolveTypeParameter(ITypeParameter t) { try {/* w w w . j a v a2s . com*/ final IJavaProject project = t.getJavaProject(); if (project == null) { return absent(); } final String[] bounds = t.getBoundsSignatures(); if (ArrayUtils.isEmpty(bounds)) { return Optional.fromNullable(project.findType("java.lang.Object")); //$NON-NLS-1$ } else { final IMember declaringMember = t.getDeclaringMember(); final Optional<String> typename = resolveUnqualifiedTypeNamesAndStripOffGenericsAndArrayDimension( bounds[0], declaringMember); if (typename.isPresent()) { return Optional.fromNullable(project.findType(typename.get())); } else { return absent(); } } } catch (JavaModelException e) { log(WARNING_FAILED_TO_RESOLVE_TYPE_PARAMETER, e, t.getElementName()); return absent(); } catch (Exception e) { log(ERROR_FAILED_TO_RESOLVE_TYPE_PARAMETER, e, t.getElementName()); return absent(); } }
From source file:org.eclipse.recommenders.utils.rcp.JdtUtils.java
License:Open Source License
private static Optional<IType> resolveTypeParameter(final ITypeParameter t) { IType type = null;//from ww w .j a v a2 s . c o m try { final IJavaProject project = t.getJavaProject(); final String[] bounds = t.getBoundsSignatures(); if (ArrayUtils.isEmpty(bounds)) { type = project.findType("java.lang.Object"); } else { final IMember declaringMember = t.getDeclaringMember(); final Optional<String> typename = resolveUnqualifiedTypeNamesAndStripOffGenericsAndArrayDimension( bounds[0], declaringMember); if (typename.isPresent()) { type = project.findType(typename.get()); } } } catch (final Exception e) { logError(e, "Failed to resolve type parameter '%s'", t.getElementName()); } return fromNullable(type); }