@Override
	public DataType toDataType() throws DuplicateNameException, IOException {
		String className = OatClass_S_T.class.getSimpleName();

		if (methods_pointer_.size() > 0) {
			className += "_" + methods_pointer_.size();
		}
		if (bitmap_.length > 0) {
			className += "_" + bitmap_.length;
		}

		Structure structure = new StructureDataType(className, 0);
		structure.add(statusEnum.toDataType(), "status_", null);
		structure.add(OatClassType.toData(), "type", null);

		if (type_ != OatClassType.kOatClassNoneCompiled.ordinal()) {
			structure.add(DWORD, "num_methods_", null);

			if (type_ == OatClassType.kOatClassSomeCompiled.ordinal()) {
				if (bitmap_.length > 0) {
					DataType bitmapDataType =
						new ArrayDataType(BYTE, bitmap_.length, BYTE.getLength());
					structure.add(bitmapDataType, "bitmap", null);
				}
			}

			for (int i = 0; i < methods_pointer_.size(); ++i) {
				structure.add(methods_pointer_.get(i).toDataType(), "methods_pointer_" + i, null);
			}
		}

		structure.setCategoryPath(new CategoryPath("/oat"));
		return structure;
	}
Computes the number of bytes required to store the bitmap.
@return the number of bytes required to store the bitmap
Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/android/oat/oatclass/OatClass_S_T.java