001    /**
002     * Copyright 2004-2013 The Kuali Foundation
003     *
004     * Licensed under the Educational Community License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     * http://www.opensource.org/licenses/ecl2.php
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    package org.apache.torque.mojo;
017    
018    import java.util.Properties;
019    
020    import org.apache.commons.lang.StringUtils;
021    
022    public class ImpexError {
023            Throwable throwable;
024            String message;
025            Properties info;
026            String url;
027            String driver;
028            boolean showPassword;
029    
030            public Throwable getThrowable() {
031                    return throwable;
032            }
033    
034            public void setThrowable(Throwable throwable) {
035                    this.throwable = throwable;
036            }
037    
038            public String getMessage() {
039                    return message;
040            }
041    
042            public void setMessage(String message) {
043                    this.message = message;
044            }
045    
046            public Properties getInfo() {
047                    return info;
048            }
049    
050            public void setInfo(Properties info) {
051                    this.info = info;
052            }
053    
054            public String toString() {
055                    StringBuffer sb = new StringBuffer();
056                    sb.append("\n\n");
057                    if (!StringUtils.isEmpty(message)) {
058                            sb.append(message + "\n\n");
059                    }
060                    if (getThrowable() != null) {
061                            sb.append("------------------------------------------------------\n");
062                            String emsg = getThrowable().getMessage();
063                            sb.append(emsg);
064                            if (!emsg.endsWith("\n")) {
065                                    sb.append("\n");
066                            }
067                    }
068                    sb.append(toString(getInfo()));
069                    return sb.toString();
070            }
071    
072            public String toString(Properties info) {
073                    StringBuffer sb = new StringBuffer();
074                    sb.append("------------------------------------------------------\n\n");
075                    sb.append("The following information was provided to JDBC:\n");
076                    sb.append("------------------------------------------------------\n");
077                    sb.append("URL: " + getUrl() + "\n");
078                    sb.append("Driver: " + getDriver() + "\n");
079                    String username = info.getProperty(AbstractSQLExecutorMojo.DRIVER_INFO_PROPERTIES_USER);
080                    if (StringUtils.isEmpty(username)) {
081                            sb.append("Username: [No username was supplied]\n");
082                    } else {
083                            sb.append("Username: " + username + "\n");
084                    }
085                    String password = info.getProperty(AbstractSQLExecutorMojo.DRIVER_INFO_PROPERTIES_PASSWORD);
086                    if (isShowPassword()) {
087                            sb.append("Password: " + password + "\n");
088                    } else {
089                            if (StringUtils.isEmpty(password)) {
090                                    sb.append("Password: [No password was supplied]\n");
091                            } else {
092                                    sb.append("Password: *******\n");
093                            }
094                    }
095                    sb.append("------------------------------------------------------\n");
096                    sb.append("\n");
097                    return sb.toString();
098    
099            }
100    
101            public String getUrl() {
102                    return url;
103            }
104    
105            public void setUrl(String url) {
106                    this.url = url;
107            }
108    
109            public String getDriver() {
110                    return driver;
111            }
112    
113            public void setDriver(String driver) {
114                    this.driver = driver;
115            }
116    
117            public boolean isShowPassword() {
118                    return showPassword;
119            }
120    
121            public void setShowPassword(boolean showPassword) {
122                    this.showPassword = showPassword;
123            }
124    
125    }