package org.ovirt.engine.core.common.action; import java.util.HashMap; import java.util.Map.Entry; import java.util.Set; import java.util.logging.Logger; import com.google.gwt.user.client.rpc.SerializationException; import com.google.gwt.user.client.rpc.SerializationStreamReader; import com.google.gwt.user.client.rpc.SerializationStreamWriter; import org.ovirt.engine.core.common.businessentities.DiskImage; import org.ovirt.engine.core.common.businessentities.DiskImageBase; import org.ovirt.engine.core.common.businessentities.VmStatic; import org.ovirt.engine.core.compat.Guid; public class AddVmFromTemplateParameters_CustomFieldSerializer { private static Logger logger = Logger.getLogger(AddVmFromTemplateParameters.class.getName()); public static void deserialize(SerializationStreamReader streamReader, AddVmFromTemplateParameters instance) throws SerializationException { } public static AddVmFromTemplateParameters instantiate(SerializationStreamReader streamReader) throws SerializationException { logger.severe("Instantiating AddVmFromTemplateParameters via custom serializer."); AddVmFromTemplateParameters instance = new AddVmFromTemplateParameters((VmStatic) streamReader.readObject(), updateDiskImageChildrens(streamReader), (Guid) streamReader.readObject()); instance.setMakeCreatorExplicitOwner(streamReader.readBoolean()); return instance; } private static HashMap<String, DiskImageBase> updateDiskImageChildrens(SerializationStreamReader streamReader) throws SerializationException { HashMap<String, DiskImageBase> diskInfoList = (HashMap<String, DiskImageBase>)streamReader.readObject(); Set<Entry<String, DiskImageBase>> entrySet = diskInfoList.entrySet(); for (Entry<String, DiskImageBase> entry : entrySet) { if (entry.getValue() instanceof DiskImage) { DiskImage diskImage = (DiskImage) entry.getValue(); diskImage.setchildrenId(new Guid[0]); diskInfoList.put(entry.getKey(), diskImage); } } return diskInfoList; } public static void serialize(SerializationStreamWriter streamWriter, AddVmFromTemplateParameters instance) throws SerializationException { logger.severe("Serializing AddVmFromTemplateParameters."); streamWriter.writeObject(instance.getVmStaticData()); streamWriter.writeObject(instance.getDiskInfoList()); streamWriter.writeObject(instance.getStorageDomainId()); streamWriter.writeBoolean(instance.isMakeCreatorExplicitOwner()); } }