summaryrefslogtreecommitdiff
path: root/src/proguard/classfile/attribute/visitor
diff options
context:
space:
mode:
Diffstat (limited to 'src/proguard/classfile/attribute/visitor')
-rw-r--r--src/proguard/classfile/attribute/visitor/AllAttributeVisitor.java117
-rw-r--r--src/proguard/classfile/attribute/visitor/AllBootstrapMethodInfoVisitor.java55
-rw-r--r--src/proguard/classfile/attribute/visitor/AllExceptionInfoVisitor.java55
-rw-r--r--src/proguard/classfile/attribute/visitor/AllInnerClassesInfoVisitor.java55
-rw-r--r--src/proguard/classfile/attribute/visitor/AttributeNameFilter.java467
-rw-r--r--src/proguard/classfile/attribute/visitor/AttributeVisitor.java101
-rwxr-xr-xsrc/proguard/classfile/attribute/visitor/BootstrapMethodInfoVisitor.java38
-rw-r--r--src/proguard/classfile/attribute/visitor/ExceptionInfoVisitor.java37
-rw-r--r--src/proguard/classfile/attribute/visitor/InnerClassesInfoVisitor.java38
-rw-r--r--src/proguard/classfile/attribute/visitor/LineNumberInfoVisitor.java38
-rw-r--r--src/proguard/classfile/attribute/visitor/LocalVariableInfoVisitor.java38
-rw-r--r--src/proguard/classfile/attribute/visitor/LocalVariableTypeInfoVisitor.java38
-rw-r--r--src/proguard/classfile/attribute/visitor/MultiAttributeVisitor.java446
-rw-r--r--src/proguard/classfile/attribute/visitor/NonEmptyAttributeFilter.java373
-rw-r--r--src/proguard/classfile/attribute/visitor/ParameterInfoVisitor.java37
-rw-r--r--src/proguard/classfile/attribute/visitor/RequiredAttributeFilter.java443
-rw-r--r--src/proguard/classfile/attribute/visitor/StackSizeComputer.java378
-rw-r--r--src/proguard/classfile/attribute/visitor/package.html3
18 files changed, 0 insertions, 2757 deletions
diff --git a/src/proguard/classfile/attribute/visitor/AllAttributeVisitor.java b/src/proguard/classfile/attribute/visitor/AllAttributeVisitor.java
deleted file mode 100644
index 701451e..0000000
--- a/src/proguard/classfile/attribute/visitor/AllAttributeVisitor.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
- * of Java bytecode.
- *
- * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-package proguard.classfile.attribute.visitor;
-
-import proguard.classfile.*;
-import proguard.classfile.attribute.*;
-import proguard.classfile.util.SimplifiedVisitor;
-import proguard.classfile.visitor.*;
-
-/**
- * This ClassVisitor, MemberVisitor, and AttributeVisitor lets a given
- * AttributeVisitor visit all Attribute objects of the program classes,
- * program class members, or code attributes, respectively, that it visits.
- *
- * @author Eric Lafortune
- */
-public class AllAttributeVisitor
-extends SimplifiedVisitor
-implements ClassVisitor,
- MemberVisitor,
- AttributeVisitor
-{
- private final boolean deep;
- private final AttributeVisitor attributeVisitor;
-
-
- /**
- * Creates a new shallow AllAttributeVisitor.
- * @param attributeVisitor the AttributeVisitor to which visits will be
- * delegated.
- */
- public AllAttributeVisitor(AttributeVisitor attributeVisitor)
- {
- this(false, attributeVisitor);
- }
-
-
- /**
- * Creates a new optionally deep AllAttributeVisitor.
- * @param deep specifies whether the attributes contained
- * further down the class structure should be
- * visited too.
- * @param attributeVisitor the AttributeVisitor to which visits will be
- * delegated.
- */
- public AllAttributeVisitor(boolean deep,
- AttributeVisitor attributeVisitor)
- {
- this.deep = deep;
- this.attributeVisitor = attributeVisitor;
- }
-
-
- // Implementations for ClassVisitor.
-
- public void visitProgramClass(ProgramClass programClass)
- {
- programClass.attributesAccept(attributeVisitor);
-
- // Visit the attributes further down the class structure, if required.
- if (deep)
- {
- programClass.fieldsAccept(this);
- programClass.methodsAccept(this);
- programClass.attributesAccept(this);
- }
- }
-
-
- public void visitLibraryClass(LibraryClass libraryClass) {}
-
-
- // Implementations for MemberVisitor.
-
- public void visitProgramMember(ProgramClass programClass, ProgramMember programMember)
- {
- programMember.attributesAccept(programClass, attributeVisitor);
-
- // Visit the attributes further down the member structure, if required.
- if (deep)
- {
- programMember.attributesAccept(programClass, this);
- }
- }
-
-
- public void visitLibraryMember(LibraryClass programClass, LibraryMember programMember) {}
-
-
- // Implementations for AttributeVisitor.
-
- public void visitAnyAttribute(Clazz clazz, Attribute attribute) {}
-
-
- public void visitCodeAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute)
- {
- codeAttribute.attributesAccept(clazz, method, attributeVisitor);
- }
-}
diff --git a/src/proguard/classfile/attribute/visitor/AllBootstrapMethodInfoVisitor.java b/src/proguard/classfile/attribute/visitor/AllBootstrapMethodInfoVisitor.java
deleted file mode 100644
index 6110325..0000000
--- a/src/proguard/classfile/attribute/visitor/AllBootstrapMethodInfoVisitor.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
- * of Java bytecode.
- *
- * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-package proguard.classfile.attribute.visitor;
-
-import proguard.classfile.Clazz;
-import proguard.classfile.attribute.*;
-import proguard.classfile.util.SimplifiedVisitor;
-
-/**
- * This AttributeVisitor lets a given BootstrapMethodInfoVisitor visit all
- * bootstrap method objects of the BootstrapMethodsAttribute objects it visits.
- *
- * @author Eric Lafortune
- */
-public class AllBootstrapMethodInfoVisitor
-extends SimplifiedVisitor
-implements AttributeVisitor
-{
- private final BootstrapMethodInfoVisitor bootstrapMethodInfoVisitor;
-
-
- public AllBootstrapMethodInfoVisitor(BootstrapMethodInfoVisitor bootstrapMethodInfoVisitor)
- {
- this.bootstrapMethodInfoVisitor = bootstrapMethodInfoVisitor;
- }
-
-
- // Implementations for AttributeVisitor.
-
- public void visitAnyAttribute(Clazz clazz, Attribute attribute) {}
-
-
- public void visitBootstrapMethodsAttribute(Clazz clazz, BootstrapMethodsAttribute bootstrapMethodsAttribute)
- {
- bootstrapMethodsAttribute.bootstrapMethodEntriesAccept(clazz, bootstrapMethodInfoVisitor);
- }
-}
diff --git a/src/proguard/classfile/attribute/visitor/AllExceptionInfoVisitor.java b/src/proguard/classfile/attribute/visitor/AllExceptionInfoVisitor.java
deleted file mode 100644
index 9b6c9de..0000000
--- a/src/proguard/classfile/attribute/visitor/AllExceptionInfoVisitor.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
- * of Java bytecode.
- *
- * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-package proguard.classfile.attribute.visitor;
-
-import proguard.classfile.*;
-import proguard.classfile.attribute.*;
-import proguard.classfile.util.SimplifiedVisitor;
-
-/**
- * This AttributeVisitor lets a given ExceptionInfoVisitor visit all exceptions
- * objects of the CodeAttribute objects it visits.
- *
- * @author Eric Lafortune
- */
-public class AllExceptionInfoVisitor
-extends SimplifiedVisitor
-implements AttributeVisitor
-{
- private final ExceptionInfoVisitor exceptionInfoVisitor;
-
-
- public AllExceptionInfoVisitor(ExceptionInfoVisitor exceptionInfoVisitor)
- {
- this.exceptionInfoVisitor = exceptionInfoVisitor;
- }
-
-
- // Implementations for AttributeVisitor.
-
- public void visitAnyAttribute(Clazz clazz, Attribute attribute) {}
-
-
- public void visitCodeAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute)
- {
- codeAttribute.exceptionsAccept(clazz, method, exceptionInfoVisitor);
- }
-}
diff --git a/src/proguard/classfile/attribute/visitor/AllInnerClassesInfoVisitor.java b/src/proguard/classfile/attribute/visitor/AllInnerClassesInfoVisitor.java
deleted file mode 100644
index b1005c8..0000000
--- a/src/proguard/classfile/attribute/visitor/AllInnerClassesInfoVisitor.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
- * of Java bytecode.
- *
- * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-package proguard.classfile.attribute.visitor;
-
-import proguard.classfile.Clazz;
-import proguard.classfile.attribute.*;
-import proguard.classfile.util.SimplifiedVisitor;
-
-/**
- * This AttributeVisitor lets a given InnerClassesInfoVisitor visit all
- * InnerClassessInfo objects of the InnerClassesAttribute objects it visits.
- *
- * @author Eric Lafortune
- */
-public class AllInnerClassesInfoVisitor
-extends SimplifiedVisitor
-implements AttributeVisitor
-{
- private final InnerClassesInfoVisitor innerClassesInfoVisitor;
-
-
- public AllInnerClassesInfoVisitor(InnerClassesInfoVisitor innerClassesInfoVisitor)
- {
- this.innerClassesInfoVisitor = innerClassesInfoVisitor;
- }
-
-
- // Implementations for AttributeVisitor.
-
- public void visitAnyAttribute(Clazz clazz, Attribute attribute) {}
-
-
- public void visitInnerClassesAttribute(Clazz clazz, InnerClassesAttribute innerClassesAttribute)
- {
- innerClassesAttribute.innerClassEntriesAccept(clazz, innerClassesInfoVisitor);
- }
-} \ No newline at end of file
diff --git a/src/proguard/classfile/attribute/visitor/AttributeNameFilter.java b/src/proguard/classfile/attribute/visitor/AttributeNameFilter.java
deleted file mode 100644
index 14c1edc..0000000
--- a/src/proguard/classfile/attribute/visitor/AttributeNameFilter.java
+++ /dev/null
@@ -1,467 +0,0 @@
-/*
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
- * of Java bytecode.
- *
- * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-package proguard.classfile.attribute.visitor;
-
-import proguard.classfile.*;
-import proguard.classfile.attribute.*;
-import proguard.classfile.attribute.annotation.*;
-import proguard.classfile.attribute.preverification.*;
-import proguard.util.*;
-
-import java.util.List;
-
-/**
- * This AttributeVisitor delegates its visits another AttributeVisitor, but
- * only when the visited attribute has a name that that matches a given regular
- * expression.
- *
- * @author Eric Lafortune
- */
-public class AttributeNameFilter
-implements AttributeVisitor
-{
- private final StringMatcher regularExpressionMatcher;
- private final AttributeVisitor attributeVisitor;
-
-
- /**
- * Creates a new AttributeNameFilter.
- * @param regularExpression the regular expression against which attribute
- * names will be matched.
- * @param attributeVisitor the <code>AttributeVisitor</code> to which
- * visits will be delegated.
- */
- public AttributeNameFilter(String regularExpression,
- AttributeVisitor attributeVisitor)
- {
- this(new ListParser(new NameParser()).parse(regularExpression),
- attributeVisitor);
- }
-
-
- /**
- * Creates a new AttributeNameFilter.
- * @param regularExpression the regular expression against which attribute
- * names will be matched.
- * @param attributeVisitor the <code>AttributeVisitor</code> to which
- * visits will be delegated.
- */
- public AttributeNameFilter(List regularExpression,
- AttributeVisitor attributeVisitor)
- {
- this(new ListParser(new NameParser()).parse(regularExpression),
- attributeVisitor);
- }
-
-
- /**
- * Creates a new AttributeNameFilter.
- * @param regularExpressionMatcher the string matcher against which
- * attribute names will be matched.
- * @param attributeVisitor the <code>AttributeVisitor</code> to
- * which visits will be delegated.
- */
- public AttributeNameFilter(StringMatcher regularExpressionMatcher,
- AttributeVisitor attributeVisitor)
- {
- this.regularExpressionMatcher = regularExpressionMatcher;
- this.attributeVisitor = attributeVisitor;
- }
-
-
- // Implementations for AttributeVisitor.
-
- public void visitUnknownAttribute(Clazz clazz, UnknownAttribute unknownAttribute)
- {
- if (accepted(clazz, unknownAttribute))
- {
- attributeVisitor.visitUnknownAttribute(clazz, unknownAttribute);
- }
- }
-
-
- public void visitBootstrapMethodsAttribute(Clazz clazz, BootstrapMethodsAttribute bootstrapMethodsAttribute)
- {
- if (accepted(clazz, bootstrapMethodsAttribute))
- {
- attributeVisitor.visitBootstrapMethodsAttribute(clazz, bootstrapMethodsAttribute);
- }
- }
-
-
- public void visitSourceFileAttribute(Clazz clazz, SourceFileAttribute sourceFileAttribute)
- {
- if (accepted(clazz, sourceFileAttribute))
- {
- attributeVisitor.visitSourceFileAttribute(clazz, sourceFileAttribute);
- }
- }
-
-
- public void visitSourceDirAttribute(Clazz clazz, SourceDirAttribute sourceDirAttribute)
- {
- if (accepted(clazz, sourceDirAttribute))
- {
- attributeVisitor.visitSourceDirAttribute(clazz, sourceDirAttribute);
- }
- }
-
-
- public void visitInnerClassesAttribute(Clazz clazz, InnerClassesAttribute innerClassesAttribute)
- {
- if (accepted(clazz, innerClassesAttribute))
- {
- attributeVisitor.visitInnerClassesAttribute(clazz, innerClassesAttribute);
- }
- }
-
-
- public void visitEnclosingMethodAttribute(Clazz clazz, EnclosingMethodAttribute enclosingMethodAttribute)
- {
- if (accepted(clazz, enclosingMethodAttribute))
- {
- attributeVisitor.visitEnclosingMethodAttribute(clazz, enclosingMethodAttribute);
- }
- }
-
-
- public void visitDeprecatedAttribute(Clazz clazz, DeprecatedAttribute deprecatedAttribute)
- {
- if (accepted(clazz, deprecatedAttribute))
- {
- attributeVisitor.visitDeprecatedAttribute(clazz, deprecatedAttribute);
- }
- }
-
-
- public void visitDeprecatedAttribute(Clazz clazz, Field field, DeprecatedAttribute deprecatedAttribute)
- {
- if (accepted(clazz, deprecatedAttribute))
- {
- attributeVisitor.visitDeprecatedAttribute(clazz, field, deprecatedAttribute);
- }
- }
-
-
- public void visitDeprecatedAttribute(Clazz clazz, Method method, DeprecatedAttribute deprecatedAttribute)
- {
- if (accepted(clazz, deprecatedAttribute))
- {
- attributeVisitor.visitDeprecatedAttribute(clazz, method, deprecatedAttribute);
- }
- }
-
-
- public void visitSyntheticAttribute(Clazz clazz, SyntheticAttribute syntheticAttribute)
- {
- if (accepted(clazz, syntheticAttribute))
- {
- attributeVisitor.visitSyntheticAttribute(clazz, syntheticAttribute);
- }
- }
-
-
- public void visitSyntheticAttribute(Clazz clazz, Field field, SyntheticAttribute syntheticAttribute)
- {
- if (accepted(clazz, syntheticAttribute))
- {
- attributeVisitor.visitSyntheticAttribute(clazz, field, syntheticAttribute);
- }
- }
-
-
- public void visitSyntheticAttribute(Clazz clazz, Method method, SyntheticAttribute syntheticAttribute)
- {
- if (accepted(clazz, syntheticAttribute))
- {
- attributeVisitor.visitSyntheticAttribute(clazz, method, syntheticAttribute);
- }
- }
-
-
- public void visitSignatureAttribute(Clazz clazz, SignatureAttribute signatureAttribute)
- {
- if (accepted(clazz, signatureAttribute))
- {
- attributeVisitor.visitSignatureAttribute(clazz, signatureAttribute);
- }
- }
-
-
- public void visitSignatureAttribute(Clazz clazz, Field field, SignatureAttribute signatureAttribute)
- {
- if (accepted(clazz, signatureAttribute))
- {
- attributeVisitor.visitSignatureAttribute(clazz, field, signatureAttribute);
- }
- }
-
-
- public void visitSignatureAttribute(Clazz clazz, Method method, SignatureAttribute signatureAttribute)
- {
- if (accepted(clazz, signatureAttribute))
- {
- attributeVisitor.visitSignatureAttribute(clazz, method, signatureAttribute);
- }
- }
-
-
- public void visitConstantValueAttribute(Clazz clazz, Field field, ConstantValueAttribute constantValueAttribute)
- {
- if (accepted(clazz, constantValueAttribute))
- {
- attributeVisitor.visitConstantValueAttribute(clazz, field, constantValueAttribute);
- }
- }
-
-
- public void visitMethodParametersAttribute(Clazz clazz, Method method, MethodParametersAttribute exceptionsAttribute)
- {
- if (accepted(clazz, exceptionsAttribute))
- {
- attributeVisitor.visitMethodParametersAttribute(clazz, method, exceptionsAttribute);
- }
- }
-
-
- public void visitExceptionsAttribute(Clazz clazz, Method method, ExceptionsAttribute exceptionsAttribute)
- {
- if (accepted(clazz, exceptionsAttribute))
- {
- attributeVisitor.visitExceptionsAttribute(clazz, method, exceptionsAttribute);
- }
- }
-
-
- public void visitCodeAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute)
- {
- if (accepted(clazz, codeAttribute))
- {
- attributeVisitor.visitCodeAttribute(clazz, method, codeAttribute);
- }
- }
-
-
- public void visitStackMapAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, StackMapAttribute stackMapAttribute)
- {
- if (accepted(clazz, stackMapAttribute))
- {
- attributeVisitor.visitStackMapAttribute(clazz, method, codeAttribute, stackMapAttribute);
- }
- }
-
-
- public void visitStackMapTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, StackMapTableAttribute stackMapTableAttribute)
- {
- if (accepted(clazz, stackMapTableAttribute))
- {
- attributeVisitor.visitStackMapTableAttribute(clazz, method, codeAttribute, stackMapTableAttribute);
- }
- }
-
-
- public void visitLineNumberTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LineNumberTableAttribute lineNumberTableAttribute)
- {
- if (accepted(clazz, lineNumberTableAttribute))
- {
- attributeVisitor.visitLineNumberTableAttribute(clazz, method, codeAttribute, lineNumberTableAttribute);
- }
- }
-
-
- public void visitLocalVariableTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTableAttribute localVariableTableAttribute)
- {
- if (accepted(clazz, localVariableTableAttribute))
- {
- attributeVisitor.visitLocalVariableTableAttribute(clazz, method, codeAttribute, localVariableTableAttribute);
- }
- }
-
-
- public void visitLocalVariableTypeTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTypeTableAttribute localVariableTypeTableAttribute)
- {
- if (accepted(clazz, localVariableTypeTableAttribute))
- {
- attributeVisitor.visitLocalVariableTypeTableAttribute(clazz, method, codeAttribute, localVariableTypeTableAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute)
- {
- if (accepted(clazz, runtimeVisibleAnnotationsAttribute))
- {
- attributeVisitor.visitRuntimeVisibleAnnotationsAttribute(clazz, runtimeVisibleAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, Field field, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute)
- {
- if (accepted(clazz, runtimeVisibleAnnotationsAttribute))
- {
- attributeVisitor.visitRuntimeVisibleAnnotationsAttribute(clazz, field, runtimeVisibleAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute)
- {
- if (accepted(clazz, runtimeVisibleAnnotationsAttribute))
- {
- attributeVisitor.visitRuntimeVisibleAnnotationsAttribute(clazz, method, runtimeVisibleAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute)
- {
- if (accepted(clazz, runtimeInvisibleAnnotationsAttribute))
- {
- attributeVisitor.visitRuntimeInvisibleAnnotationsAttribute(clazz, runtimeInvisibleAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, Field field, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute)
- {
- if (accepted(clazz, runtimeInvisibleAnnotationsAttribute))
- {
- attributeVisitor.visitRuntimeInvisibleAnnotationsAttribute(clazz, field, runtimeInvisibleAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute)
- {
- if (accepted(clazz, runtimeInvisibleAnnotationsAttribute))
- {
- attributeVisitor.visitRuntimeInvisibleAnnotationsAttribute(clazz, method, runtimeInvisibleAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleParameterAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleParameterAnnotationsAttribute runtimeVisibleParameterAnnotationsAttribute)
- {
- if (accepted(clazz, runtimeVisibleParameterAnnotationsAttribute))
- {
- attributeVisitor.visitRuntimeVisibleParameterAnnotationsAttribute(clazz, method, runtimeVisibleParameterAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleParameterAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleParameterAnnotationsAttribute runtimeInvisibleParameterAnnotationsAttribute)
- {
- if (accepted(clazz, runtimeInvisibleParameterAnnotationsAttribute))
- {
- attributeVisitor.visitRuntimeInvisibleParameterAnnotationsAttribute(clazz, method, runtimeInvisibleParameterAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
- {
- if (accepted(clazz, runtimeVisibleTypeAnnotationsAttribute))
- {
- attributeVisitor.visitRuntimeVisibleTypeAnnotationsAttribute(clazz, runtimeVisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Field field, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
- {
- if (accepted(clazz, runtimeVisibleTypeAnnotationsAttribute))
- {
- attributeVisitor.visitRuntimeVisibleTypeAnnotationsAttribute(clazz, field, runtimeVisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
- {
- if (accepted(clazz, runtimeVisibleTypeAnnotationsAttribute))
- {
- attributeVisitor.visitRuntimeVisibleTypeAnnotationsAttribute(clazz, method, runtimeVisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
- {
- if (accepted(clazz, runtimeVisibleTypeAnnotationsAttribute))
- {
- attributeVisitor.visitRuntimeVisibleTypeAnnotationsAttribute(clazz, method, codeAttribute, runtimeVisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
- {
- if (accepted(clazz, runtimeInvisibleTypeAnnotationsAttribute))
- {
- attributeVisitor.visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, runtimeInvisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Field field, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
- {
- if (accepted(clazz, runtimeInvisibleTypeAnnotationsAttribute))
- {
- attributeVisitor.visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, field, runtimeInvisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
- {
- if (accepted(clazz, runtimeInvisibleTypeAnnotationsAttribute))
- {
- attributeVisitor.visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, method, runtimeInvisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
- {
- if (accepted(clazz, runtimeInvisibleTypeAnnotationsAttribute))
- {
- attributeVisitor.visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, method, codeAttribute, runtimeInvisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitAnnotationDefaultAttribute(Clazz clazz, Method method, AnnotationDefaultAttribute annotationDefaultAttribute)
- {
- if (accepted(clazz, annotationDefaultAttribute))
- {
- attributeVisitor.visitAnnotationDefaultAttribute(clazz, method, annotationDefaultAttribute);
- }
- }
-
-
- // Small utility methods.
-
- private boolean accepted(Clazz clazz, Attribute attribute)
- {
- return regularExpressionMatcher.matches(attribute.getAttributeName(clazz));
- }
-}
diff --git a/src/proguard/classfile/attribute/visitor/AttributeVisitor.java b/src/proguard/classfile/attribute/visitor/AttributeVisitor.java
deleted file mode 100644
index a9fc6b6..0000000
--- a/src/proguard/classfile/attribute/visitor/AttributeVisitor.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
- * of Java bytecode.
- *
- * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-package proguard.classfile.attribute.visitor;
-
-import proguard.classfile.*;
-import proguard.classfile.attribute.*;
-import proguard.classfile.attribute.annotation.*;
-import proguard.classfile.attribute.preverification.*;
-
-/**
- * This interface specifies the methods for a visitor of <code>Attribute</code>
- * objects.
- *
- * @author Eric Lafortune
- */
-public interface AttributeVisitor
-{
- // Attributes that are attached to classes.
-
- public void visitUnknownAttribute( Clazz clazz, UnknownAttribute unknownAttribute);
- public void visitBootstrapMethodsAttribute( Clazz clazz, BootstrapMethodsAttribute bootstrapMethodsAttribute);
- public void visitSourceFileAttribute( Clazz clazz, SourceFileAttribute sourceFileAttribute);
- public void visitSourceDirAttribute( Clazz clazz, SourceDirAttribute sourceDirAttribute);
- public void visitInnerClassesAttribute( Clazz clazz, InnerClassesAttribute innerClassesAttribute);
- public void visitEnclosingMethodAttribute( Clazz clazz, EnclosingMethodAttribute enclosingMethodAttribute);
-
- // Attributes that are attached to classes, fields, and methods.
-
- public void visitDeprecatedAttribute( Clazz clazz, DeprecatedAttribute deprecatedAttribute);
- public void visitDeprecatedAttribute( Clazz clazz, Field field, DeprecatedAttribute deprecatedAttribute);
- public void visitDeprecatedAttribute( Clazz clazz, Method method, DeprecatedAttribute deprecatedAttribute);
-
- public void visitSyntheticAttribute( Clazz clazz, SyntheticAttribute syntheticAttribute);
- public void visitSyntheticAttribute( Clazz clazz, Field field, SyntheticAttribute syntheticAttribute);
- public void visitSyntheticAttribute( Clazz clazz, Method method, SyntheticAttribute syntheticAttribute);
-
- public void visitSignatureAttribute( Clazz clazz, SignatureAttribute signatureAttribute);
- public void visitSignatureAttribute( Clazz clazz, Field field, SignatureAttribute signatureAttribute);
- public void visitSignatureAttribute( Clazz clazz, Method method, SignatureAttribute signatureAttribute);
-
- // Attributes that are attached to fields.
-
- public void visitConstantValueAttribute( Clazz clazz, Field field, ConstantValueAttribute constantValueAttribute);
-
- // Attributes that are attached to methods.
-
- public void visitMethodParametersAttribute( Clazz clazz, Method method, MethodParametersAttribute methodParametersAttribute);
- public void visitExceptionsAttribute( Clazz clazz, Method method, ExceptionsAttribute exceptionsAttribute);
- public void visitCodeAttribute( Clazz clazz, Method method, CodeAttribute codeAttribute);
-
- // Attributes that are attached to code attributes.
-
- public void visitStackMapAttribute( Clazz clazz, Method method, CodeAttribute codeAttribute, StackMapAttribute stackMapAttribute);
- public void visitStackMapTableAttribute( Clazz clazz, Method method, CodeAttribute codeAttribute, StackMapTableAttribute stackMapTableAttribute);
- public void visitLineNumberTableAttribute( Clazz clazz, Method method, CodeAttribute codeAttribute, LineNumberTableAttribute lineNumberTableAttribute);
- public void visitLocalVariableTableAttribute( Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTableAttribute localVariableTableAttribute);
- public void visitLocalVariableTypeTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTypeTableAttribute localVariableTypeTableAttribute);
-
- // Annotation attributes.
-
- public void visitRuntimeVisibleAnnotationsAttribute( Clazz clazz, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute);
- public void visitRuntimeVisibleAnnotationsAttribute( Clazz clazz, Field field, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute);
- public void visitRuntimeVisibleAnnotationsAttribute( Clazz clazz, Method method, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute);
-
- public void visitRuntimeInvisibleAnnotationsAttribute( Clazz clazz, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute);
- public void visitRuntimeInvisibleAnnotationsAttribute( Clazz clazz, Field field, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute);
- public void visitRuntimeInvisibleAnnotationsAttribute( Clazz clazz, Method method, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute);
-
- public void visitRuntimeVisibleParameterAnnotationsAttribute( Clazz clazz, Method method, RuntimeVisibleParameterAnnotationsAttribute runtimeVisibleParameterAnnotationsAttribute);
- public void visitRuntimeInvisibleParameterAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleParameterAnnotationsAttribute runtimeInvisibleParameterAnnotationsAttribute);
-
- public void visitRuntimeVisibleTypeAnnotationsAttribute( Clazz clazz, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute);
- public void visitRuntimeVisibleTypeAnnotationsAttribute( Clazz clazz, Field field, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute);
- public void visitRuntimeVisibleTypeAnnotationsAttribute( Clazz clazz, Method method, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute);
- public void visitRuntimeVisibleTypeAnnotationsAttribute( Clazz clazz, Method method, CodeAttribute codeAttribute, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute);
-
- public void visitRuntimeInvisibleTypeAnnotationsAttribute( Clazz clazz, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute);
- public void visitRuntimeInvisibleTypeAnnotationsAttribute( Clazz clazz, Field field, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute);
- public void visitRuntimeInvisibleTypeAnnotationsAttribute( Clazz clazz, Method method, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute);
- public void visitRuntimeInvisibleTypeAnnotationsAttribute( Clazz clazz, Method method, CodeAttribute codeAttribute, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute);
-
- public void visitAnnotationDefaultAttribute( Clazz clazz, Method method, AnnotationDefaultAttribute annotationDefaultAttribute);
-}
diff --git a/src/proguard/classfile/attribute/visitor/BootstrapMethodInfoVisitor.java b/src/proguard/classfile/attribute/visitor/BootstrapMethodInfoVisitor.java
deleted file mode 100755
index fb2a9d6..0000000
--- a/src/proguard/classfile/attribute/visitor/BootstrapMethodInfoVisitor.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
- * of Java bytecode.
- *
- * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-package proguard.classfile.attribute.visitor;
-
-import proguard.classfile.Clazz;
-import proguard.classfile.attribute.BootstrapMethodInfo;
-
-
-/**
- * This interface specifies the methods for a visitor of
- * <code>BootstrapMethodInfo</code> objects. Note that there is only a single
- * implementation of <code>BootstrapMethodInfo</code>, such that this interface
- * is not strictly necessary as a visitor.
- *
- * @author Eric Lafortune
- */
-public interface BootstrapMethodInfoVisitor
-{
- public void visitBootstrapMethodInfo(Clazz clazz, BootstrapMethodInfo bootstrapMethodInfo);
-}
diff --git a/src/proguard/classfile/attribute/visitor/ExceptionInfoVisitor.java b/src/proguard/classfile/attribute/visitor/ExceptionInfoVisitor.java
deleted file mode 100644
index 953dc06..0000000
--- a/src/proguard/classfile/attribute/visitor/ExceptionInfoVisitor.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
- * of Java bytecode.
- *
- * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-package proguard.classfile.attribute.visitor;
-
-import proguard.classfile.*;
-import proguard.classfile.attribute.*;
-
-/**
- * This interface specifies the methods for a visitor of
- * <code>ExceptionInfo</code> objects. Note that there is only a single
- * implementation of <code>ExceptionInfo</code>, such that this interface
- * is not strictly necessary as a visitor.
- *
- * @author Eric Lafortune
- */
-public interface ExceptionInfoVisitor
-{
- public void visitExceptionInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, ExceptionInfo exceptionInfo);
-}
diff --git a/src/proguard/classfile/attribute/visitor/InnerClassesInfoVisitor.java b/src/proguard/classfile/attribute/visitor/InnerClassesInfoVisitor.java
deleted file mode 100644
index f9e1a03..0000000
--- a/src/proguard/classfile/attribute/visitor/InnerClassesInfoVisitor.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
- * of Java bytecode.
- *
- * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-package proguard.classfile.attribute.visitor;
-
-import proguard.classfile.Clazz;
-import proguard.classfile.attribute.InnerClassesInfo;
-
-
-/**
- * This interface specifies the methods for a visitor of
- * <code>InnerClassesInfo</code> objects. Note that there is only a single
- * implementation of <code>InnerClassesInfo</code>, such that this interface
- * is not strictly necessary as a visitor.
- *
- * @author Eric Lafortune
- */
-public interface InnerClassesInfoVisitor
-{
- public void visitInnerClassesInfo(Clazz clazz, InnerClassesInfo innerClassesInfo);
-}
diff --git a/src/proguard/classfile/attribute/visitor/LineNumberInfoVisitor.java b/src/proguard/classfile/attribute/visitor/LineNumberInfoVisitor.java
deleted file mode 100644
index 5a6400d..0000000
--- a/src/proguard/classfile/attribute/visitor/LineNumberInfoVisitor.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
- * of Java bytecode.
- *
- * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-package proguard.classfile.attribute.visitor;
-
-import proguard.classfile.*;
-import proguard.classfile.attribute.*;
-
-
-/**
- * This interface specifies the methods for a visitor of
- * <code>LineNumberInfo</code> objects. Note that there is only a single
- * implementation of <code>LineNumberInfo</code>, such that this interface
- * is not strictly necessary as a visitor.
- *
- * @author Eric Lafortune
- */
-public interface LineNumberInfoVisitor
-{
- public void visitLineNumberInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, LineNumberInfo lineNumberInfo);
-}
diff --git a/src/proguard/classfile/attribute/visitor/LocalVariableInfoVisitor.java b/src/proguard/classfile/attribute/visitor/LocalVariableInfoVisitor.java
deleted file mode 100644
index dd17bea..0000000
--- a/src/proguard/classfile/attribute/visitor/LocalVariableInfoVisitor.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
- * of Java bytecode.
- *
- * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-package proguard.classfile.attribute.visitor;
-
-import proguard.classfile.*;
-import proguard.classfile.attribute.*;
-
-
-/**
- * This interface specifies the methods for a visitor of
- * <code>LocalVariableInfo</code> objects. Note that there is only a single
- * implementation of <code>LocalVariableInfo</code>, such that this interface
- * is not strictly necessary as a visitor.
- *
- * @author Eric Lafortune
- */
-public interface LocalVariableInfoVisitor
-{
- public void visitLocalVariableInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableInfo localVariableInfo);
-}
diff --git a/src/proguard/classfile/attribute/visitor/LocalVariableTypeInfoVisitor.java b/src/proguard/classfile/attribute/visitor/LocalVariableTypeInfoVisitor.java
deleted file mode 100644
index c37e9d7..0000000
--- a/src/proguard/classfile/attribute/visitor/LocalVariableTypeInfoVisitor.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
- * of Java bytecode.
- *
- * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-package proguard.classfile.attribute.visitor;
-
-import proguard.classfile.*;
-import proguard.classfile.attribute.*;
-
-
-/**
- * This interface specifies the methods for a visitor of
- * <code>LocalVariableTypeInfo</code> objects. Note that there is only a single
- * implementation of <code>LocalVariableTypeInfo</code>, such that this interface
- * is not strictly necessary as a visitor.
- *
- * @author Eric Lafortune
- */
-public interface LocalVariableTypeInfoVisitor
-{
- public void visitLocalVariableTypeInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTypeInfo localVariableTypeInfo);
-}
diff --git a/src/proguard/classfile/attribute/visitor/MultiAttributeVisitor.java b/src/proguard/classfile/attribute/visitor/MultiAttributeVisitor.java
deleted file mode 100644
index 968f852..0000000
--- a/src/proguard/classfile/attribute/visitor/MultiAttributeVisitor.java
+++ /dev/null
@@ -1,446 +0,0 @@
-/*
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
- * of Java bytecode.
- *
- * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-package proguard.classfile.attribute.visitor;
-
-import proguard.classfile.*;
-import proguard.classfile.attribute.*;
-import proguard.classfile.attribute.annotation.*;
-import proguard.classfile.attribute.preverification.*;
-
-/**
- * This AttributeVisitor delegates all visits to each AttributeVisitor
- * in a given list.
- *
- * @author Eric Lafortune
- */
-public class MultiAttributeVisitor implements AttributeVisitor
-{
- private AttributeVisitor[] attributeVisitors;
-
-
- public MultiAttributeVisitor()
- {
- }
-
-
- public MultiAttributeVisitor(AttributeVisitor[] attributeVisitors)
- {
- this.attributeVisitors = attributeVisitors;
- }
-
-
- public void addAttributeVisitor(AttributeVisitor attributeVisitor)
- {
- incrementArraySize();
-
- attributeVisitors[attributeVisitors.length - 1] = attributeVisitor;
- }
-
-
- private void incrementArraySize()
- {
- if (attributeVisitors == null)
- {
- attributeVisitors = new AttributeVisitor[1];
- }
- else
- {
- AttributeVisitor[] newAttributeVisitors =
- new AttributeVisitor[attributeVisitors.length + 1];
- System.arraycopy(attributeVisitors, 0,
- newAttributeVisitors, 0,
- attributeVisitors.length);
- attributeVisitors = newAttributeVisitors;
- }
- }
-
-
- // Implementations for AttributeVisitor.
-
-
- public void visitUnknownAttribute(Clazz clazz, UnknownAttribute unknownAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitUnknownAttribute(clazz, unknownAttribute);
- }
- }
-
-
- public void visitBootstrapMethodsAttribute(Clazz clazz, BootstrapMethodsAttribute bootstrapMethodsAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitBootstrapMethodsAttribute(clazz, bootstrapMethodsAttribute);
- }
- }
-
-
- public void visitSourceFileAttribute(Clazz clazz, SourceFileAttribute sourceFileAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitSourceFileAttribute(clazz, sourceFileAttribute);
- }
- }
-
-
- public void visitSourceDirAttribute(Clazz clazz, SourceDirAttribute sourceDirAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitSourceDirAttribute(clazz, sourceDirAttribute);
- }
- }
-
-
- public void visitInnerClassesAttribute(Clazz clazz, InnerClassesAttribute innerClassesAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitInnerClassesAttribute(clazz, innerClassesAttribute);
- }
- }
-
-
- public void visitEnclosingMethodAttribute(Clazz clazz, EnclosingMethodAttribute enclosingMethodAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitEnclosingMethodAttribute(clazz, enclosingMethodAttribute);
- }
- }
-
-
- public void visitDeprecatedAttribute(Clazz clazz, DeprecatedAttribute deprecatedAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitDeprecatedAttribute(clazz, deprecatedAttribute);
- }
- }
-
-
- public void visitSyntheticAttribute(Clazz clazz, SyntheticAttribute syntheticAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitSyntheticAttribute(clazz, syntheticAttribute);
- }
- }
-
-
- public void visitSignatureAttribute(Clazz clazz, SignatureAttribute syntheticAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitSignatureAttribute(clazz, syntheticAttribute);
- }
- }
-
-
- public void visitDeprecatedAttribute(Clazz clazz, Field field, DeprecatedAttribute deprecatedAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitDeprecatedAttribute(clazz, field, deprecatedAttribute);
- }
- }
-
-
- public void visitSyntheticAttribute(Clazz clazz, Field field, SyntheticAttribute syntheticAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitSyntheticAttribute(clazz, field, syntheticAttribute);
- }
- }
-
-
- public void visitSignatureAttribute(Clazz clazz, Field field, SignatureAttribute syntheticAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitSignatureAttribute(clazz, field, syntheticAttribute);
- }
- }
-
-
- public void visitDeprecatedAttribute(Clazz clazz, Method method, DeprecatedAttribute deprecatedAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitDeprecatedAttribute(clazz, method, deprecatedAttribute);
- }
- }
-
-
- public void visitSyntheticAttribute(Clazz clazz, Method method, SyntheticAttribute syntheticAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitSyntheticAttribute(clazz, method, syntheticAttribute);
- }
- }
-
-
- public void visitSignatureAttribute(Clazz clazz, Method method, SignatureAttribute syntheticAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitSignatureAttribute(clazz, method, syntheticAttribute);
- }
- }
-
-
- public void visitConstantValueAttribute(Clazz clazz, Field field, ConstantValueAttribute constantValueAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitConstantValueAttribute(clazz, field, constantValueAttribute);
- }
- }
-
-
- public void visitMethodParametersAttribute(Clazz clazz, Method method, MethodParametersAttribute methodParametersAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitMethodParametersAttribute(clazz, method, methodParametersAttribute);
- }
- }
-
-
- public void visitExceptionsAttribute(Clazz clazz, Method method, ExceptionsAttribute exceptionsAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitExceptionsAttribute(clazz, method, exceptionsAttribute);
- }
- }
-
-
- public void visitCodeAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitCodeAttribute(clazz, method, codeAttribute);
- }
- }
-
-
- public void visitStackMapAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, StackMapAttribute stackMapAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitStackMapAttribute(clazz, method, codeAttribute, stackMapAttribute);
- }
- }
-
-
- public void visitStackMapTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, StackMapTableAttribute stackMapTableAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitStackMapTableAttribute(clazz, method, codeAttribute, stackMapTableAttribute);
- }
- }
-
-
- public void visitLineNumberTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LineNumberTableAttribute lineNumberTableAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitLineNumberTableAttribute(clazz, method, codeAttribute, lineNumberTableAttribute);
- }
- }
-
-
- public void visitLocalVariableTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTableAttribute localVariableTableAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitLocalVariableTableAttribute(clazz, method, codeAttribute, localVariableTableAttribute);
- }
- }
-
-
- public void visitLocalVariableTypeTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTypeTableAttribute localVariableTypeTableAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitLocalVariableTypeTableAttribute(clazz, method, codeAttribute, localVariableTypeTableAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitRuntimeVisibleAnnotationsAttribute(clazz, runtimeVisibleAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitRuntimeInvisibleAnnotationsAttribute(clazz, runtimeInvisibleAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, Field field, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitRuntimeVisibleAnnotationsAttribute(clazz, field, runtimeVisibleAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, Field field, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitRuntimeInvisibleAnnotationsAttribute(clazz, field, runtimeInvisibleAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitRuntimeVisibleAnnotationsAttribute(clazz, method, runtimeVisibleAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitRuntimeInvisibleAnnotationsAttribute(clazz, method, runtimeInvisibleAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleParameterAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleParameterAnnotationsAttribute runtimeVisibleParameterAnnotationsAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitRuntimeVisibleParameterAnnotationsAttribute(clazz, method, runtimeVisibleParameterAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleParameterAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleParameterAnnotationsAttribute runtimeInvisibleParameterAnnotationsAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitRuntimeInvisibleParameterAnnotationsAttribute(clazz, method, runtimeInvisibleParameterAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitRuntimeVisibleTypeAnnotationsAttribute(clazz, runtimeVisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Field field, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitRuntimeVisibleTypeAnnotationsAttribute(clazz, field, runtimeVisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitRuntimeVisibleTypeAnnotationsAttribute(clazz, method, runtimeVisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitRuntimeVisibleTypeAnnotationsAttribute(clazz, method, codeAttribute, runtimeVisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, runtimeInvisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Field field, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, field, runtimeInvisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, method, runtimeInvisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, method, codeAttribute, runtimeInvisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitAnnotationDefaultAttribute(Clazz clazz, Method method, AnnotationDefaultAttribute annotationDefaultAttribute)
- {
- for (int index = 0; index < attributeVisitors.length; index++)
- {
- attributeVisitors[index].visitAnnotationDefaultAttribute(clazz, method, annotationDefaultAttribute);
- }
- }
-}
diff --git a/src/proguard/classfile/attribute/visitor/NonEmptyAttributeFilter.java b/src/proguard/classfile/attribute/visitor/NonEmptyAttributeFilter.java
deleted file mode 100644
index 4a54f75..0000000
--- a/src/proguard/classfile/attribute/visitor/NonEmptyAttributeFilter.java
+++ /dev/null
@@ -1,373 +0,0 @@
-/*
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
- * of Java bytecode.
- *
- * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-package proguard.classfile.attribute.visitor;
-
-import proguard.classfile.*;
-import proguard.classfile.attribute.*;
-import proguard.classfile.attribute.annotation.*;
-import proguard.classfile.attribute.preverification.*;
-
-/**
- * This AttributeVisitor delegates its visits another AttributeVisitor, but
- * only when the visited attribute is not empty. For instance, a local variable
- * table without variables is empty.
- *
- * @author Eric Lafortune
- */
-public class NonEmptyAttributeFilter
-implements AttributeVisitor
-{
- private final AttributeVisitor attributeVisitor;
-
-
- /**
- * Creates a new NonEmptyAttributeFilter.
- * @param attributeVisitor the <code>AttributeVisitor</code> to which
- * visits will be delegated.
- */
- public NonEmptyAttributeFilter(AttributeVisitor attributeVisitor)
- {
- this.attributeVisitor = attributeVisitor;
- }
-
-
- // Implementations for AttributeVisitor.
-
- public void visitUnknownAttribute(Clazz clazz, UnknownAttribute unknownAttribute)
- {
- attributeVisitor.visitUnknownAttribute(clazz, unknownAttribute);
- }
-
-
- public void visitBootstrapMethodsAttribute(Clazz clazz, BootstrapMethodsAttribute bootstrapMethodsAttribute)
- {
- if (bootstrapMethodsAttribute.u2bootstrapMethodsCount > 0)
- {
- attributeVisitor.visitBootstrapMethodsAttribute(clazz, bootstrapMethodsAttribute);
- }
- }
-
-
- public void visitSourceFileAttribute(Clazz clazz, SourceFileAttribute sourceFileAttribute)
- {
- attributeVisitor.visitSourceFileAttribute(clazz, sourceFileAttribute);
- }
-
-
- public void visitSourceDirAttribute(Clazz clazz, SourceDirAttribute sourceDirAttribute)
- {
- attributeVisitor.visitSourceDirAttribute(clazz, sourceDirAttribute);
- }
-
-
- public void visitInnerClassesAttribute(Clazz clazz, InnerClassesAttribute innerClassesAttribute)
- {
- if (innerClassesAttribute.u2classesCount > 0)
- {
- attributeVisitor.visitInnerClassesAttribute(clazz, innerClassesAttribute);
- }
- }
-
-
- public void visitEnclosingMethodAttribute(Clazz clazz, EnclosingMethodAttribute enclosingMethodAttribute)
- {
- attributeVisitor.visitEnclosingMethodAttribute(clazz, enclosingMethodAttribute);
- }
-
-
- public void visitDeprecatedAttribute(Clazz clazz, DeprecatedAttribute deprecatedAttribute)
- {
- attributeVisitor.visitDeprecatedAttribute(clazz, deprecatedAttribute);
- }
-
-
- public void visitDeprecatedAttribute(Clazz clazz, Field field, DeprecatedAttribute deprecatedAttribute)
- {
- attributeVisitor.visitDeprecatedAttribute(clazz, field, deprecatedAttribute);
- }
-
-
- public void visitDeprecatedAttribute(Clazz clazz, Method method, DeprecatedAttribute deprecatedAttribute)
- {
- attributeVisitor.visitDeprecatedAttribute(clazz, method, deprecatedAttribute);
- }
-
-
- public void visitSyntheticAttribute(Clazz clazz, SyntheticAttribute syntheticAttribute)
- {
- attributeVisitor.visitSyntheticAttribute(clazz, syntheticAttribute);
- }
-
-
- public void visitSyntheticAttribute(Clazz clazz, Field field, SyntheticAttribute syntheticAttribute)
- {
- attributeVisitor.visitSyntheticAttribute(clazz, field, syntheticAttribute);
- }
-
-
- public void visitSyntheticAttribute(Clazz clazz, Method method, SyntheticAttribute syntheticAttribute)
- {
- attributeVisitor.visitSyntheticAttribute(clazz, method, syntheticAttribute);
- }
-
-
- public void visitSignatureAttribute(Clazz clazz, SignatureAttribute signatureAttribute)
- {
- attributeVisitor.visitSignatureAttribute(clazz, signatureAttribute);
- }
-
-
- public void visitSignatureAttribute(Clazz clazz, Field field, SignatureAttribute signatureAttribute)
- {
- attributeVisitor.visitSignatureAttribute(clazz, field, signatureAttribute);
- }
-
-
- public void visitSignatureAttribute(Clazz clazz, Method method, SignatureAttribute signatureAttribute)
- {
- attributeVisitor.visitSignatureAttribute(clazz, method, signatureAttribute);
- }
-
-
- public void visitConstantValueAttribute(Clazz clazz, Field field, ConstantValueAttribute constantValueAttribute)
- {
- attributeVisitor.visitConstantValueAttribute(clazz, field, constantValueAttribute);
- }
-
-
- public void visitMethodParametersAttribute(Clazz clazz, Method method, MethodParametersAttribute exceptionsAttribute)
- {
- if (exceptionsAttribute.u1parametersCount > 0)
- {
- attributeVisitor.visitMethodParametersAttribute(clazz, method, exceptionsAttribute);
- }
- }
-
-
- public void visitExceptionsAttribute(Clazz clazz, Method method, ExceptionsAttribute exceptionsAttribute)
- {
- if (exceptionsAttribute.u2exceptionIndexTableLength > 0)
- {
- attributeVisitor.visitExceptionsAttribute(clazz, method, exceptionsAttribute);
- }
- }
-
-
- public void visitCodeAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute)
- {
- attributeVisitor.visitCodeAttribute(clazz, method, codeAttribute);
- }
-
-
- public void visitStackMapAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, StackMapAttribute stackMapAttribute)
- {
- if (stackMapAttribute.u2stackMapFramesCount > 0)
- {
- attributeVisitor.visitStackMapAttribute(clazz, method, codeAttribute, stackMapAttribute);
- }
- }
-
-
- public void visitStackMapTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, StackMapTableAttribute stackMapTableAttribute)
- {
- if (stackMapTableAttribute.u2stackMapFramesCount > 0)
- {
- attributeVisitor.visitStackMapTableAttribute(clazz, method, codeAttribute, stackMapTableAttribute);
- }
- }
-
-
- public void visitLineNumberTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LineNumberTableAttribute lineNumberTableAttribute)
- {
- if (lineNumberTableAttribute.u2lineNumberTableLength > 0)
- {
- attributeVisitor.visitLineNumberTableAttribute(clazz, method, codeAttribute, lineNumberTableAttribute);
- }
- }
-
-
- public void visitLocalVariableTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTableAttribute localVariableTableAttribute)
- {
- if (localVariableTableAttribute.u2localVariableTableLength > 0)
- {
- attributeVisitor.visitLocalVariableTableAttribute(clazz, method, codeAttribute, localVariableTableAttribute);
- }
- }
-
-
- public void visitLocalVariableTypeTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTypeTableAttribute localVariableTypeTableAttribute)
- {
- if (localVariableTypeTableAttribute.u2localVariableTypeTableLength > 0)
- {
- attributeVisitor.visitLocalVariableTypeTableAttribute(clazz, method, codeAttribute, localVariableTypeTableAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute)
- {
- if (runtimeVisibleAnnotationsAttribute.u2annotationsCount > 0)
- {
- attributeVisitor.visitRuntimeVisibleAnnotationsAttribute(clazz, runtimeVisibleAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, Field field, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute)
- {
- if (runtimeVisibleAnnotationsAttribute.u2annotationsCount > 0)
- {
- attributeVisitor.visitRuntimeVisibleAnnotationsAttribute(clazz, field, runtimeVisibleAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute)
- {
- if (runtimeVisibleAnnotationsAttribute.u2annotationsCount > 0)
- {
- attributeVisitor.visitRuntimeVisibleAnnotationsAttribute(clazz, method, runtimeVisibleAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute)
- {
- if (runtimeInvisibleAnnotationsAttribute.u2annotationsCount > 0)
- {
- attributeVisitor.visitRuntimeInvisibleAnnotationsAttribute(clazz, runtimeInvisibleAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, Field field, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute)
- {
- if (runtimeInvisibleAnnotationsAttribute.u2annotationsCount > 0)
- {
- attributeVisitor.visitRuntimeInvisibleAnnotationsAttribute(clazz, field, runtimeInvisibleAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute)
- {
- if (runtimeInvisibleAnnotationsAttribute.u2annotationsCount > 0)
- {
- attributeVisitor.visitRuntimeInvisibleAnnotationsAttribute(clazz, method, runtimeInvisibleAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleParameterAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleParameterAnnotationsAttribute runtimeVisibleParameterAnnotationsAttribute)
- {
- if (runtimeVisibleParameterAnnotationsAttribute.u1parametersCount > 0)
- {
- attributeVisitor.visitRuntimeVisibleParameterAnnotationsAttribute(clazz, method, runtimeVisibleParameterAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleParameterAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleParameterAnnotationsAttribute runtimeInvisibleParameterAnnotationsAttribute)
- {
- if (runtimeInvisibleParameterAnnotationsAttribute.u1parametersCount > 0)
- {
- attributeVisitor.visitRuntimeInvisibleParameterAnnotationsAttribute(clazz, method, runtimeInvisibleParameterAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
- {
- if (runtimeVisibleTypeAnnotationsAttribute.u2annotationsCount > 0)
- {
- attributeVisitor.visitRuntimeVisibleTypeAnnotationsAttribute(clazz, runtimeVisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Field field, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
- {
- if (runtimeVisibleTypeAnnotationsAttribute.u2annotationsCount > 0)
- {
- attributeVisitor.visitRuntimeVisibleTypeAnnotationsAttribute(clazz, field, runtimeVisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
- {
- if (runtimeVisibleTypeAnnotationsAttribute.u2annotationsCount > 0)
- {
- attributeVisitor.visitRuntimeVisibleTypeAnnotationsAttribute(clazz, method, runtimeVisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
- {
- if (runtimeVisibleTypeAnnotationsAttribute.u2annotationsCount > 0)
- {
- attributeVisitor.visitRuntimeVisibleTypeAnnotationsAttribute(clazz, method, codeAttribute, runtimeVisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
- {
- if (runtimeInvisibleTypeAnnotationsAttribute.u2annotationsCount > 0)
- {
- attributeVisitor.visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, runtimeInvisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Field field, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
- {
- if (runtimeInvisibleTypeAnnotationsAttribute.u2annotationsCount > 0)
- {
- attributeVisitor.visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, field, runtimeInvisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
- {
- if (runtimeInvisibleTypeAnnotationsAttribute.u2annotationsCount > 0)
- {
- attributeVisitor.visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, method, runtimeInvisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
- {
- if (runtimeInvisibleTypeAnnotationsAttribute.u2annotationsCount > 0)
- {
- attributeVisitor.visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, method, codeAttribute, runtimeInvisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitAnnotationDefaultAttribute(Clazz clazz, Method method, AnnotationDefaultAttribute annotationDefaultAttribute)
- {
- attributeVisitor.visitAnnotationDefaultAttribute(clazz, method, annotationDefaultAttribute);
- }
-}
diff --git a/src/proguard/classfile/attribute/visitor/ParameterInfoVisitor.java b/src/proguard/classfile/attribute/visitor/ParameterInfoVisitor.java
deleted file mode 100644
index 9f91c5b..0000000
--- a/src/proguard/classfile/attribute/visitor/ParameterInfoVisitor.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
- * of Java bytecode.
- *
- * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-package proguard.classfile.attribute.visitor;
-
-import proguard.classfile.*;
-import proguard.classfile.attribute.ParameterInfo;
-
-/**
- * This interface specifies the method for a visitor of
- * <code>ParameterInfo</code> objects. Note that there is only a single
- * implementation of <code>ParameterInfo</code>, such that this interface
- * is not strictly necessary as a visitor.
- *
- * @author Eric Lafortune
- */
-public interface ParameterInfoVisitor
-{
- public void visitParameterInfo(Clazz clazz, Method method, int parameterIndex, ParameterInfo parameterInfo);
-}
diff --git a/src/proguard/classfile/attribute/visitor/RequiredAttributeFilter.java b/src/proguard/classfile/attribute/visitor/RequiredAttributeFilter.java
deleted file mode 100644
index 176846d..0000000
--- a/src/proguard/classfile/attribute/visitor/RequiredAttributeFilter.java
+++ /dev/null
@@ -1,443 +0,0 @@
-/*
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
- * of Java bytecode.
- *
- * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-package proguard.classfile.attribute.visitor;
-
-import proguard.classfile.*;
-import proguard.classfile.attribute.*;
-import proguard.classfile.attribute.annotation.*;
-import proguard.classfile.attribute.preverification.*;
-import proguard.obfuscate.AttributeShrinker;
-
-/**
- * This AttributeVisitor delegates its visits to one of two other
- * AttributeVisitor instances, depending on whether the visited attribute
- * is strictly required or not.
- *
- * Stack map attributes and stack map table attributes are treated as optional.
- *
- * @see AttributeShrinker
- *
- * @author Eric Lafortune
- */
-public class RequiredAttributeFilter
-implements AttributeVisitor
-{
- private final AttributeVisitor requiredAttributeVisitor;
- private final AttributeVisitor optionalAttributeVisitor;
-
-
- /**
- * Creates a new RequiredAttributeFilter for visiting required attributes.
- * @param requiredAttributeVisitor the visitor that will visit required
- * attributes.
- */
- public RequiredAttributeFilter(AttributeVisitor requiredAttributeVisitor)
- {
- this(requiredAttributeVisitor, null);
- }
-
-
- /**
- * Creates a new RequiredAttributeFilter for visiting required and
- * optional attributes.
- * @param requiredAttributeVisitor the visitor that will visit required
- * attributes.
- * @param optionalAttributeVisitor the visitor that will visit optional
- * attributes.
- */
- public RequiredAttributeFilter(AttributeVisitor requiredAttributeVisitor,
- AttributeVisitor optionalAttributeVisitor)
- {
- this.requiredAttributeVisitor = requiredAttributeVisitor;
- this.optionalAttributeVisitor = optionalAttributeVisitor;
- }
-
-
- // Implementations for AttributeVisitor.
-
- public void visitUnknownAttribute(Clazz clazz, UnknownAttribute unknownAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitUnknownAttribute(clazz, unknownAttribute);
- }
- }
-
-
- public void visitBootstrapMethodsAttribute(Clazz clazz, BootstrapMethodsAttribute bootstrapMethodsAttribute)
- {
- if (requiredAttributeVisitor != null)
- {
- requiredAttributeVisitor.visitBootstrapMethodsAttribute(clazz, bootstrapMethodsAttribute);
- }
- }
-
-
- public void visitSourceFileAttribute(Clazz clazz, SourceFileAttribute sourceFileAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitSourceFileAttribute(clazz, sourceFileAttribute);
- }
- }
-
-
- public void visitSourceDirAttribute(Clazz clazz, SourceDirAttribute sourceDirAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitSourceDirAttribute(clazz, sourceDirAttribute);
- }
- }
-
-
- public void visitInnerClassesAttribute(Clazz clazz, InnerClassesAttribute innerClassesAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitInnerClassesAttribute(clazz, innerClassesAttribute);
- }
- }
-
-
- public void visitEnclosingMethodAttribute(Clazz clazz, EnclosingMethodAttribute enclosingMethodAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitEnclosingMethodAttribute(clazz, enclosingMethodAttribute);
- }
- }
-
-
- public void visitDeprecatedAttribute(Clazz clazz, DeprecatedAttribute deprecatedAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitDeprecatedAttribute(clazz, deprecatedAttribute);
- }
- }
-
-
- public void visitDeprecatedAttribute(Clazz clazz, Field field, DeprecatedAttribute deprecatedAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitDeprecatedAttribute(clazz, field, deprecatedAttribute);
- }
- }
-
-
- public void visitDeprecatedAttribute(Clazz clazz, Method method, DeprecatedAttribute deprecatedAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitDeprecatedAttribute(clazz, method, deprecatedAttribute);
- }
- }
-
-
- public void visitSyntheticAttribute(Clazz clazz, SyntheticAttribute syntheticAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitSyntheticAttribute(clazz, syntheticAttribute);
- }
- }
-
-
- public void visitSyntheticAttribute(Clazz clazz, Field field, SyntheticAttribute syntheticAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitSyntheticAttribute(clazz, field, syntheticAttribute);
- }
- }
-
-
- public void visitSyntheticAttribute(Clazz clazz, Method method, SyntheticAttribute syntheticAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitSyntheticAttribute(clazz, method, syntheticAttribute);
- }
- }
-
-
- public void visitSignatureAttribute(Clazz clazz, SignatureAttribute signatureAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitSignatureAttribute(clazz, signatureAttribute);
- }
- }
-
-
- public void visitSignatureAttribute(Clazz clazz, Field field, SignatureAttribute signatureAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitSignatureAttribute(clazz, field, signatureAttribute);
- }
- }
-
-
- public void visitSignatureAttribute(Clazz clazz, Method method, SignatureAttribute signatureAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitSignatureAttribute(clazz, method, signatureAttribute);
- }
- }
-
-
- public void visitConstantValueAttribute(Clazz clazz, Field field, ConstantValueAttribute constantValueAttribute)
- {
- if (requiredAttributeVisitor != null)
- {
- requiredAttributeVisitor.visitConstantValueAttribute(clazz, field, constantValueAttribute);
- }
- }
-
-
- public void visitMethodParametersAttribute(Clazz clazz, Method method, MethodParametersAttribute exceptionsAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitMethodParametersAttribute(clazz, method, exceptionsAttribute);
- }
- }
-
-
- public void visitExceptionsAttribute(Clazz clazz, Method method, ExceptionsAttribute exceptionsAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitExceptionsAttribute(clazz, method, exceptionsAttribute);
- }
- }
-
-
- public void visitCodeAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute)
- {
- if (requiredAttributeVisitor != null)
- {
- requiredAttributeVisitor.visitCodeAttribute(clazz, method, codeAttribute);
- }
- }
-
-
- public void visitStackMapAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, StackMapAttribute stackMapAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitStackMapAttribute(clazz, method, codeAttribute, stackMapAttribute);
- }
- }
-
-
- public void visitStackMapTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, StackMapTableAttribute stackMapTableAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitStackMapTableAttribute(clazz, method, codeAttribute, stackMapTableAttribute);
- }
- }
-
-
- public void visitLineNumberTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LineNumberTableAttribute lineNumberTableAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitLineNumberTableAttribute(clazz, method, codeAttribute, lineNumberTableAttribute);
- }
- }
-
-
- public void visitLocalVariableTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTableAttribute localVariableTableAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitLocalVariableTableAttribute(clazz, method, codeAttribute, localVariableTableAttribute);
- }
- }
-
-
- public void visitLocalVariableTypeTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTypeTableAttribute localVariableTypeTableAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitLocalVariableTypeTableAttribute(clazz, method, codeAttribute, localVariableTypeTableAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitRuntimeVisibleAnnotationsAttribute(clazz, runtimeVisibleAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, Field field, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitRuntimeVisibleAnnotationsAttribute(clazz, field, runtimeVisibleAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitRuntimeVisibleAnnotationsAttribute(clazz, method, runtimeVisibleAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitRuntimeInvisibleAnnotationsAttribute(clazz, runtimeInvisibleAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, Field field, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitRuntimeInvisibleAnnotationsAttribute(clazz, field, runtimeInvisibleAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitRuntimeInvisibleAnnotationsAttribute(clazz, method, runtimeInvisibleAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleParameterAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleParameterAnnotationsAttribute runtimeVisibleParameterAnnotationsAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitRuntimeVisibleParameterAnnotationsAttribute(clazz, method, runtimeVisibleParameterAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleParameterAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleParameterAnnotationsAttribute runtimeInvisibleParameterAnnotationsAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitRuntimeInvisibleParameterAnnotationsAttribute(clazz, method, runtimeInvisibleParameterAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitRuntimeVisibleTypeAnnotationsAttribute(clazz, runtimeVisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Field field, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitRuntimeVisibleTypeAnnotationsAttribute(clazz, field, runtimeVisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitRuntimeVisibleTypeAnnotationsAttribute(clazz, method, runtimeVisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitRuntimeVisibleTypeAnnotationsAttribute(clazz, method, codeAttribute, runtimeVisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, runtimeInvisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Field field, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, field, runtimeInvisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, method, runtimeInvisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, method, codeAttribute, runtimeInvisibleTypeAnnotationsAttribute);
- }
- }
-
-
- public void visitAnnotationDefaultAttribute(Clazz clazz, Method method, AnnotationDefaultAttribute annotationDefaultAttribute)
- {
- if (optionalAttributeVisitor != null)
- {
- optionalAttributeVisitor.visitAnnotationDefaultAttribute(clazz, method, annotationDefaultAttribute);
- }
- }
-}
diff --git a/src/proguard/classfile/attribute/visitor/StackSizeComputer.java b/src/proguard/classfile/attribute/visitor/StackSizeComputer.java
deleted file mode 100644
index d5cd99d..0000000
--- a/src/proguard/classfile/attribute/visitor/StackSizeComputer.java
+++ /dev/null
@@ -1,378 +0,0 @@
-/*
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
- * of Java bytecode.
- *
- * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-package proguard.classfile.attribute.visitor;
-
-import proguard.classfile.*;
-import proguard.classfile.attribute.*;
-import proguard.classfile.instruction.*;
-import proguard.classfile.instruction.visitor.InstructionVisitor;
-import proguard.classfile.util.SimplifiedVisitor;
-import proguard.classfile.visitor.ClassPrinter;
-
-import java.util.Arrays;
-
-/**
- * This AttributeVisitor computes the stack sizes at all instruction offsets
- * of the code attributes that it visits.
- *
- * @author Eric Lafortune
- */
-public class StackSizeComputer
-extends SimplifiedVisitor
-implements AttributeVisitor,
- InstructionVisitor,
- ExceptionInfoVisitor
-{
- //*
- private static final boolean DEBUG = false;
- /*/
- private static boolean DEBUG = true;
- //*/
-
-
- private boolean[] evaluated = new boolean[ClassConstants.TYPICAL_CODE_LENGTH];
- private int[] stackSizes = new int[ClassConstants.TYPICAL_CODE_LENGTH];
-
- private boolean exitInstructionBlock;
-
- private int stackSize;
- private int maxStackSize;
-
-
- /**
- * Returns whether the instruction at the given offset is reachable in the
- * most recently visited code attribute.
- */
- public boolean isReachable(int instructionOffset)
- {
- return evaluated[instructionOffset];
- }
-
-
- /**
- * Returns the stack size at the given instruction offset of the most
- * recently visited code attribute.
- */
- public int getStackSize(int instructionOffset)
- {
- if (!evaluated[instructionOffset])
- {
- throw new IllegalArgumentException("Unknown stack size at unreachable instruction offset ["+instructionOffset+"]");
- }
-
- return stackSizes[instructionOffset];
- }
-
-
- /**
- * Returns the maximum stack size of the most recently visited code attribute.
- */
- public int getMaxStackSize()
- {
- return maxStackSize;
- }
-
-
- // Implementations for AttributeVisitor.
-
- public void visitAnyAttribute(Clazz clazz, Attribute attribute) {}
-
-
- public void visitCodeAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute)
- {
-// DEBUG =
-// clazz.getName().equals("abc/Def") &&
-// method.getName(clazz).equals("abc");
-
- // TODO: Remove this when the code has stabilized.
- // Catch any unexpected exceptions from the actual visiting method.
- try
- {
- // Process the code.
- visitCodeAttribute0(clazz, method, codeAttribute);
- }
- catch (RuntimeException ex)
- {
- System.err.println("Unexpected error while computing stack sizes:");
- System.err.println(" Class = ["+clazz.getName()+"]");
- System.err.println(" Method = ["+method.getName(clazz)+method.getDescriptor(clazz)+"]");
- System.err.println(" Exception = ["+ex.getClass().getName()+"] ("+ex.getMessage()+")");
-
- if (DEBUG)
- {
- method.accept(clazz, new ClassPrinter());
- }
-
- throw ex;
- }
- }
-
-
- public void visitCodeAttribute0(Clazz clazz, Method method, CodeAttribute codeAttribute)
- {
- if (DEBUG)
- {
- System.out.println("StackSizeComputer: "+clazz.getName()+"."+method.getName(clazz)+method.getDescriptor(clazz));
- }
-
- // Try to reuse the previous array.
- int codeLength = codeAttribute.u4codeLength;
- if (evaluated.length < codeLength)
- {
- evaluated = new boolean[codeLength];
- stackSizes = new int[codeLength];
- }
- else
- {
- Arrays.fill(evaluated, 0, codeLength, false);
- }
-
- // The initial stack is always empty.
- stackSize = 0;
- maxStackSize = 0;
-
- // Evaluate the instruction block starting at the entry point of the method.
- evaluateInstructionBlock(clazz, method, codeAttribute, 0);
-
- // Evaluate the exception handlers.
- codeAttribute.exceptionsAccept(clazz, method, this);
- }
-
-
- // Implementations for InstructionVisitor.
-
- public void visitSimpleInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, SimpleInstruction simpleInstruction)
- {
- byte opcode = simpleInstruction.opcode;
-
- // Some simple instructions exit from the current instruction block.
- exitInstructionBlock =
- opcode == InstructionConstants.OP_IRETURN ||
- opcode == InstructionConstants.OP_LRETURN ||
- opcode == InstructionConstants.OP_FRETURN ||
- opcode == InstructionConstants.OP_DRETURN ||
- opcode == InstructionConstants.OP_ARETURN ||
- opcode == InstructionConstants.OP_RETURN ||
- opcode == InstructionConstants.OP_ATHROW;
- }
-
- public void visitConstantInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, ConstantInstruction constantInstruction)
- {
- // Constant pool instructions never end the current instruction block.
- exitInstructionBlock = false;
- }
-
- public void visitVariableInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, VariableInstruction variableInstruction)
- {
- byte opcode = variableInstruction.opcode;
-
- // The ret instruction end the current instruction block.
- exitInstructionBlock =
- opcode == InstructionConstants.OP_RET;
- }
-
- public void visitBranchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, BranchInstruction branchInstruction)
- {
- byte opcode = branchInstruction.opcode;
-
- // Evaluate the target instruction blocks.
- evaluateInstructionBlock(clazz,
- method,
- codeAttribute,
- offset +
- branchInstruction.branchOffset);
-
- // Evaluate the instructions after a subroutine branch.
- if (opcode == InstructionConstants.OP_JSR ||
- opcode == InstructionConstants.OP_JSR_W)
- {
- // We assume subroutine calls (jsr and jsr_w instructions) don't
- // change the stack, other than popping the return value.
- stackSize -= 1;
-
- evaluateInstructionBlock(clazz,
- method,
- codeAttribute,
- offset + branchInstruction.length(offset));
- }
-
- // Some branch instructions always end the current instruction block.
- exitInstructionBlock =
- opcode == InstructionConstants.OP_GOTO ||
- opcode == InstructionConstants.OP_GOTO_W ||
- opcode == InstructionConstants.OP_JSR ||
- opcode == InstructionConstants.OP_JSR_W;
- }
-
-
- public void visitAnySwitchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, SwitchInstruction switchInstruction)
- {
- // Evaluate the target instruction blocks.
-
- // Loop over all jump offsets.
- int[] jumpOffsets = switchInstruction.jumpOffsets;
-
- for (int index = 0; index < jumpOffsets.length; index++)
- {
- // Evaluate the jump instruction block.
- evaluateInstructionBlock(clazz,
- method,
- codeAttribute,
- offset + jumpOffsets[index]);
- }
-
- // Also evaluate the default instruction block.
- evaluateInstructionBlock(clazz,
- method,
- codeAttribute,
- offset + switchInstruction.defaultOffset);
-
- // The switch instruction always ends the current instruction block.
- exitInstructionBlock = true;
- }
-
-
- // Implementations for ExceptionInfoVisitor.
-
- public void visitExceptionInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, ExceptionInfo exceptionInfo)
- {
- if (DEBUG)
- {
- System.out.println("Exception:");
- }
-
- // The stack size when entering the exception handler is always 1.
- stackSize = 1;
-
- // Evaluate the instruction block starting at the entry point of the
- // exception handler.
- evaluateInstructionBlock(clazz,
- method,
- codeAttribute,
- exceptionInfo.u2handlerPC);
- }
-
-
- // Small utility methods.
-
- /**
- * Evaluates a block of instructions that hasn't been handled before,
- * starting at the given offset and ending at a branch instruction, a return
- * instruction, or a throw instruction. Branch instructions are handled
- * recursively.
- */
- private void evaluateInstructionBlock(Clazz clazz,
- Method method,
- CodeAttribute codeAttribute,
- int instructionOffset)
- {
- if (DEBUG)
- {
- if (evaluated[instructionOffset])
- {
- System.out.println("-- (instruction block at "+instructionOffset+" already evaluated)");
- }
- else
- {
- System.out.println("-- instruction block:");
- }
- }
-
- // Remember the initial stack size.
- int initialStackSize = stackSize;
-
- // Remember the maximum stack size.
- if (maxStackSize < stackSize)
- {
- maxStackSize = stackSize;
- }
-
- // Evaluate any instructions that haven't been evaluated before.
- while (!evaluated[instructionOffset])
- {
- // Mark the instruction as evaluated.
- evaluated[instructionOffset] = true;
-
- Instruction instruction = InstructionFactory.create(codeAttribute.code,
- instructionOffset);
-
- if (DEBUG)
- {
- int stackPushCount = instruction.stackPushCount(clazz);
- int stackPopCount = instruction.stackPopCount(clazz);
- System.out.println("["+instructionOffset+"]: "+
- stackSize+" - "+
- stackPopCount+" + "+
- stackPushCount+" = "+
- (stackSize+stackPushCount-stackPopCount)+": "+
- instruction.toString(instructionOffset));
- }
-
- // Compute the instruction's effect on the stack size.
- stackSize -= instruction.stackPopCount(clazz);
-
- if (stackSize < 0)
- {
- throw new IllegalArgumentException("Stack size becomes negative after instruction "+
- instruction.toString(instructionOffset)+" in ["+
- clazz.getName()+"."+
- method.getName(clazz)+
- method.getDescriptor(clazz)+"]");
- }
-
- stackSizes[instructionOffset] =
- stackSize += instruction.stackPushCount(clazz);
-
- // Remember the maximum stack size.
- if (maxStackSize < stackSize)
- {
- maxStackSize = stackSize;
- }
-
- // Remember the next instruction offset.
- int nextInstructionOffset = instructionOffset +
- instruction.length(instructionOffset);
-
- // Visit the instruction, in order to handle branches.
- instruction.accept(clazz, method, codeAttribute, instructionOffset, this);
-
- // Stop evaluating after a branch.
- if (exitInstructionBlock)
- {
- break;
- }
-
- // Continue with the next instruction.
- instructionOffset = nextInstructionOffset;
-
- if (DEBUG)
- {
- if (evaluated[instructionOffset])
- {
- System.out.println("-- (instruction at "+instructionOffset+" already evaluated)");
- }
- }
- }
-
- // Restore the stack size for possible subsequent instruction blocks.
- this.stackSize = initialStackSize;
- }
-}
diff --git a/src/proguard/classfile/attribute/visitor/package.html b/src/proguard/classfile/attribute/visitor/package.html
deleted file mode 100644
index 056244a..0000000
--- a/src/proguard/classfile/attribute/visitor/package.html
+++ /dev/null
@@ -1,3 +0,0 @@
-<body>
-This package contains visitors for attributes and their components.
-</body>