@Override
public void addAll(ObjectPartList other) {
if (logger.isTraceEnabled(LogMarker.VERSIONED_OBJECT_LIST_VERBOSE)) {
logger.trace(LogMarker.VERSIONED_OBJECT_LIST_VERBOSE, "VOL.addAll(other={}; this={}", other,
this);
}
int myTypeArrayLength = this.hasKeys ? this.keys.size() : this.objects.size();
int otherTypeArrayLength = other.hasKeys ? other.keys.size() : other.objects.size();
super.addAll(other);
VersionedObjectList vother = (VersionedObjectList) other;
this.regionIsVersioned |= vother.regionIsVersioned;
this.versionTags.addAll(vother.versionTags);
if (myTypeArrayLength > 0 || otherTypeArrayLength > 0) {
int newSize = myTypeArrayLength + otherTypeArrayLength;
if (this.objectTypeArray != null) {
newSize = Math.max(newSize, this.objectTypeArray.length);
if (this.objectTypeArray.length < newSize) {
byte[] temp = this.objectTypeArray;
this.objectTypeArray = new byte[newSize];
System.arraycopy(temp, 0, this.objectTypeArray, 0, temp.length);
}
} else {
this.objectTypeArray = new byte[newSize];
}
if (other.objectTypeArray != null) {
System.arraycopy(other.objectTypeArray, 0, this.objectTypeArray, myTypeArrayLength,
otherTypeArrayLength);
}
}
}