private void writeCodeAttributeBands()

in src/main/java/org/apache/commons/compress/harmony/pack200/ClassBands.java [1248:1350]


	private void writeCodeAttributeBands(final OutputStream out) throws IOException, Pack200Exception {
		byte[] encodedBand = encodeFlags("codeFlags", longListToArray(codeFlags), Codec.UNSIGNED5, Codec.UNSIGNED5,
				segmentHeader.have_code_flags_hi());
		out.write(encodedBand);
		PackingUtils.log("Wrote " + encodedBand.length + " bytes from codeFlags[" + codeFlags.size() + "]");

		// *code_attr_count :UNSIGNED5 [COUNT(1<<16,...)]
		// *code_attr_indexes :UNSIGNED5 [SUM(*code_attr_count)]
		encodedBand = encodeBandInt("code_attr_calls", code_attr_calls, Codec.UNSIGNED5);
		out.write(encodedBand);
		PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_attr_calls[" + code_attr_calls.length + "]");

		encodedBand = encodeBandInt("code_LineNumberTable_N", codeLineNumberTableN.toArray(), Codec.UNSIGNED5);
		out.write(encodedBand);
		PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LineNumberTable_N["
				+ codeLineNumberTableN.size() + "]");

		encodedBand = encodeBandInt("code_LineNumberTable_bci_P", integerListToArray(codeLineNumberTableBciP),
				Codec.BCI5);
		out.write(encodedBand);
		PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LineNumberTable_bci_P["
				+ codeLineNumberTableBciP.size() + "]");

		encodedBand = encodeBandInt("code_LineNumberTable_line", codeLineNumberTableLine.toArray(), Codec.UNSIGNED5);
		out.write(encodedBand);
		PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LineNumberTable_line["
				+ codeLineNumberTableLine.size() + "]");

		encodedBand = encodeBandInt("code_LocalVariableTable_N", codeLocalVariableTableN.toArray(), Codec.UNSIGNED5);
		out.write(encodedBand);
		PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTable_N["
				+ codeLocalVariableTableN.size() + "]");

		encodedBand = encodeBandInt("code_LocalVariableTable_bci_P", integerListToArray(codeLocalVariableTableBciP),
				Codec.BCI5);
		out.write(encodedBand);
		PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTable_bci_P["
				+ codeLocalVariableTableBciP.size() + "]");

		encodedBand = encodeBandInt("code_LocalVariableTable_span_O", integerListToArray(codeLocalVariableTableSpanO),
				Codec.BRANCH5);
		out.write(encodedBand);
		PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTable_span_O["
				+ codeLocalVariableTableSpanO.size() + "]");

		encodedBand = encodeBandInt("code_LocalVariableTable_name_RU", cpEntryListToArray(codeLocalVariableTableNameRU),
				Codec.UNSIGNED5);
		out.write(encodedBand);
		PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTable_name_RU["
				+ codeLocalVariableTableNameRU.size() + "]");

		encodedBand = encodeBandInt("code_LocalVariableTable_type_RS", cpEntryListToArray(codeLocalVariableTableTypeRS),
				Codec.UNSIGNED5);
		out.write(encodedBand);
		PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTable_type_RS["
				+ codeLocalVariableTableTypeRS.size() + "]");

		encodedBand = encodeBandInt("code_LocalVariableTable_slot", codeLocalVariableTableSlot.toArray(),
				Codec.UNSIGNED5);
		out.write(encodedBand);
		PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTable_slot["
				+ codeLocalVariableTableSlot.size() + "]");

		encodedBand = encodeBandInt("code_LocalVariableTypeTable_N", codeLocalVariableTypeTableN.toArray(),
				Codec.UNSIGNED5);
		out.write(encodedBand);
		PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTypeTable_N["
				+ codeLocalVariableTypeTableN.size() + "]");

		encodedBand = encodeBandInt("code_LocalVariableTypeTable_bci_P",
				integerListToArray(codeLocalVariableTypeTableBciP), Codec.BCI5);
		out.write(encodedBand);
		PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTypeTable_bci_P["
				+ codeLocalVariableTypeTableBciP.size() + "]");

		encodedBand = encodeBandInt("code_LocalVariableTypeTable_span_O",
				integerListToArray(codeLocalVariableTypeTableSpanO), Codec.BRANCH5);
		out.write(encodedBand);
		PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTypeTable_span_O["
				+ codeLocalVariableTypeTableSpanO.size() + "]");

		encodedBand = encodeBandInt("code_LocalVariableTypeTable_name_RU",
				cpEntryListToArray(codeLocalVariableTypeTableNameRU), Codec.UNSIGNED5);
		out.write(encodedBand);
		PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTypeTable_name_RU["
				+ codeLocalVariableTypeTableNameRU.size() + "]");

		encodedBand = encodeBandInt("code_LocalVariableTypeTable_type_RS",
				cpEntryListToArray(codeLocalVariableTypeTableTypeRS), Codec.UNSIGNED5);
		out.write(encodedBand);
		PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTypeTable_type_RS["
				+ codeLocalVariableTypeTableTypeRS.size() + "]");

		encodedBand = encodeBandInt("code_LocalVariableTypeTable_slot", codeLocalVariableTypeTableSlot.toArray(),
				Codec.UNSIGNED5);
		out.write(encodedBand);
		PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTypeTable_slot["
				+ codeLocalVariableTypeTableSlot.size() + "]");

		for (final NewAttributeBands bands : codeAttributeBands) {
			bands.pack(out);
		}
	}