View Javadoc

1   ////////////////////////////////////////////////////////////////////////////////
2   // MillScript: an Open Spice interpreter and batch website creation tool
3   // Copyright (C) 2005 Kevin Rogers
4   //
5   // This file is part of MillScript.
6   //
7   // MillScript is free software; you can redistribute it and/or modify it under
8   // the terms of the GNU General Public License as published by the Free
9   // Software Foundation; either version 2 of the License, or (at your option)
10  // any later version.
11  //
12  // MillScript is distributed in the hope that it will be useful, but WITHOUT
13  // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14  // FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
15  // more details.
16  //
17  // You should have received a copy of the GNU General Public License along with
18  // MillScript; if not, write to the Free Software Foundation, Inc., 59 Temple
19  // Place, Suite 330, Boston, MA  02111-1307  USA
20  ////////////////////////////////////////////////////////////////////////////////
21  package org.millscript.commons.vfs.alerts;
22  
23  import org.millscript.commons.alert.Alert;
24  
25  import java.net.URI;
26  
27  /**
28   * This class implements an Alert for use in situations like where a
29   * <code>FileNotFoundException</code> has been thrown, or when a virtual
30   * filesystem entry cannot be found.
31   */
32  public class VHostNotFoundAlert extends VFSAlert {
33  
34      /**
35       * This is the ID from the first release for future compatibility.
36       */
37      private static final long serialVersionUID = 3258132461857749045L;
38  
39      /**
40       * Constructs a new virtual file not found alert with no explanation.
41       */
42      public VHostNotFoundAlert() {
43          this( null );
44      }
45  
46      /**
47       * Constructs a new virtual file not found alert with the specified
48       * explanation.
49       *
50       * @param exp   the explanation for the alert
51       */
52      public VHostNotFoundAlert( final String exp ) {
53          this( "Entry not found", exp );
54      }
55  
56      /**
57       * Constructs a new alert with the specified complaint and explanation.
58       * This constructor is for private use, to allow us to provide an exception
59       * hierarchy.
60       *
61       * @param comp  the alerts complaint
62       * @param exp   the explanation for the alert
63       */
64      protected VHostNotFoundAlert( final String comp, final String exp ) {
65          super( comp, exp );
66      }
67  
68      public VHostNotFoundAlert culpritHost( final String host ) {
69          return (VHostNotFoundAlert) this.culprit( "host name", host );
70      }
71  
72      public static Alert hostCannotBeResolved( final URI uri ) {
73          return new VHostNotFoundAlert( "Hostname cannot be resolved" ).culpritHost( uri.getHost() );
74      }
75  
76  }