package com.sequenceiq.cloudbreak.converter; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import com.sequenceiq.cloudbreak.api.model.AmbariDatabaseDetailsJson; import com.sequenceiq.cloudbreak.api.model.DatabaseVendor; import com.sequenceiq.cloudbreak.cloud.model.AmbariDatabase; @Component public class AmbariDatabaseDetailsJsonToAmbariDatabaseConverter extends AbstractConversionServiceAwareConverter<AmbariDatabaseDetailsJson, AmbariDatabase> { @Value("${cb.ambari.database.vendor}") private String vendor; @Value("${cb.ambari.database.name}") private String name; @Value("${cb.ambari.database.host}") private String host; @Value("${cb.ambari.database.port}") private Integer port; @Value("${cb.ambari.database.username}") private String userName; @Value("${cb.ambari.database.password}") private String password; @Override public AmbariDatabase convert(AmbariDatabaseDetailsJson source) { AmbariDatabase ambariDatabase; if (source == null || source.getVendor() == null) { ambariDatabase = getDefault(); } else { ambariDatabase = new AmbariDatabase(source.getVendor().value(), source.getVendor().fancyName(), source.getName(), source.getHost(), source.getPort(), source.getUserName(), source.getPassword()); } return ambariDatabase; } private AmbariDatabase getDefault() { DatabaseVendor databaseVendor = DatabaseVendor.fromValue(vendor); return new AmbariDatabase(databaseVendor.value(), databaseVendor.fancyName(), name, host, port, userName, password); } }