001    package org.apache.torque.mojo;
002    
003    import java.util.Properties;
004    
005    import org.apache.commons.lang.StringUtils;
006    
007    public class ImpexError {
008            Throwable throwable;
009            String message;
010            Properties info;
011            String url;
012            String driver;
013            boolean showPassword;
014    
015            public Throwable getThrowable() {
016                    return throwable;
017            }
018    
019            public void setThrowable(Throwable throwable) {
020                    this.throwable = throwable;
021            }
022    
023            public String getMessage() {
024                    return message;
025            }
026    
027            public void setMessage(String message) {
028                    this.message = message;
029            }
030    
031            public Properties getInfo() {
032                    return info;
033            }
034    
035            public void setInfo(Properties info) {
036                    this.info = info;
037            }
038    
039            public String toString() {
040                    StringBuffer sb = new StringBuffer();
041                    sb.append("\n\n");
042                    if (!StringUtils.isEmpty(message)) {
043                            sb.append(message + "\n\n");
044                    }
045                    if (getThrowable() != null) {
046                            sb.append("------------------------------------------------------\n");
047                            String emsg = getThrowable().getMessage();
048                            sb.append(emsg);
049                            if (!emsg.endsWith("\n")) {
050                                    sb.append("\n");
051                            }
052                    }
053                    sb.append(toString(getInfo()));
054                    return sb.toString();
055            }
056    
057            public String toString(Properties info) {
058                    StringBuffer sb = new StringBuffer();
059                    sb.append("------------------------------------------------------\n\n");
060                    sb.append("The following information was provided to JDBC:\n");
061                    sb.append("------------------------------------------------------\n");
062                    sb.append("URL: " + getUrl() + "\n");
063                    sb.append("Driver: " + getDriver() + "\n");
064                    String username = info.getProperty(AbstractSQLExecutorMojo.DRIVER_INFO_PROPERTIES_USER);
065                    if (StringUtils.isEmpty(username)) {
066                            sb.append("Username: [No username was supplied]\n");
067                    } else {
068                            sb.append("Username: " + username + "\n");
069                    }
070                    String password = info.getProperty(AbstractSQLExecutorMojo.DRIVER_INFO_PROPERTIES_PASSWORD);
071                    if (isShowPassword()) {
072                            sb.append("Password: " + password + "\n");
073                    } else {
074                            if (StringUtils.isEmpty(password)) {
075                                    sb.append("Password: [No password was supplied]\n");
076                            } else {
077                                    sb.append("Password: *******\n");
078                            }
079                    }
080                    sb.append("------------------------------------------------------\n");
081                    sb.append("\n");
082                    return sb.toString();
083    
084            }
085    
086            public String getUrl() {
087                    return url;
088            }
089    
090            public void setUrl(String url) {
091                    this.url = url;
092            }
093    
094            public String getDriver() {
095                    return driver;
096            }
097    
098            public void setDriver(String driver) {
099                    this.driver = driver;
100            }
101    
102            public boolean isShowPassword() {
103                    return showPassword;
104            }
105    
106            public void setShowPassword(boolean showPassword) {
107                    this.showPassword = showPassword;
108            }
109    
110    }