List of usage examples for org.eclipse.jdt.internal.compiler ExtraFlags ParameterTypesStoredAsSignature
int ParameterTypesStoredAsSignature
To view the source code for org.eclipse.jdt.internal.compiler ExtraFlags ParameterTypesStoredAsSignature.
Click Source Link
From source file:com.codenvy.ide.ext.java.server.internal.core.search.matching.ConstructorDeclarationPattern.java
License:Open Source License
public void decodeIndexKey(char[] key) { int last = key.length - 1; int slash = CharOperation.indexOf(SEPARATOR, key, 0); this.declaringSimpleName = CharOperation.subarray(key, 0, slash); int start = slash + 1; slash = CharOperation.indexOf(SEPARATOR, key, start); last = slash - 1;//from w ww . j a v a 2s .c o m boolean isDefaultConstructor = key[last] == '#'; if (isDefaultConstructor) { this.parameterCount = -1; } else { this.parameterCount = 0; int power = 1; for (int i = last; i >= start; i--) { if (i == last) { this.parameterCount = key[i] - '0'; } else { power *= 10; this.parameterCount += power * (key[i] - '0'); } } } slash = slash + 3; last = slash - 1; int typeModifiersWithExtraFlags = key[last - 1] + (key[last] << 16); this.declaringTypeModifiers = decodeModifers(typeModifiersWithExtraFlags); this.extraFlags = decodeExtraFlags(typeModifiersWithExtraFlags); // initialize optional fields this.declaringPackageName = null; this.modifiers = 0; this.signature = null; this.parameterTypes = null; this.parameterNames = null; boolean isMemberType = (this.extraFlags & ExtraFlags.IsMemberType) != 0; if (!isMemberType) { start = slash + 1; if (this.parameterCount == -1) { slash = key.length; last = slash - 1; } else { slash = CharOperation.indexOf(SEPARATOR, key, start); } last = slash - 1; this.declaringPackageName = CharOperation.subarray(key, start, slash); start = slash + 1; if (this.parameterCount == 0) { slash = slash + 3; last = slash - 1; this.modifiers = key[last - 1] + (key[last] << 16); } else if (this.parameterCount > 0) { slash = CharOperation.indexOf(SEPARATOR, key, start); last = slash - 1; boolean hasParameterStoredAsSignature = (this.extraFlags & ExtraFlags.ParameterTypesStoredAsSignature) != 0; if (hasParameterStoredAsSignature) { this.signature = CharOperation.subarray(key, start, slash); CharOperation.replace(this.signature, '\\', SEPARATOR); } else { this.parameterTypes = CharOperation.splitOn(PARAMETER_SEPARATOR, key, start, slash); } start = slash + 1; slash = CharOperation.indexOf(SEPARATOR, key, start); last = slash - 1; if (slash != start) { this.parameterNames = CharOperation.splitOn(PARAMETER_SEPARATOR, key, start, slash); } slash = slash + 3; last = slash - 1; this.modifiers = key[last - 1] + (key[last] << 16); } else { this.modifiers = ClassFileConstants.AccPublic; } } removeInternalFlags(); // remove internal flags }
From source file:com.codenvy.ide.ext.java.server.internal.core.search.matching.ConstructorDeclarationPattern.java
License:Open Source License
private void removeInternalFlags() { this.extraFlags = this.extraFlags & ~ExtraFlags.ParameterTypesStoredAsSignature; // ParameterTypesStoredAsSignature is an internal flags only used to decode key }
From source file:com.codenvy.ide.ext.java.server.internal.core.search.matching.ConstructorPattern.java
License:Open Source License
/** * Constructor entries are encoded as described * * Binary constructor for class// w w w .j a v a2 s. com * TypeName '/' Arity '/' TypeModifers '/' PackageName '/' Signature '/' ParameterNamesopt '/' Modifiers * Source constructor for class * TypeName '/' Arity '/' TypeModifers '/' PackageName '/' ParameterTypes '/' ParameterNamesopt '/' Modifiers * Constructor with 0 arity for class * TypeName '/' 0 '/' TypeModifers '/' PackageName '/' Modifiers * Constructor for enum, interface (annotation) and class with default constructor * TypeName '/' # '/' TypeModifers '/' PackageName * Constructor for member type * TypeName '/' Arity '/' TypeModifers * * TypeModifiers contains some encoded extra information * {@link org.eclipse.jdt.internal.compiler.ExtraFlags#IsMemberType} * {@link org.eclipse.jdt.internal.compiler.ExtraFlags#HasNonPrivateStaticMemberTypes} * {@link org.eclipse.jdt.internal.compiler.ExtraFlags#ParameterTypesStoredAsSignature} */ public static char[] createDeclarationIndexKey(char[] typeName, int argCount, char[] signature, char[][] parameterTypes, char[][] parameterNames, int modifiers, char[] packageName, int typeModifiers, int extraFlags) { char[] countChars; char[] parameterTypesChars = null; char[] parameterNamesChars = null; if (argCount < 0) { countChars = DEFAULT_CONSTRUCTOR; } else { countChars = argCount < 10 ? COUNTS[argCount] : ("/" + String.valueOf(argCount)).toCharArray(); //$NON-NLS-1$ if (argCount > 0) { if (signature == null) { if (parameterTypes != null && parameterTypes.length == argCount) { char[][] parameterTypeErasures = new char[argCount][]; for (int i = 0; i < parameterTypes.length; i++) { parameterTypeErasures[i] = getTypeErasure(parameterTypes[i]); } parameterTypesChars = CharOperation.concatWith(parameterTypeErasures, PARAMETER_SEPARATOR); } } else { extraFlags |= ExtraFlags.ParameterTypesStoredAsSignature; } if (parameterNames != null && parameterNames.length == argCount) { parameterNamesChars = CharOperation.concatWith(parameterNames, PARAMETER_SEPARATOR); } } } boolean isMemberType = (extraFlags & ExtraFlags.IsMemberType) != 0; int typeNameLength = typeName == null ? 0 : typeName.length; int packageNameLength = packageName == null ? 0 : packageName.length; int countCharsLength = countChars.length; int parameterTypesLength = signature == null ? (parameterTypesChars == null ? 0 : parameterTypesChars.length) : signature.length; int parameterNamesLength = parameterNamesChars == null ? 0 : parameterNamesChars.length; int resultLength = typeNameLength + countCharsLength + 3; // SEPARATOR=1 + TypeModifers=2 if (!isMemberType) { resultLength += packageNameLength + 1; // SEPARATOR=1 if (argCount >= 0) { resultLength += 3; // SEPARATOR=1 + Modifiers=2 } if (argCount > 0) { resultLength += parameterTypesLength + parameterNamesLength + 2; //SEPARATOR=1 + SEPARATOR=1 } } char[] result = new char[resultLength]; int pos = 0; if (typeNameLength > 0) { System.arraycopy(typeName, 0, result, pos, typeNameLength); pos += typeNameLength; } if (countCharsLength > 0) { System.arraycopy(countChars, 0, result, pos, countCharsLength); pos += countCharsLength; } int typeModifiersWithExtraFlags = typeModifiers | encodeExtraFlags(extraFlags); result[pos++] = SEPARATOR; result[pos++] = (char) typeModifiersWithExtraFlags; result[pos++] = (char) (typeModifiersWithExtraFlags >> 16); if (!isMemberType) { result[pos++] = SEPARATOR; if (packageNameLength > 0) { System.arraycopy(packageName, 0, result, pos, packageNameLength); pos += packageNameLength; } if (argCount == 0) { result[pos++] = SEPARATOR; result[pos++] = (char) modifiers; result[pos++] = (char) (modifiers >> 16); } else if (argCount > 0) { result[pos++] = SEPARATOR; if (parameterTypesLength > 0) { if (signature == null) { System.arraycopy(parameterTypesChars, 0, result, pos, parameterTypesLength); } else { System.arraycopy(CharOperation.replaceOnCopy(signature, SEPARATOR, '\\'), 0, result, pos, parameterTypesLength); } pos += parameterTypesLength; } result[pos++] = SEPARATOR; if (parameterNamesLength > 0) { System.arraycopy(parameterNamesChars, 0, result, pos, parameterNamesLength); pos += parameterNamesLength; } result[pos++] = SEPARATOR; result[pos++] = (char) modifiers; result[pos++] = (char) (modifiers >> 16); } } return result; }
From source file:com.codenvy.ide.ext.java.server.internal.core.search.matching.ConstructorPattern.java
License:Open Source License
static int decodeExtraFlags(int modifiersWithExtraFlags) { int extraFlags = 0; if ((modifiersWithExtraFlags & ASTNode.Bit28) != 0) { extraFlags |= ExtraFlags.ParameterTypesStoredAsSignature; }//w w w . jav a2 s . c om if ((modifiersWithExtraFlags & ASTNode.Bit29) != 0) { extraFlags |= ExtraFlags.IsLocalType; } if ((modifiersWithExtraFlags & ASTNode.Bit30) != 0) { extraFlags |= ExtraFlags.IsMemberType; } if ((modifiersWithExtraFlags & ASTNode.Bit31) != 0) { extraFlags |= ExtraFlags.HasNonPrivateStaticMemberTypes; } return extraFlags; }
From source file:com.codenvy.ide.ext.java.server.internal.core.search.matching.ConstructorPattern.java
License:Open Source License
private static int encodeExtraFlags(int extraFlags) { int encodedExtraFlags = 0; if ((extraFlags & ExtraFlags.ParameterTypesStoredAsSignature) != 0) { encodedExtraFlags |= ASTNode.Bit28; }/* w ww .j a v a2 s .c o m*/ if ((extraFlags & ExtraFlags.IsLocalType) != 0) { encodedExtraFlags |= ASTNode.Bit29; } if ((extraFlags & ExtraFlags.IsMemberType) != 0) { encodedExtraFlags |= ASTNode.Bit30; } if ((extraFlags & ExtraFlags.HasNonPrivateStaticMemberTypes) != 0) { encodedExtraFlags |= ASTNode.Bit31; } return encodedExtraFlags; }