1 25 package classycle; 26 27 import classycle.graph.NameAttributes; 28 29 39 public class ClassAttributes extends NameAttributes { 40 41 public static final String INTERFACE = "interface", 42 ABSTRACT_CLASS = "abstract class", 43 CLASS = "class", 44 UNKNOWN = "unknown external class"; 45 46 private final String _type; 47 private final boolean _innerClass; 48 private final int _size; 49 50 57 public ClassAttributes(String name, String type, int size) { 58 super(name); 59 _type = type; 60 _innerClass = name != null && name.indexOf('$') > 0; 61 _size = size; 62 } 63 64 70 public static ClassAttributes createInterface(String name, int size) { 71 return new ClassAttributes(name, INTERFACE, size); 72 } 73 74 80 public static ClassAttributes createAbstractClass(String name, int size) { 81 return new ClassAttributes(name, ABSTRACT_CLASS, size); 82 } 83 84 90 public static ClassAttributes createClass(String name, int size) { 91 return new ClassAttributes(name, CLASS, size); 92 } 93 94 100 public static ClassAttributes createUnknownClass(String name, int size) { 101 return new ClassAttributes(name, UNKNOWN, size); 102 } 103 104 109 public String getType() { 110 return _type; 111 } 112 113 114 public boolean isInnerClass() { 115 return _innerClass; 116 } 117 118 119 public int getSize() { 120 return _size; 121 } 122 123 124 public String toString() { 125 StringBuffer buffer = new StringBuffer (_innerClass ? "inner " : ""); 126 buffer.append(_type).append(' ').append(getName()); 127 if (_size > 0) { 128 buffer.append(" (").append(_size).append(" bytes)"); 129 } 130 return new String (buffer); 131 } 132 } | Popular Tags |