01: /**
02: * JavaGuard -- an obfuscation package for Java classfiles.
03: *
04: * Copyright (c) 1999 Mark Welsh (markw@retrologic.com)
05: * Copyright (c) 2002 Thorsten Heit (theit@gmx.de)
06: *
07: * This library is free software; you can redistribute it and/or
08: * modify it under the terms of the GNU Lesser General Public
09: * License as published by the Free Software Foundation; either
10: * version 2 of the License, or (at your option) any later version.
11: *
12: * This library is distributed in the hope that it will be useful,
13: * but WITHOUT ANY WARRANTY; without even the implied warranty of
14: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15: * Lesser General Public License for more details.
16: *
17: * You should have received a copy of the GNU Lesser General Public
18: * License along with this library; if not, write to the Free Software
19: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20: *
21: * The author may be contacted at theit@gmx.de.
22: *
23: *
24: * $Id: NameMapper.java,v 1.3 2002/05/28 17:25:09 glurk Exp $
25: */package net.sf.javaguard.classfile;
26:
27: /** Interface to a class, method, field remapping table.
28: *
29: * @author <a href="mailto:theit@gmx.de">Thorsten Heit</a>
30: * @author <a href="mailto:markw@retrologic.com">Mark Welsh</a>
31: */
32: public interface NameMapper {
33: /** Return a list of attributes marked to keep.
34: * @return list of attributes to keep
35: */
36: public String[] getAttrsToKeep();
37:
38: /** Mapping for fully qualified class name.
39: * @param className the fully qualified class name
40: * @return the mapped class name
41: */
42: public String mapClass(String className);
43:
44: /** Mapping for method name, of fully qualified class.
45: * @param className the fully qualified class name
46: * @param methodName the method name
47: * @param descriptor the method descriptor
48: * @return the mapped method name; null if no mapping is found
49: */
50: public String mapMethod(String className, String methodName,
51: String descriptor);
52:
53: /** Mapping for field name, of fully qualified class.
54: * @param className the fully qualified class name
55: * @param fieldName the field name
56: * @return the mapped field name; null if no mapping is found
57: */
58: public String mapField(String className, String fieldName);
59:
60: /** Mapping for descriptor of field or method.
61: * @param descriptor the descriptor of a field or method
62: * @return the mapped descriptor name
63: */
64: public String mapDescriptor(String descriptor);
65: }
|