001/* 002 * BioJava development code 003 * 004 * This code may be freely distributed and modified under the 005 * terms of the GNU Lesser General Public Licence. This should 006 * be distributed with the code. If you do not have a copy, 007 * see: 008 * 009 * http://www.gnu.org/copyleft/lesser.html 010 * 011 * Copyright for this code is held jointly by the individual 012 * authors. These should be listed in @author doc comments. 013 * 014 * For more information on the BioJava project and its aims, 015 * or to join the biojava-l mailing list, visit the home page 016 * at: 017 * 018 * http://www.biojava.org/ 019 * 020 */ 021package org.biojava.utils.bytecode; 022 023/** 024 * Wrap up details about a field in a Java class file. 025 * 026 * <p> 027 * Instances of this type will be instantiated by CodeClass instances, using 028 * the getField() methods. 029 * </p> 030 * 031 * @author Thomas Down 032 * @author Matthew Pocock 033 */ 034public final class CodeField { 035 private final String name; 036 private final CodeClass clazz; 037 private final int modifiers; 038 private final CodeClass container; 039 040 CodeField(CodeClass container, String name, CodeClass clazz, int mods) { 041 this.container = container; 042 this.name = name; 043 this.clazz = clazz; 044 this.modifiers = mods; 045 } 046 047 /** 048 * Get the name of the field. 049 * 050 * @return the name of the field 051 */ 052 public String getName() { 053 return name; 054 } 055 056 /** 057 * Get the fully qualified name of the field. 058 * 059 * @return the fully qualified name 060 */ 061 public String getFullName() { 062 return container.getName() + "." + getName(); 063 } 064 065 /** 066 * Get the class that contains this field. 067 * 068 * @return the containing class 069 */ 070 public CodeClass getContainingClass() { 071 return container; 072 } 073 074 /** 075 * Get the type of the field. 076 * 077 * @return 078 */ 079 public CodeClass getType() { 080 return clazz; 081 } 082 083 /** 084 * Get the moddifiers applied to this field. 085 * 086 * @return the modifiers 087 */ 088 public int getModifiers() { 089 return modifiers; 090 } 091 092 public String toString() { 093 return super.toString() + 094 " type: " + getType() + 095 " class: " + clazz.getName() + 096 " name: " + getName(); 097 } 098}