1afca3a690de8d057dca24050db556880fa4721e6chrismair/*
2afca3a690de8d057dca24050db556880fa4721e6chrismair * Copyright 2008 the original author or authors.
3afca3a690de8d057dca24050db556880fa4721e6chrismair *
4afca3a690de8d057dca24050db556880fa4721e6chrismair * Licensed under the Apache License, Version 2.0 (the "License");
5afca3a690de8d057dca24050db556880fa4721e6chrismair * you may not use this file except in compliance with the License.
6afca3a690de8d057dca24050db556880fa4721e6chrismair * You may obtain a copy of the License at
7afca3a690de8d057dca24050db556880fa4721e6chrismair *
8afca3a690de8d057dca24050db556880fa4721e6chrismair *      http://www.apache.org/licenses/LICENSE-2.0
9afca3a690de8d057dca24050db556880fa4721e6chrismair *
10afca3a690de8d057dca24050db556880fa4721e6chrismair * Unless required by applicable law or agreed to in writing, software
11afca3a690de8d057dca24050db556880fa4721e6chrismair * distributed under the License is distributed on an "AS IS" BASIS,
12afca3a690de8d057dca24050db556880fa4721e6chrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13afca3a690de8d057dca24050db556880fa4721e6chrismair * See the License for the specific language governing permissions and
14afca3a690de8d057dca24050db556880fa4721e6chrismair * limitations under the License.
15afca3a690de8d057dca24050db556880fa4721e6chrismair */
16afca3a690de8d057dca24050db556880fa4721e6chrismairpackage org.mockftpserver.fake.filesystem;
17afca3a690de8d057dca24050db556880fa4721e6chrismair
18afca3a690de8d057dca24050db556880fa4721e6chrismairimport org.mockftpserver.core.MockFtpServerException;
19afca3a690de8d057dca24050db556880fa4721e6chrismair
20afca3a690de8d057dca24050db556880fa4721e6chrismair/**
21afca3a690de8d057dca24050db556880fa4721e6chrismair * Represents an error that occurs while performing a FileSystem operation.
22afca3a690de8d057dca24050db556880fa4721e6chrismair *
23afca3a690de8d057dca24050db556880fa4721e6chrismair * @author Chris Mair
24afca3a690de8d057dca24050db556880fa4721e6chrismair * @version $Revision$ - $Date$
25afca3a690de8d057dca24050db556880fa4721e6chrismair */
26afca3a690de8d057dca24050db556880fa4721e6chrismairpublic class FileSystemException extends MockFtpServerException {
27afca3a690de8d057dca24050db556880fa4721e6chrismair
28afca3a690de8d057dca24050db556880fa4721e6chrismair    /**
29afca3a690de8d057dca24050db556880fa4721e6chrismair     * The path involved in the file system operation that caused the exception
30afca3a690de8d057dca24050db556880fa4721e6chrismair     */
31afca3a690de8d057dca24050db556880fa4721e6chrismair    private String path;
32afca3a690de8d057dca24050db556880fa4721e6chrismair
33afca3a690de8d057dca24050db556880fa4721e6chrismair    /**
34afca3a690de8d057dca24050db556880fa4721e6chrismair     * The message key for the exception message
35afca3a690de8d057dca24050db556880fa4721e6chrismair     */
36afca3a690de8d057dca24050db556880fa4721e6chrismair    private String messageKey;
37afca3a690de8d057dca24050db556880fa4721e6chrismair
38afca3a690de8d057dca24050db556880fa4721e6chrismair    /**
39afca3a690de8d057dca24050db556880fa4721e6chrismair     * Construct a new instance for the specified path and message key
40afca3a690de8d057dca24050db556880fa4721e6chrismair     *
41afca3a690de8d057dca24050db556880fa4721e6chrismair     * @param path       - the path involved in the file system operation that caused the exception
42afca3a690de8d057dca24050db556880fa4721e6chrismair     * @param messageKey - the exception message key
43afca3a690de8d057dca24050db556880fa4721e6chrismair     */
44afca3a690de8d057dca24050db556880fa4721e6chrismair    public FileSystemException(String path, String messageKey) {
45afca3a690de8d057dca24050db556880fa4721e6chrismair        super(path);
46afca3a690de8d057dca24050db556880fa4721e6chrismair        this.path = path;
47afca3a690de8d057dca24050db556880fa4721e6chrismair        this.messageKey = messageKey;
48afca3a690de8d057dca24050db556880fa4721e6chrismair    }
49afca3a690de8d057dca24050db556880fa4721e6chrismair
50afca3a690de8d057dca24050db556880fa4721e6chrismair    /**
51954ee7de942a83d2cba85940f8bac0f9d233fbb0chrismair     * @param path       - the path involved in the file system operation that caused the exception
52954ee7de942a83d2cba85940f8bac0f9d233fbb0chrismair     * @param messageKey - the exception message key
53954ee7de942a83d2cba85940f8bac0f9d233fbb0chrismair     * @param cause      - the exception cause, wrapped by this exception
54afca3a690de8d057dca24050db556880fa4721e6chrismair     */
55afca3a690de8d057dca24050db556880fa4721e6chrismair    public FileSystemException(String path, String messageKey, Throwable cause) {
56954ee7de942a83d2cba85940f8bac0f9d233fbb0chrismair        super(path, cause);
57afca3a690de8d057dca24050db556880fa4721e6chrismair        this.path = path;
58afca3a690de8d057dca24050db556880fa4721e6chrismair        this.messageKey = messageKey;
59afca3a690de8d057dca24050db556880fa4721e6chrismair    }
60afca3a690de8d057dca24050db556880fa4721e6chrismair
61afca3a690de8d057dca24050db556880fa4721e6chrismair    public String getPath() {
62afca3a690de8d057dca24050db556880fa4721e6chrismair        return path;
63afca3a690de8d057dca24050db556880fa4721e6chrismair    }
64afca3a690de8d057dca24050db556880fa4721e6chrismair
65afca3a690de8d057dca24050db556880fa4721e6chrismair    public void setPath(String path) {
66afca3a690de8d057dca24050db556880fa4721e6chrismair        this.path = path;
67afca3a690de8d057dca24050db556880fa4721e6chrismair    }
68afca3a690de8d057dca24050db556880fa4721e6chrismair
69afca3a690de8d057dca24050db556880fa4721e6chrismair    public String getMessageKey() {
70afca3a690de8d057dca24050db556880fa4721e6chrismair        return messageKey;
71afca3a690de8d057dca24050db556880fa4721e6chrismair    }
72afca3a690de8d057dca24050db556880fa4721e6chrismair
73afca3a690de8d057dca24050db556880fa4721e6chrismair    public void setMessageKey(String messageKey) {
74afca3a690de8d057dca24050db556880fa4721e6chrismair        this.messageKey = messageKey;
75afca3a690de8d057dca24050db556880fa4721e6chrismair    }
76afca3a690de8d057dca24050db556880fa4721e6chrismair
77afca3a690de8d057dca24050db556880fa4721e6chrismair}
78