001    /* -*- mode: Java; c-basic-offset: 2; indent-tabs-mode: nil -*-
002     *
003     * $Id$
004     *
005     * Copyright (c) 2010-2011 Edugility LLC.
006     *
007     * Permission is hereby granted, free of charge, to any person
008     * obtaining a copy of this software and associated documentation
009     * files (the "Software"), to deal in the Software without
010     * restriction, including without limitation the rights to use, copy,
011     * modify, merge, publish, distribute, sublicense and/or sell copies
012     * of the Software, and to permit persons to whom the Software is
013     * furnished to do so, subject to the following conditions:
014     * 
015     * The above copyright notice and this permission notice shall be
016     * included in all copies or substantial portions of the Software.
017     * 
018     * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
019     * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
020     * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
021     * NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
022     * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
023     * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
024     * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
025     * DEALINGS IN THE SOFTWARE.
026     *
027     * The original copy of this license is available at
028     * http://www.opensource.org/license/mit-license.html.
029     */
030    package com.edugility.jpa.maven.plugin;
031    
032    import java.io.File;
033    
034    /**
035     * A {@link FileException} that results from a {@link File}
036     * representing a directory failing validation of some kind.
037     *
038     * @author <a href="mailto:ljnelson@gmail.com">Laird Nelson</a>
039     *
040     * @version 1.0-SNAPSHOT
041     *
042     * @since 1.0-SNAPSHOT
043     *
044     * @see FileException
045     */
046    public abstract class DirectoryException extends FileException {
047    
048      /**
049       * Creates a new {@link DirectoryException}.
050       *
051       * @param directory the {@link File} whose validation failure caused
052       * this {@link DirectoryException} to be thrown; may be {@code null}
053       */
054      protected DirectoryException(final File directory) {
055        super(directory);
056      }
057    
058      /**
059       * Creates a new {@link DirectoryException}.
060       *
061       * @param directory the {@link File} whose validation failure caused
062       * this {@link DirectoryException} to be thrown; may be {@code null}
063       *
064       * @param message a detail message further explaining this {@link
065       * DirectoryException}; may be {@code null}
066       */
067      protected DirectoryException(final File directory, final String message) {
068        super(directory, message);
069      }
070    
071      /**
072       * Creates a new {@link DirectoryException}.
073       *
074       * @param directory the {@link File} whose validation failure caused
075       * this {@link DirectoryException} to be thrown; may be {@code null}
076       *
077       * @param cause the {@link Throwable} that contributed to this
078       * {@link DirectoryException}'s cause; may be {@code null}
079       *
080       * @param message a detail message further explaining this {@link
081       * DirectoryException}; may be {@code null}
082       */
083      protected DirectoryException(final File directory, final Throwable cause, final String message) {
084        super(directory, cause, message);
085      }
086    
087      /**
088       * A convenience method that returns the return value of the {@link
089       * #getFile()} method.
090       *
091       * <p>This method may return {@code null}.</p>
092       *
093       * @return the result of calling the {@link #getFile()} method, or
094       * {@code null}
095       */
096      public final File getDirectory() {
097        return this.getFile();
098      }
099    
100    }