List of usage examples for org.eclipse.jdt.internal.compiler.env IBinaryType getInterfaceNames
char[][] getInterfaceNames();
From source file:com.codenvy.ide.ext.java.server.internal.core.BinaryType.java
License:Open Source License
public String[] getSuperInterfaceNames() throws JavaModelException { IBinaryType info = (IBinaryType) getElementInfo(); char[][] names = info.getInterfaceNames(); int length;/*from w w w .j a v a 2 s .c om*/ if (names == null || (length = names.length) == 0) { return CharOperation.NO_STRINGS; } names = ClassFile.translatedNames(names); String[] strings = new String[length]; for (int i = 0; i < length; i++) { strings[i] = new String(names[i]); } return strings; }
From source file:com.codenvy.ide.ext.java.server.internal.core.BinaryType.java
License:Open Source License
/** * @see org.eclipse.jdt.core.IType#getSuperInterfaceTypeSignatures() * @since 3.0/*from w w w . j a v a 2 s .c om*/ */ public String[] getSuperInterfaceTypeSignatures() throws JavaModelException { IBinaryType info = (IBinaryType) getElementInfo(); char[] genericSignature = info.getGenericSignature(); if (genericSignature != null) { ArrayList interfaces = new ArrayList(); int signatureLength = genericSignature.length; // skip type parameters int index = 0; if (genericSignature[0] == '<') { int count = 1; while (count > 0 && ++index < signatureLength) { switch (genericSignature[index]) { case '<': count++; break; case '>': count--; break; } } index++; } // skip superclass index = org.eclipse.jdt.internal.compiler.util.Util.scanClassTypeSignature(genericSignature, index) + 1; while (index < signatureLength) { int start = index; index = org.eclipse.jdt.internal.compiler.util.Util.scanClassTypeSignature(genericSignature, start) + 1; char[] interfaceSig = CharOperation.subarray(genericSignature, start, index); interfaces.add(new String(ClassFile.translatedName(interfaceSig))); } int size = interfaces.size(); String[] result = new String[size]; interfaces.toArray(result); return result; } else { char[][] names = info.getInterfaceNames(); int length; if (names == null || (length = names.length) == 0) { return CharOperation.NO_STRINGS; } names = ClassFile.translatedNames(names); String[] strings = new String[length]; for (int i = 0; i < length; i++) { strings[i] = new String(Signature.createTypeSignature(names[i], true)); } return strings; } }
From source file:com.codenvy.ide.ext.java.server.internal.core.search.matching.ClassFileMatchLocator.java
License:Open Source License
boolean matchSuperTypeReference(SuperTypeReferencePattern pattern, Object binaryInfo, IBinaryType enclosingBinaryType) { if (!(binaryInfo instanceof IBinaryType)) return false; IBinaryType type = (IBinaryType) binaryInfo; if (pattern.superRefKind != SuperTypeReferencePattern.ONLY_SUPER_INTERFACES) { char[] vmName = type.getSuperclassName(); if (vmName != null) { char[] superclassName = convertClassFileFormat(vmName); if (checkTypeName(pattern.superSimpleName, pattern.superQualification, superclassName, pattern.isCaseSensitive(), pattern.isCamelCase())) return true; }/*w w w.j ava 2s .c om*/ } if (pattern.superRefKind != SuperTypeReferencePattern.ONLY_SUPER_CLASSES) { char[][] superInterfaces = type.getInterfaceNames(); if (superInterfaces != null) { for (int i = 0, max = superInterfaces.length; i < max; i++) { char[] superInterfaceName = convertClassFileFormat(superInterfaces[i]); if (checkTypeName(pattern.superSimpleName, pattern.superQualification, superInterfaceName, pattern.isCaseSensitive(), pattern.isCamelCase())) return true; } } } return false; }
From source file:io.takari.maven.plugins.compile.jdt.ClassfileDigester.java
License:Open Source License
public byte[] digest(IBinaryType classFile) { // type level comparison // modifiers//www .jav a2 s. co m updateInt(classFile.getModifiers()); // only consider a portion of the tagbits which indicate a structural change for dependents // e.g. @Override change has no influence outside long OnlyStructuralTagBits = TagBits.AnnotationTargetMASK // different @Target status ? | TagBits.AnnotationDeprecated // different @Deprecated status ? | TagBits.AnnotationRetentionMASK // different @Retention status ? | TagBits.HierarchyHasProblems; // different hierarchy status ? // meta-annotations updateLong(classFile.getTagBits() & OnlyStructuralTagBits); // annotations updateAnnotations(classFile.getAnnotations()); // generic signature updateChars(classFile.getGenericSignature()); // superclass updateChars(classFile.getSuperclassName()); // interfaces char[][] interfacesNames = classFile.getInterfaceNames(); if (interfacesNames != null) { for (int i = 0; i < interfacesNames.length; i++) { updateChars(interfacesNames[i]); } } // member types IBinaryNestedType[] memberTypes = classFile.getMemberTypes(); if (memberTypes != null) { for (int i = 0; i < memberTypes.length; i++) { updateChars(memberTypes[i].getName()); updateInt(memberTypes[i].getModifiers()); } } // fields FieldInfo[] fieldInfos = (FieldInfo[]) classFile.getFields(); if (fieldInfos != null) { for (int i = 0; i < fieldInfos.length; i++) { updateField(fieldInfos[i]); } } // methods MethodInfo[] methodInfos = (MethodInfo[]) classFile.getMethods(); if (methodInfos != null) { for (int i = 0; i < methodInfos.length; i++) { updateMethod(methodInfos[i]); } } // missing types char[][][] missingTypes = classFile.getMissingTypeNames(); if (missingTypes != null) { for (int i = 0; i < missingTypes.length; i++) { for (int j = 0; j < missingTypes[i].length; j++) { if (j > 0) { updateChar('.'); // don't ask why } updateChars(missingTypes[i][j]); } } } return digester.digest(); }
From source file:org.eclipse.che.jdt.BinaryTypeConvector.java
License:Open Source License
public static String toJsonBinaryType(IBinaryType type) { JsonObject object = new JsonObject(); object.add("annotations", toJsonAnnotations(type.getAnnotations())); object.add("enclosingMethod", type.getEnclosingMethod() == null ? JsonNull.INSTANCE : new JsonPrimitive(new String(type.getEnclosingMethod()))); object.add("enclosingTypeName", type.getEnclosingTypeName() == null ? JsonNull.INSTANCE : new JsonPrimitive(new String(type.getEnclosingTypeName()))); object.add("fields", toJsonFields(type.getFields())); object.add("genericSignature", type.getGenericSignature() == null ? JsonNull.INSTANCE : new JsonPrimitive(new String(type.getGenericSignature()))); object.add("interfaceNames", toJsonArrayString(type.getInterfaceNames())); object.add("memberTypes", toJsonMemberTypes(type.getMemberTypes())); object.add("methods", toJsonMethods(type.getMethods())); object.add("missingTypeNames", toJsonMissingTypeNames(type.getMissingTypeNames())); object.add("name", type.getName() == null ? JsonNull.INSTANCE : new JsonPrimitive(new String(type.getName()))); object.add("sourceName", type.getSourceName() == null ? JsonNull.INSTANCE : new JsonPrimitive(new String(type.getSourceName()))); object.add("superclassName", type.getSuperclassName() == null ? JsonNull.INSTANCE : new JsonPrimitive(new String(type.getSuperclassName()))); object.add("tagBits", new JsonPrimitive(String.valueOf(type.getTagBits()))); object.add("anonymous", new JsonPrimitive(type.isAnonymous())); object.add("local", new JsonPrimitive(type.isLocal())); object.add("member", new JsonPrimitive(type.isMember())); object.add("sourceFileName", type.sourceFileName() == null ? JsonNull.INSTANCE : new JsonPrimitive(new String(type.sourceFileName()))); object.add("modifiers", new JsonPrimitive(type.getModifiers())); object.add("binaryType", new JsonPrimitive(type.isBinaryType())); object.add("fileName", type.getFileName() == null ? JsonNull.INSTANCE : new JsonPrimitive(new String(type.getFileName()))); return gson.toJson(object); }