Add more comment for deepCloning
Test: unit tests
Bug: 156312817
Change-Id: Ia864828136b69c408347ffc83a0d5e3a475e16e1
diff --git a/src/com/android/tradefed/config/Configuration.java b/src/com/android/tradefed/config/Configuration.java
index d3152e5..a6125dc 100644
--- a/src/com/android/tradefed/config/Configuration.java
+++ b/src/com/android/tradefed/config/Configuration.java
@@ -703,6 +703,7 @@
return clone;
}
+ /** {@inheritDoc} */
@Override
public IConfiguration partialDeepClone(List<String> objectToDeepClone, IKeyStoreClient client)
throws ConfigurationException {
@@ -713,17 +714,19 @@
QuotationAwareTokenizer.tokenizeLine(this.getCommandLine()),
null,
client);
- boolean shouldCopyDevice = false;
+ // Handle the "device" object holder since it contains more objects.
if (objectToDeepClone.contains(Configuration.DEVICE_NAME)) {
clonedConfig.setConfigurationObjectList(
Configuration.DEVICE_NAME,
deepCopy.getConfigurationObjectList(Configuration.DEVICE_NAME));
} else {
+ boolean shouldCopyDevice = false;
for (String objType : objectToDeepClone) {
if (doesBuiltInObjSupportMultiDevice(objType)) {
shouldCopyDevice = true;
}
}
+ // Shallow clone the device object if we only need to deep copy one of its objects.
if (shouldCopyDevice) {
List<IDeviceConfiguration> deviceConfigs = new ArrayList<>();
for (IDeviceConfiguration holder : deepCopy.getDeviceConfig()) {