package com.contrastsecurity.cassandra.migration.config; public class Cluster { private static final String PROPERTY_PREFIX = "cassandra.migration.cluster."; public enum ClusterProperty { CONTACTPOINTS(PROPERTY_PREFIX + "contactpoints", "Comma separated values of node IP addresses"), PORT(PROPERTY_PREFIX + "port", "CQL native transport port"), USERNAME(PROPERTY_PREFIX + "username", "Username for password authenticator"), PASSWORD(PROPERTY_PREFIX + "password", "Password for password authenticator"); private String name; private String description; ClusterProperty(String name, String description) { this.name = name; this.description = description; } public String getName() { return name; } public String getDescription() { return description; } } private String[] contactpoints = {"localhost"}; private int port = 9042; private String username; private String password; public Cluster() { String contactpointsP = System.getProperty(ClusterProperty.CONTACTPOINTS.getName()); if (null != contactpointsP && contactpointsP.trim().length() != 0) this.contactpoints = contactpointsP.replaceAll("\\s+", "").split("[,]"); String portP = System.getProperty(ClusterProperty.PORT.getName()); if (null != portP && portP.trim().length() != 0) this.port = Integer.parseInt(portP); String usernameP = System.getProperty(ClusterProperty.USERNAME.getName()); if (null != usernameP && usernameP.trim().length() != 0) this.username = usernameP; String passwordP = System.getProperty(ClusterProperty.PASSWORD.getName()); if (null != passwordP && passwordP.trim().length() != 0) this.password = passwordP; } public String[] getContactpoints() { return contactpoints; } public void setContactpoints(String... contactpoints) { this.contactpoints = contactpoints; } public int getPort() { return port; } public void setPort(int port) { this.port = port; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }