summaryrefslogtreecommitdiff
path: root/java/java-psi-impl/src/com
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2013-04-03 16:27:26 -0700
committerTor Norbye <tnorbye@google.com>2013-04-03 16:27:26 -0700
commitd1a59a0799588a226d255d9b45c4825b19651554 (patch)
treec9759b94ddad742db08b6662f52a62e0401491c1 /java/java-psi-impl/src/com
parent2bd2b7c2623d4266384e890271869efc044aabff (diff)
downloadidea-d1a59a0799588a226d255d9b45c4825b19651554.tar.gz
Snapshot dc7fe9a777db5bc87a5b1ad4bfe40a547fc7d49a from master branch of git://git.jetbrains.org/idea/community.git
Change-Id: Iae1c655b8958fc7603a78c675e4a4b942a1fccd4
Diffstat (limited to 'java/java-psi-impl/src/com')
-rw-r--r--java/java-psi-impl/src/com/intellij/psi/impl/PsiImplUtil.java10
-rw-r--r--java/java-psi-impl/src/com/intellij/psi/impl/compiled/StubBuildingVisitor.java33
2 files changed, 25 insertions, 18 deletions
diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/PsiImplUtil.java b/java/java-psi-impl/src/com/intellij/psi/impl/PsiImplUtil.java
index c1db5cd259a7..9105641fbf40 100644
--- a/java/java-psi-impl/src/com/intellij/psi/impl/PsiImplUtil.java
+++ b/java/java-psi-impl/src/com/intellij/psi/impl/PsiImplUtil.java
@@ -319,11 +319,11 @@ public class PsiImplUtil {
}
@Nullable
- public static PsiAnnotation findAnnotation(@NotNull PsiAnnotationOwner annotationOwner, @NotNull String qualifiedName) {
+ public static PsiAnnotation findAnnotation(@Nullable PsiAnnotationOwner annotationOwner, @NotNull String qualifiedName) {
+ if (annotationOwner == null) return null;
+
PsiAnnotation[] annotations = annotationOwner.getAnnotations();
- if (annotations.length == 0) {
- return null;
- }
+ if (annotations.length == 0) return null;
String shortName = StringUtil.getShortName(qualifiedName);
for (PsiAnnotation annotation : annotations) {
@@ -376,7 +376,7 @@ public class PsiImplUtil {
if (!annotationType.isAnnotationType()) return null;
PsiModifierList modifierList = annotationType.getModifierList();
if (modifierList == null) return null;
- PsiAnnotation target = modifierList.findAnnotation(CommonClassNames.TARGET_ANNOTATION_FQ_NAME);
+ PsiAnnotation target = modifierList.findAnnotation(CommonClassNames.JAVA_LANG_ANNOTATION_TARGET);
if (target == null) return DEFAULT_TARGETS; // if omitted it is applicable to all but Java 8 TYPE_USE/TYPE_PARAMETERS targets
PsiAnnotationMemberValue value = target.findAttributeValue(null);
diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/StubBuildingVisitor.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/StubBuildingVisitor.java
index f8877b9a787b..cfe21ba80764 100644
--- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/StubBuildingVisitor.java
+++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/StubBuildingVisitor.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2012 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -304,10 +304,6 @@ public class StubBuildingVisitor<T> extends ClassVisitor {
}
@Override
- public void visitAttribute(final Attribute attr) {
- }
-
- @Override
public void visitInnerClass(final String name, final String outerName, final String innerName, final int access) {
if ((access & Opcodes.ACC_SYNTHETIC) != 0) return;
if (!isCorrectName(innerName)) return;
@@ -339,13 +335,15 @@ public class StubBuildingVisitor<T> extends ClassVisitor {
@Override
@Nullable
- public FieldVisitor visitField(final int access, final String name, final String desc, final String signature, final Object value) {
+ public FieldVisitor visitField(int access, String name, String desc, String signature, Object value) {
if ((access & Opcodes.ACC_SYNTHETIC) != 0) return null;
if (!isCorrectName(name)) return null;
- final byte flags = PsiFieldStubImpl.packFlags((access & Opcodes.ACC_ENUM) != 0, (access & Opcodes.ACC_DEPRECATED) != 0, false);
- final PsiFieldStub stub = new PsiFieldStubImpl(myResult, name, fieldType(desc, signature), constToString(value), flags);
- final PsiModifierListStub modList = new PsiModifierListStubImpl(stub, packFieldFlags(access));
+ byte flags = PsiFieldStubImpl.packFlags((access & Opcodes.ACC_ENUM) != 0, (access & Opcodes.ACC_DEPRECATED) != 0, false);
+ TypeInfo type = fieldType(desc, signature);
+ String initializer = constToString(value, "boolean".equals(type.text.getString()));
+ PsiFieldStub stub = new PsiFieldStubImpl(myResult, name, type, initializer, flags);
+ PsiModifierListStub modList = new PsiModifierListStubImpl(stub, packFieldFlags(access));
return new AnnotationCollectingVisitor(modList);
}
@@ -358,7 +356,8 @@ public class StubBuildingVisitor<T> extends ClassVisitor {
catch (ClsFormatException e) {
return fieldTypeViaDescription(desc);
}
- } else {
+ }
+ else {
return fieldTypeViaDescription(desc);
}
}
@@ -536,7 +535,7 @@ public class StubBuildingVisitor<T> extends ClassVisitor {
@Override
public void visit(final String name, final Object value) {
valuePairPrefix(name);
- myBuilder.append(constToString(value));
+ myBuilder.append(constToString(value, false));
}
@Override
@@ -696,13 +695,21 @@ public class StubBuildingVisitor<T> extends ClassVisitor {
}
@Nullable
- private static String constToString(@Nullable Object value) {
+ private static String constToString(@Nullable Object value, boolean isBoolean) {
if (value == null) return null;
if (value instanceof String) return "\"" + StringUtil.escapeStringCharacters((String)value) + "\"";
- if (value instanceof Integer || value instanceof Boolean) return value.toString();
+ if (value instanceof Boolean) return value.toString();
if (value instanceof Long) return value.toString() + "L";
+ if (value instanceof Integer) {
+ if (isBoolean) {
+ if (value.equals(0)) return "false";
+ if (value.equals(1)) return "true";
+ }
+ return value.toString();
+ }
+
if (value instanceof Double) {
final double d = ((Double)value).doubleValue();
if (Double.isInfinite(d)) {