• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * ProGuard -- shrinking, optimization, obfuscation, and preverification
3  *             of Java bytecode.
4  *
5  * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
6  *
7  * This program is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU General Public License as published by the Free
9  * Software Foundation; either version 2 of the License, or (at your option)
10  * any later version.
11  *
12  * This program is distributed in the hope that it will be useful, but WITHOUT
13  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15  * more details.
16  *
17  * You should have received a copy of the GNU General Public License along
18  * with this program; if not, write to the Free Software Foundation, Inc.,
19  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20  */
21 package proguard.classfile.visitor;
22 
23 import proguard.classfile.*;
24 
25 /**
26  * This interface specifies the methods for a visitor of method parameters or
27  * field types (which can be considered parameters when storing values). The
28  * parameters do not include or count the 'this' parameter or the method return
29  * value.
30  *
31  * @author Eric Lafortune
32  */
33 public interface ParameterVisitor
34 {
35     /**
36      * Visits the given parameter.
37      * @param clazz           the class of the method.
38      * @param member          the field or method of the parameter.
39      * @param parameterIndex  the index of the parameter.
40      * @param parameterCount  the total number of parameters.
41      * @param parameterOffset the offset of the parameter, accounting for
42      *                        longs and doubles taking up two entries.
43      * @param parameterSize   the total size of the parameters, accounting for
44      *                        longs and doubles taking up two entries.
45      * @param parameterType   the parameter type.
46      * @param referencedClass the class contained in the parameter type, if any.
47      */
visitParameter(Clazz clazz, Member member, int parameterIndex, int parameterCount, int parameterOffset, int parameterSize, String parameterType, Clazz referencedClass)48     public void visitParameter(Clazz  clazz,
49                                Member member,
50                                int    parameterIndex,
51                                int    parameterCount,
52                                int    parameterOffset,
53                                int    parameterSize,
54                                String parameterType,
55                                Clazz  referencedClass);
56 }
57