001    package org.codehaus.groovy.syntax;
002    
003    import org.codehaus.groovy.GroovyException;
004    
005    import java.io.IOException;
006    
007    /**
008     * Encapsulates non-specific i/o exceptions.
009     */
010    
011    public class ReadException extends GroovyException {
012        private IOException cause = null;
013    
014        public ReadException(IOException cause) {
015            super();
016            this.cause = cause;
017        }
018    
019        public ReadException(String message, IOException cause) {
020            super(message);
021            this.cause = cause;
022        }
023    
024        public IOException getIOCause() {
025            return this.cause;
026        }
027    
028        public String toString() {
029            String message = super.getMessage();
030            if (message == null || message.trim().equals("")) {
031                message = cause.getMessage();
032            }
033    
034            return message;
035        }
036    
037        public String getMessage() {
038            return toString();
039        }
040    }