private AdditionalProperties mapAdditionalProperties(ResultSet rs, Provider<?> entity) throws SQLException {
switch (entity.getType()) {
case EXTERNAL_NETWORK:
case OPENSTACK_NETWORK:
OpenstackNetworkProviderProperties networkProperties = new OpenstackNetworkProviderProperties();
mapOpenStackProperties(rs, networkProperties);
networkProperties.setReadOnly(rs.getBoolean("read_only"));
networkProperties.setAutoSync(rs.getBoolean("auto_sync"));
networkProperties.setPluginType(rs.getString("plugin_type"));
networkProperties.setAgentConfiguration(SerializationFactory.getDeserializer()
.deserialize(rs.getString("agent_configuration"), AgentConfiguration.class));
return networkProperties;
case OPENSTACK_IMAGE:
OpenStackImageProviderProperties imageProperties = new OpenStackImageProviderProperties();
mapOpenStackProperties(rs, imageProperties);
return imageProperties;
case OPENSTACK_VOLUME:
OpenStackVolumeProviderProperties volumeProperties = new OpenStackVolumeProviderProperties();
mapOpenStackProperties(rs, volumeProperties);
return volumeProperties;
case VMWARE:
return SerializationFactory.getDeserializer().deserialize(rs.getString("additional_properties"), VmwareVmProviderProperties.class);
case KVM:
return SerializationFactory.getDeserializer().deserialize(rs.getString("additional_properties"), KVMVmProviderProperties.class);
case XEN:
return SerializationFactory.getDeserializer().deserialize(rs.getString("additional_properties"), XENVmProviderProperties.class);
default:
return null;
}
}