class TerminalProperties {

    @Override
    public boolean equals(final Object obj) {
        if (obj == null) {
            return false;
        }
        if (obj == this) {
            return true;
        }
        if (obj.getClass() != getClass()) {
            return false;
        }
        final TerminalProperties rhs = (TerminalProperties) obj;
        return new EqualsBuilder().append(skipEnvset, rhs.skipEnvset).append(osPromptPattern, rhs.osPromptPattern)
                .append(cclPromptPattern, rhs.cclPromptPattern).append(cclLoginPromptPattern, rhs.cclLoginPromptPattern)
                .append(cclLoginSuccessPromptPattern, rhs.cclLoginSuccessPromptPattern)
                .append(cclLoginFailurePromptPatterns, rhs.cclLoginFailurePromptPatterns)
                .append(expectationTimeout, rhs.expectationTimeout).append(logfileLocation, rhs.logfileLocation)
                .append(specifyDebugCcl, rhs.specifyDebugCcl).isEquals();
    }

    private  TerminalProperties();
    private  TerminalProperties(final TerminalPropertiesBuilder builder);

}