package rocks.inspectit.ui.rcp.util.data; import org.apache.commons.lang.StringUtils; import rocks.inspectit.shared.all.communication.data.SqlStatementData; /** * Helper class for displaying the database info. * * @author Ivan Senic * */ public class DatabaseInfoHelper { /** * The URL that the connection uses. */ private String databaseUrl; /** * The name of the database product. */ private String databaseProductName; /** * The version of the database product. */ private String databaseProductVersion; /** * Default constructor. * * @param sqlStatementData * {@link SqlStatementData} to copy the database information from. */ public DatabaseInfoHelper(SqlStatementData sqlStatementData) { this.databaseProductName = sqlStatementData.getDatabaseProductName(); this.databaseProductVersion = sqlStatementData.getDatabaseProductVersion(); this.databaseUrl = sqlStatementData.getDatabaseUrl(); } /** * Gets {@link #databaseUrl}. * * @return {@link #databaseUrl} */ public String getDatabaseUrl() { if (StringUtils.isNotBlank(databaseUrl)) { return databaseUrl; } else { return "Unknown"; } } /** * @return Returns long description text or <code>null</code> if {@link #databaseProductName} is * not specified. */ public String getLongText() { if (StringUtils.isNotEmpty(databaseProductName)) { StringBuilder stringBuilder = new StringBuilder(databaseProductName); if (StringUtils.isNotEmpty(databaseProductVersion)) { stringBuilder.append(" v. "); stringBuilder.append(databaseProductVersion); } if (StringUtils.isNotEmpty(databaseUrl)) { stringBuilder.append(" (URL: "); stringBuilder.append(databaseUrl); stringBuilder.append(')'); } return stringBuilder.toString(); } else { return null; } } /** * {@inheritDoc} */ @Override public int hashCode() { final int prime = 31; int result = 1; result = (prime * result) + ((databaseProductName == null) ? 0 : databaseProductName.hashCode()); result = (prime * result) + ((databaseProductVersion == null) ? 0 : databaseProductVersion.hashCode()); result = (prime * result) + ((databaseUrl == null) ? 0 : databaseUrl.hashCode()); return result; } /** * {@inheritDoc} */ @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } DatabaseInfoHelper other = (DatabaseInfoHelper) obj; if (databaseProductName == null) { if (other.databaseProductName != null) { return false; } } else if (!databaseProductName.equals(other.databaseProductName)) { return false; } if (databaseProductVersion == null) { if (other.databaseProductVersion != null) { return false; } } else if (!databaseProductVersion.equals(other.databaseProductVersion)) { return false; } if (databaseUrl == null) { if (other.databaseUrl != null) { return false; } } else if (!databaseUrl.equals(other.databaseUrl)) { return false; } return true; } }