View Javadoc
1   /*
2    * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4    *
5    * This code is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU General Public License version 2 only, as
7    * published by the Free Software Foundation.  Oracle designates this
8    * particular file as subject to the "Classpath" exception as provided
9    * by Oracle in the LICENSE file that accompanied this code.
10   *
11   * This code is distributed in the hope that it will be useful, but WITHOUT
12   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13   * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14   * version 2 for more details (a copy is included in the LICENSE file that
15   * accompanied this code).
16   *
17   * You should have received a copy of the GNU General Public License version
18   * 2 along with this work; if not, write to the Free Software Foundation,
19   * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20   *
21   * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22   * or visit www.oracle.com if you need additional information or have any
23   * questions.
24   */
25  
26  
27  package javax.print.attribute;
28  
29  import java.io.Serializable;
30  import java.net.URI;
31  
32  /**
33   * Class URISyntax is an abstract base class providing the common
34   * implementation of all attributes whose value is a Uniform Resource
35   * Identifier (URI). Once constructed, a URI attribute's value is immutable.
36   * <P>
37   *
38   * @author  Alan Kaminsky
39   */
40  public abstract class URISyntax implements Serializable, Cloneable {
41  
42      private static final long serialVersionUID = -7842661210486401678L;
43  
44      /**
45       * URI value of this URI attribute.
46       * @serial
47       */
48      private URI uri;
49  
50      /**
51       * Constructs a URI attribute with the specified URI.
52       *
53       * @param  uri  URI.
54       *
55       * @exception  NullPointerException
56       *     (unchecked exception) Thrown if <CODE>uri</CODE> is null.
57       */
58      protected URISyntax(URI uri) {
59          this.uri = verify (uri);
60      }
61  
62      private static URI verify(URI uri) {
63          if (uri == null) {
64              throw new NullPointerException(" uri is null");
65          }
66          return uri;
67      }
68  
69      /**
70       * Returns this URI attribute's URI value.
71       * @return the URI.
72       */
73      public URI getURI()  {
74          return uri;
75      }
76  
77      /**
78       * Returns a hashcode for this URI attribute.
79       *
80       * @return  A hashcode value for this object.
81       */
82      public int hashCode() {
83          return uri.hashCode();
84      }
85  
86      /**
87       * Returns whether this URI attribute is equivalent to the passed in
88       * object.
89       * To be equivalent, all of the following conditions must be true:
90       * <OL TYPE=1>
91       * <LI>
92       * <CODE>object</CODE> is not null.
93       * <LI>
94       * <CODE>object</CODE> is an instance of class URISyntax.
95       * <LI>
96       * This URI attribute's underlying URI and <CODE>object</CODE>'s
97       * underlying URI are equal.
98       * </OL>
99       *
100      * @param  object  Object to compare to.
101      *
102      * @return  True if <CODE>object</CODE> is equivalent to this URI
103      *          attribute, false otherwise.
104      */
105     public boolean equals(Object object) {
106         return(object != null &&
107                object instanceof URISyntax &&
108                this.uri.equals (((URISyntax) object).uri));
109     }
110 
111     /**
112      * Returns a String identifying this URI attribute. The String is the
113      * string representation of the attribute's underlying URI.
114      *
115      * @return  A String identifying this object.
116      */
117     public String toString() {
118         return uri.toString();
119     }
120 
121 }