DirectInputGroup groupCopy = group;
WritableUtils.writeString(out, groupCopy.containerPath);
WritableUtils.writeString(out, groupCopy.dataType.getName());
WritableUtils.writeString(out, groupCopy.formatClass.getName());
DirectInputFragment fragmentCopy = fragment;
WritableUtils.writeString(out, fragmentCopy.getPath());
WritableUtils.writeVLong(out, fragmentCopy.getOffset());
WritableUtils.writeVLong(out, fragmentCopy.getSize());
List<String> ownerNodeNames = fragmentCopy.getOwnerNodeNames();
WritableUtils.writeStringArray(out, ownerNodeNames.toArray(new String[ownerNodeNames.size()]));
Map<String, String> attributes = fragmentCopy.getAttributes();
WritableUtils.writeVInt(out, attributes.size());
for (Map.Entry<String, String> entry : attributes.entrySet()) {
WritableUtils.writeString(out, entry.getKey());
WritableUtils.writeString(out, entry.getValue());
}