本文整理汇总了Java中soot.tagkit.VisibilityAnnotationTag.addAnnotation方法的典型用法代码示例。如果您正苦于以下问题:Java VisibilityAnnotationTag.addAnnotation方法的具体用法?Java VisibilityAnnotationTag.addAnnotation怎么用?Java VisibilityAnnotationTag.addAnnotation使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类soot.tagkit.VisibilityAnnotationTag
的用法示例。
在下文中一共展示了VisibilityAnnotationTag.addAnnotation方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: visitAnnotation
import soot.tagkit.VisibilityAnnotationTag; //导入方法依赖的package包/类
/**
* @see FieldVisitor#visitAnnotation(String, boolean)
* @see MethodVisitor#visitAnnotation(String, boolean)
* @see ClassVisitor#visitAnnotation(String, boolean)
*/
public AnnotationVisitor visitAnnotation(final String desc, boolean visible) {
VisibilityAnnotationTag tag;
if (visible) {
tag = visibleTag;
if (tag == null) {
visibleTag = tag = new VisibilityAnnotationTag(AnnotationConstants.RUNTIME_VISIBLE);
host.addTag(tag);
}
} else {
tag = invisibleTag;
if (tag == null) {
invisibleTag = tag = new VisibilityAnnotationTag(AnnotationConstants.RUNTIME_INVISIBLE);
host.addTag(tag);
}
}
scb.addDep(AsmUtil.toQualifiedName(desc.substring(1, desc.length() - 1)));
final VisibilityAnnotationTag _tag = tag;
return new AnnotationElemBuilder() {
@Override
public void visitEnd() {
AnnotationTag annotTag = new AnnotationTag(desc, elems);
_tag.addAnnotation(annotTag);
}
};
}
示例2: annotate
import soot.tagkit.VisibilityAnnotationTag; //导入方法依赖的package包/类
/**
* Applies a Java 1.5-style annotation to a given Host. The Host must be of type {@link SootClass}, {@link SootMethod}
* or {@link SootField}.
*
* @param h a method, field, or class
* @param annotationName the qualified name of the annotation class
* @param visibility any of the constants in {@link AnnotationConstants}
* @param elems a (possibly empty) sequence of AnnotationElem objects corresponding to the elements that should be contained in this annotation
*/
public void annotate(Host h, String annotationName, int visibility, List<AnnotationElem> elems) {
annotationName = annotationName.replace('.','/');
if(!annotationName.endsWith(";"))
annotationName = "L" + annotationName + ';';
VisibilityAnnotationTag tagToAdd = findOrAdd(h, visibility);
AnnotationTag at = new AnnotationTag(annotationName, elems);
tagToAdd.addAnnotation(at);
}