public void visit(final int version, final int access, final String name,
			final String signature, final String superName,
			final String[] interfaces) {
		StringBuffer sb = new StringBuffer();
		appendAccess(access | ACCESS_CLASS, sb);

		AttributesImpl att = new AttributesImpl();
		att.addAttribute("", "access", "access", "", sb.toString());
		if (name != null) {
			att.addAttribute("", "name", "name", "", name);
		}
		if (signature != null) {
			att.addAttribute("", "signature", "signature", "",
					encode(signature));
		}
		if (superName != null) {
			att.addAttribute("", "parent", "parent", "", superName);
		}
		att.addAttribute("", "major", "major", "",
				Integer.toString(version & 0xFFFF));
		att.addAttribute("", "minor", "minor", "",
				Integer.toString(version >>> 16));
		addStart("class", att);

		addStart("interfaces", new AttributesImpl());
		if (interfaces != null && interfaces.length > 0) {
			for (int i = 0; i < interfaces.length; i++) {
				AttributesImpl att2 = new AttributesImpl();
				att2.addAttribute("", "name", "name", "", interfaces[i]);
				addElement("interface", att2);
			}
		}
		addEnd("interfaces");
	}