Object[] (Object component, String key, String type) { Object classname = getClass(component); Object currentname = classname; while (classname != null) { for (int i = 0; i < dtd.length; i += 3) { if (dtd[i] == classname) { Object[][] attributes = (Object[][])dtd[i + 2]; for (int j = 0; j < attributes.length; j++) { if (attributes[j][1].equals(key)) { if ((type != null) && (type != attributes[j][0])) { throw new IllegalArgumentException(attributes[j][0].toString()); } return attributes[j]; } } classname = dtd[i + 1]; break; } } } throw new IllegalArgumentException("unknown " + key + " " + type + " for " + currentname); }