use of org.eclipse.jdt.core.BindingKey in project che by eclipse.
the class JavaElementLabelComposer method appendTypeLabel.
/**
* Appends the label for a type. Considers the T_* flags.
*
* @param type the element to render
* @param flags the rendering flags. Flags with names starting with 'T_' are considered.
*/
public void appendTypeLabel(IType type, long flags) {
if (getFlag(flags, JavaElementLabels.T_FULLY_QUALIFIED)) {
IPackageFragment pack = type.getPackageFragment();
if (!pack.isDefaultPackage()) {
appendPackageFragmentLabel(pack, (flags & QUALIFIER_FLAGS));
fBuffer.append('.');
}
}
IJavaElement parent = type.getParent();
if (getFlag(flags, JavaElementLabels.T_FULLY_QUALIFIED | JavaElementLabels.T_CONTAINER_QUALIFIED)) {
IType declaringType = type.getDeclaringType();
if (declaringType != null) {
appendTypeLabel(declaringType, JavaElementLabels.T_CONTAINER_QUALIFIED | (flags & QUALIFIER_FLAGS));
fBuffer.append('.');
}
int parentType = parent.getElementType();
if (parentType == IJavaElement.METHOD || parentType == IJavaElement.FIELD || parentType == IJavaElement.INITIALIZER) {
// anonymous or local
appendElementLabel(parent, 0);
fBuffer.append('.');
}
}
String typeName;
boolean isAnonymous = false;
if (type.isLambda()) {
//$NON-NLS-1$
typeName = "() -> {...}";
try {
String[] superInterfaceSignatures = type.getSuperInterfaceTypeSignatures();
if (superInterfaceSignatures.length > 0) {
typeName = typeName + ' ' + getSimpleTypeName(type, superInterfaceSignatures[0]);
}
} catch (JavaModelException e) {
//ignore
}
} else {
typeName = getElementName(type);
try {
isAnonymous = type.isAnonymous();
} catch (JavaModelException e1) {
// should not happen, but let's play safe:
isAnonymous = typeName.length() == 0;
}
if (isAnonymous) {
try {
if (parent instanceof IField && type.isEnum()) {
typeName = '{' + JavaElementLabels.ELLIPSIS_STRING + '}';
} else {
String supertypeName;
String[] superInterfaceSignatures = type.getSuperInterfaceTypeSignatures();
if (superInterfaceSignatures.length > 0) {
supertypeName = getSimpleTypeName(type, superInterfaceSignatures[0]);
} else {
supertypeName = getSimpleTypeName(type, type.getSuperclassTypeSignature());
}
typeName = Messages.format(JavaUIMessages.JavaElementLabels_anonym_type, supertypeName);
}
} catch (JavaModelException e) {
//ignore
typeName = JavaUIMessages.JavaElementLabels_anonym;
}
}
}
fBuffer.append(typeName);
if (getFlag(flags, JavaElementLabels.T_TYPE_PARAMETERS)) {
if (getFlag(flags, JavaElementLabels.USE_RESOLVED) && type.isResolved()) {
BindingKey key = new BindingKey(type.getKey());
if (key.isParameterizedType()) {
String[] typeArguments = key.getTypeArguments();
appendTypeArgumentSignaturesLabel(type, typeArguments, flags);
} else {
String[] typeParameters = Signature.getTypeParameters(key.toSignature());
appendTypeParameterSignaturesLabel(typeParameters, flags);
}
} else if (type.exists()) {
try {
appendTypeParametersLabels(type.getTypeParameters(), flags);
} catch (JavaModelException e) {
// ignore
}
}
}
// category
if (getFlag(flags, JavaElementLabels.T_CATEGORY) && type.exists()) {
try {
appendCategoryLabel(type, flags);
} catch (JavaModelException e) {
// ignore
}
}
// post qualification
if (getFlag(flags, JavaElementLabels.T_POST_QUALIFIED)) {
int offset = fBuffer.length();
fBuffer.append(JavaElementLabels.CONCAT_STRING);
IType declaringType = type.getDeclaringType();
if (declaringType == null && type.isBinary() && isAnonymous) {
// workaround for Bug 87165: [model] IType#getDeclaringType() does not work for anonymous binary type
String tqn = type.getTypeQualifiedName();
int lastDollar = tqn.lastIndexOf('$');
if (lastDollar != 1) {
//$NON-NLS-1$
String declaringTypeCF = tqn.substring(0, lastDollar) + ".class";
declaringType = type.getPackageFragment().getClassFile(declaringTypeCF).getType();
try {
ISourceRange typeSourceRange = type.getSourceRange();
if (declaringType.exists() && SourceRange.isAvailable(typeSourceRange)) {
IJavaElement realParent = declaringType.getTypeRoot().getElementAt(typeSourceRange.getOffset() - 1);
if (realParent != null) {
parent = realParent;
}
}
} catch (JavaModelException e) {
// ignore
}
}
}
if (declaringType != null) {
appendTypeLabel(declaringType, JavaElementLabels.T_FULLY_QUALIFIED | (flags & QUALIFIER_FLAGS));
int parentType = parent.getElementType();
if (parentType == IJavaElement.METHOD || parentType == IJavaElement.FIELD || parentType == IJavaElement.INITIALIZER) {
// anonymous or local
fBuffer.append('.');
appendElementLabel(parent, 0);
}
} else {
appendPackageFragmentLabel(type.getPackageFragment(), flags & QUALIFIER_FLAGS);
}
if (getFlag(flags, JavaElementLabels.COLORIZE)) {
fBuffer.setStyle(offset, fBuffer.length() - offset, QUALIFIER_STYLE);
}
}
}
use of org.eclipse.jdt.core.BindingKey in project che by eclipse.
the class SourcesFromBytecodeGenerator method generateType.
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 {
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");
}
use of org.eclipse.jdt.core.BindingKey in project che by eclipse.
the class InferTypeArgumentsRefactoring method getTypeArguments.
/**
* @param baseType the base type
* @param typeArgumentCvs type argument constraint variables
* @param rewrite the cu rewrite
* @param tCModel the type constraints model
* @param leaveUnconstraindRaw <code>true</code> to keep unconstrained type references raw,
* <code>false</code> to infer <code><?></code> if possible
* @return the new type arguments, or <code>null</code> iff an argument could not be inferred
*/
private static Type[] getTypeArguments(Type baseType, ArrayList<CollectionElementVariable2> typeArgumentCvs, CompilationUnitRewrite rewrite, InferTypeArgumentsTCModel tCModel, boolean leaveUnconstraindRaw) {
if (typeArgumentCvs.size() == 0)
return null;
Type[] typeArguments = new Type[typeArgumentCvs.size()];
for (int i = 0; i < typeArgumentCvs.size(); i++) {
CollectionElementVariable2 elementCv = typeArgumentCvs.get(i);
Type typeArgument;
TType chosenType = InferTypeArgumentsConstraintsSolver.getChosenType(elementCv);
if (chosenType != null) {
if (chosenType.isWildcardType() && !unboundedWildcardAllowed(baseType))
// can't e.g. write "new ArrayList<?>()".
return null;
if (// workaround for bug 99124
chosenType.isParameterizedType())
chosenType = chosenType.getTypeDeclaration();
BindingKey bindingKey = new BindingKey(chosenType.getBindingKey());
typeArgument = rewrite.getImportRewrite().addImportFromSignature(bindingKey.toSignature(), rewrite.getAST());
ArrayList<CollectionElementVariable2> nestedTypeArgumentCvs = getTypeArgumentCvs(elementCv, tCModel);
//recursion
Type[] nestedTypeArguments = getTypeArguments(typeArgument, nestedTypeArgumentCvs, rewrite, tCModel, leaveUnconstraindRaw);
if (nestedTypeArguments != null) {
ParameterizedType parameterizedType = rewrite.getAST().newParameterizedType(typeArgument);
for (int j = 0; j < nestedTypeArguments.length; j++) parameterizedType.typeArguments().add(nestedTypeArguments[j]);
typeArgument = parameterizedType;
}
} else {
// couldn't infer an element type (no constraints)
if (leaveUnconstraindRaw) {
// every guess could be wrong => leave the whole thing raw
return null;
} else {
if (unboundedWildcardAllowed(baseType)) {
typeArgument = rewrite.getAST().newWildcardType();
} else {
//$NON-NLS-1$
String object = rewrite.getImportRewrite().addImport("java.lang.Object");
typeArgument = (Type) rewrite.getASTRewrite().createStringPlaceholder(object, ASTNode.SIMPLE_TYPE);
}
}
// ASTNode baseTypeParent= baseType.getParent();
// if (baseTypeParent instanceof ClassInstanceCreation) {
// //No ? allowed. Take java.lang.Object.
// typeArgument= rewrite.getAST().newSimpleType(rewrite.getAST().newName(rewrite.getImportRewrite().addImport("java.lang.Object"))); //$NON-NLS-1$
// } else if (baseTypeParent instanceof ArrayCreation || baseTypeParent instanceof InstanceofExpression) {
// //Only ? allowed.
// typeArgument= rewrite.getAST().newWildcardType();
// } else {
// //E.g. field type: can put anything. Choosing ? in order to be most constraining.
// typeArgument= rewrite.getAST().newWildcardType();
// }
}
typeArguments[i] = typeArgument;
}
return typeArguments;
}
use of org.eclipse.jdt.core.BindingKey in project che by eclipse.
the class ParameterGuesser method createVariable.
public Variable createVariable(IJavaElement element, IType enclosingType, String expectedType, int positionScore) throws JavaModelException {
int variableType;
int elementType = element.getElementType();
String elementName = element.getElementName();
String typeSignature;
switch(elementType) {
case IJavaElement.FIELD:
{
IField field = (IField) element;
if (field.getDeclaringType().equals(enclosingType)) {
variableType = Variable.FIELD;
} else {
variableType = Variable.INHERITED_FIELD;
}
if (field.isResolved()) {
typeSignature = new BindingKey(field.getKey()).toSignature();
} else {
typeSignature = field.getTypeSignature();
}
break;
}
case IJavaElement.LOCAL_VARIABLE:
{
ILocalVariable locVar = (ILocalVariable) element;
variableType = Variable.LOCAL;
typeSignature = locVar.getTypeSignature();
break;
}
case IJavaElement.METHOD:
{
IMethod method = (IMethod) element;
if (isMethodToSuggest(method)) {
if (method.getDeclaringType().equals(enclosingType)) {
variableType = Variable.METHOD;
} else {
variableType = Variable.INHERITED_METHOD;
}
if (method.isResolved()) {
typeSignature = Signature.getReturnType(new BindingKey(method.getKey()).toSignature());
} else {
typeSignature = method.getReturnType();
}
//$NON-NLS-1$
elementName = elementName + "()";
} else {
return null;
}
break;
}
default:
return null;
}
String type = Signature.toString(typeSignature);
boolean isAutoboxMatch = isPrimitiveType(expectedType) != isPrimitiveType(type);
return new Variable(type, elementName, variableType, isAutoboxMatch, positionScore, NO_TRIGGERS, getImageDescriptor(element));
}
use of org.eclipse.jdt.core.BindingKey in project che by eclipse.
the class JavaElementLabelComposer method appendMethodLabel.
/**
* Appends the label for a method. Considers the M_* flags.
*
* @param method the element to render
* @param flags the rendering flags. Flags with names starting with 'M_' are considered.
*/
public void appendMethodLabel(IMethod method, long flags) {
try {
BindingKey resolvedKey = getFlag(flags, JavaElementLabels.USE_RESOLVED) && method.isResolved() ? new BindingKey(method.getKey()) : null;
String resolvedSig = (resolvedKey != null) ? resolvedKey.toSignature() : null;
// type parameters
if (getFlag(flags, JavaElementLabels.M_PRE_TYPE_PARAMETERS)) {
if (resolvedKey != null) {
if (resolvedKey.isParameterizedMethod()) {
String[] typeArgRefs = resolvedKey.getTypeArguments();
if (typeArgRefs.length > 0) {
appendTypeArgumentSignaturesLabel(method, typeArgRefs, flags);
fBuffer.append(' ');
}
} else {
String[] typeParameterSigs = Signature.getTypeParameters(resolvedSig);
if (typeParameterSigs.length > 0) {
appendTypeParameterSignaturesLabel(typeParameterSigs, flags);
fBuffer.append(' ');
}
}
} else if (method.exists()) {
ITypeParameter[] typeParameters = method.getTypeParameters();
if (typeParameters.length > 0) {
appendTypeParametersLabels(typeParameters, flags);
fBuffer.append(' ');
}
}
}
// return type
if (getFlag(flags, JavaElementLabels.M_PRE_RETURNTYPE) && method.exists() && !method.isConstructor()) {
String returnTypeSig = resolvedSig != null ? Signature.getReturnType(resolvedSig) : method.getReturnType();
appendTypeSignatureLabel(method, returnTypeSig, flags);
fBuffer.append(' ');
}
// qualification
if (getFlag(flags, JavaElementLabels.M_FULLY_QUALIFIED)) {
appendTypeLabel(method.getDeclaringType(), JavaElementLabels.T_FULLY_QUALIFIED | (flags & QUALIFIER_FLAGS));
fBuffer.append('.');
}
fBuffer.append(getElementName(method));
// constructor type arguments
if (getFlag(flags, JavaElementLabels.T_TYPE_PARAMETERS) && method.exists() && method.isConstructor()) {
if (resolvedSig != null && resolvedKey.isParameterizedType()) {
BindingKey declaringType = resolvedKey.getDeclaringType();
if (declaringType != null) {
String[] declaringTypeArguments = declaringType.getTypeArguments();
appendTypeArgumentSignaturesLabel(method, declaringTypeArguments, flags);
}
}
}
// parameters
fBuffer.append('(');
String[] declaredParameterTypes = method.getParameterTypes();
if (getFlag(flags, JavaElementLabels.M_PARAMETER_TYPES | JavaElementLabels.M_PARAMETER_NAMES)) {
String[] types = null;
int nParams = 0;
boolean renderVarargs = false;
boolean isPolymorphic = false;
if (getFlag(flags, JavaElementLabels.M_PARAMETER_TYPES)) {
if (resolvedSig != null) {
types = Signature.getParameterTypes(resolvedSig);
} else {
types = declaredParameterTypes;
}
nParams = types.length;
renderVarargs = method.exists() && Flags.isVarargs(method.getFlags());
if (renderVarargs && resolvedSig != null && declaredParameterTypes.length == 1 && JavaModelUtil.isPolymorphicSignature(method)) {
renderVarargs = false;
isPolymorphic = true;
}
}
String[] names = null;
if (getFlag(flags, JavaElementLabels.M_PARAMETER_NAMES) && method.exists()) {
names = method.getParameterNames();
if (isPolymorphic) {
// handled specially below
} else if (types == null) {
nParams = names.length;
} else {
// types != null
if (nParams != names.length) {
if (resolvedSig != null && types.length > names.length) {
// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=99137
nParams = names.length;
String[] typesWithoutSyntheticParams = new String[nParams];
System.arraycopy(types, types.length - nParams, typesWithoutSyntheticParams, 0, nParams);
types = typesWithoutSyntheticParams;
} else {
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=101029
// JavaPlugin.logErrorMessage("JavaElementLabels: Number of param types(" + nParams + ") != number of names(" + names.length + "): " + method.getElementName()); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
// no names rendered
names = null;
}
}
}
}
ILocalVariable[] annotatedParameters = null;
if (nParams > 0 && getFlag(flags, JavaElementLabels.M_PARAMETER_ANNOTATIONS)) {
annotatedParameters = method.getParameters();
}
for (int i = 0; i < nParams; i++) {
if (i > 0) {
fBuffer.append(JavaElementLabels.COMMA_STRING);
}
if (annotatedParameters != null && i < annotatedParameters.length) {
appendAnnotationLabels(annotatedParameters[i].getAnnotations(), flags);
}
if (types != null) {
String paramSig = types[i];
if (renderVarargs && (i == nParams - 1)) {
int newDim = Signature.getArrayCount(paramSig) - 1;
appendTypeSignatureLabel(method, Signature.getElementType(paramSig), flags);
for (int k = 0; k < newDim; k++) {
fBuffer.append('[').append(']');
}
fBuffer.append(JavaElementLabels.ELLIPSIS_STRING);
} else {
appendTypeSignatureLabel(method, paramSig, flags);
}
}
if (names != null) {
if (types != null) {
fBuffer.append(' ');
}
if (isPolymorphic) {
fBuffer.append(names[0] + i);
} else {
fBuffer.append(names[i]);
}
}
}
} else {
if (declaredParameterTypes.length > 0) {
fBuffer.append(JavaElementLabels.ELLIPSIS_STRING);
}
}
fBuffer.append(')');
if (getFlag(flags, JavaElementLabels.M_EXCEPTIONS)) {
String[] types;
if (resolvedKey != null) {
types = resolvedKey.getThrownExceptions();
} else {
types = method.exists() ? method.getExceptionTypes() : new String[0];
}
if (types.length > 0) {
//$NON-NLS-1$
fBuffer.append(" throws ");
for (int i = 0; i < types.length; i++) {
if (i > 0) {
fBuffer.append(JavaElementLabels.COMMA_STRING);
}
appendTypeSignatureLabel(method, types[i], flags);
}
}
}
if (getFlag(flags, JavaElementLabels.M_APP_TYPE_PARAMETERS)) {
int offset = fBuffer.length();
if (resolvedKey != null) {
if (resolvedKey.isParameterizedMethod()) {
String[] typeArgRefs = resolvedKey.getTypeArguments();
if (typeArgRefs.length > 0) {
fBuffer.append(' ');
appendTypeArgumentSignaturesLabel(method, typeArgRefs, flags);
}
} else {
String[] typeParameterSigs = Signature.getTypeParameters(resolvedSig);
if (typeParameterSigs.length > 0) {
fBuffer.append(' ');
appendTypeParameterSignaturesLabel(typeParameterSigs, flags);
}
}
} else if (method.exists()) {
ITypeParameter[] typeParameters = method.getTypeParameters();
if (typeParameters.length > 0) {
fBuffer.append(' ');
appendTypeParametersLabels(typeParameters, flags);
}
}
// if (getFlag(flags, JavaElementLabels.COLORIZE) && offset != fBuffer.length()) {
// fBuffer.setStyle(offset, fBuffer.length() - offset, DECORATIONS_STYLE);
// }
}
if (getFlag(flags, JavaElementLabels.M_APP_RETURNTYPE) && method.exists() && !method.isConstructor()) {
int offset = fBuffer.length();
fBuffer.append(JavaElementLabels.DECL_STRING);
String returnTypeSig = resolvedSig != null ? Signature.getReturnType(resolvedSig) : method.getReturnType();
appendTypeSignatureLabel(method, returnTypeSig, flags);
// if (getFlag(flags, JavaElementLabels.COLORIZE)) {
// fBuffer.setStyle(offset, fBuffer.length() - offset, DECORATIONS_STYLE);
// }
}
// category
if (getFlag(flags, JavaElementLabels.M_CATEGORY) && method.exists())
appendCategoryLabel(method, flags);
// post qualification
if (getFlag(flags, JavaElementLabels.M_POST_QUALIFIED)) {
int offset = fBuffer.length();
fBuffer.append(JavaElementLabels.CONCAT_STRING);
appendTypeLabel(method.getDeclaringType(), JavaElementLabels.T_FULLY_QUALIFIED | (flags & QUALIFIER_FLAGS));
if (getFlag(flags, JavaElementLabels.COLORIZE)) {
fBuffer.setStyle(offset, fBuffer.length() - offset, QUALIFIER_STYLE);
}
}
} catch (JavaModelException e) {
// NotExistsException will not reach this point
JavaPlugin.log(e);
}
}
Aggregations