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: MdFd.java,v 1.4 2002/05/11 22:48:53 glurk Exp $
25: */package net.sf.javaguard;
26:
27: import java.lang.reflect.Modifier;
28:
29: /** Base to method and field tree items.
30: *
31: * @author <a href="mailto:theit@gmx.de">Thorsten Heit</a>
32: * @author <a href="mailto:markw@retrologic.com">Mark Welsh</a>
33: */
34: abstract public class MdFd extends TreeItem {
35: /** Holds the method or field descriptor. */
36: private String descriptor = null;
37:
38: /** Ctor.
39: */
40: public MdFd(TreeItem parent, boolean synthetic, String name,
41: String descriptor, int access) {
42: super (parent, name);
43: setDescriptor(descriptor);
44: setModifiers(access);
45: setSynthetic(synthetic);
46: if (name.equals("") || descriptor.equals("")
47: || !(parent instanceof Cl)) {
48: throw new InternalError(
49: "Internal error: method/field must have name and descriptor, and have Class or Interface as parent");
50: }
51:
52: // Disallow obfuscation of 'Synthetic' and native methods and fields
53: if (isSynthetic() || Modifier.isNative(getModifiers())) {
54: setOutName(getInName());
55: }
56: }
57:
58: /** Sets the method or field descriptor.
59: * @param descr the method or field descriptor.
60: * @see #getDescriptor
61: */
62: protected void setDescriptor(String descr) {
63: this .descriptor = descr;
64: }
65:
66: /** Return the method or field descriptor.
67: * @return method or field descriptor
68: * @see #setDescriptor
69: */
70: public String getDescriptor() {
71: return descriptor;
72: }
73: }
|