View Javadoc

1   package org.jmage;
2   
3   import javax.media.jai.PlanarImage;
4   import java.net.URI;
5   import java.net.URISyntaxException;
6   import java.util.Properties;
7   import java.util.Arrays;
8   
9   /***
10   * ImageRequest
11   */
12  public class ImageRequest {
13      protected URI imageURI;
14      protected PlanarImage image;
15      protected URI[] filterChainURI;
16      protected Properties filterChainProperties;
17      protected String encodingFormat;
18      protected byte[] encoded;
19  
20      public ImageRequest() {
21          try {
22              filterChainURI = new URI[] { new URI("chain:org.jmage.filter.NoOpFilter") };
23          } catch (URISyntaxException e) {
24              assert(false) : "filterchainURI not a URI, this should never happen";
25          }
26          filterChainProperties = new Properties();
27      }
28  
29      public URI getImageURI() {
30          return imageURI;
31      }
32  
33      public void setImageURI(URI imageURI) {
34          this.imageURI = imageURI;
35      }
36  
37      public PlanarImage getImage() {
38          return image;
39      }
40  
41      public void setImage(PlanarImage image) {
42          this.image = image;
43      }
44  
45      public URI[] getFilterChainURI() {
46          return filterChainURI;
47      }
48  
49      public void setFilterChainURI(URI[] filterChainURI) {
50          this.filterChainURI = filterChainURI;
51      }
52  
53      public void setFilterChainURI(URI filterChainURI) {
54          this.filterChainURI = new URI[] { filterChainURI };
55      }
56  
57      public Properties getFilterChainProperties() {
58          return filterChainProperties;
59      }
60  
61      public void setFilterChainProperties(Properties filterChainProperties) {
62          this.filterChainProperties = filterChainProperties;
63      }
64  
65      public String getEncodingFormat() {
66          return encodingFormat;
67      }
68  
69      public void setEncodingFormat(String encodingFormat) {
70          this.encodingFormat = encodingFormat;
71      }
72  
73      public byte[] getEncoded() {
74          return encoded;
75      }
76  
77      public void setEncoded(byte[] encoded) {
78          this.encoded = encoded;
79      }
80  
81      public boolean equals(Object o) {
82          if (this == o) return true;
83          if (!(o instanceof ImageRequest)) return false;
84  
85          final ImageRequest imageRequest = (ImageRequest) o;
86  
87          if (encodingFormat != null ? !encodingFormat.equals(imageRequest.encodingFormat) : imageRequest.encodingFormat != null) return false;
88          if (filterChainURI != null ? !Arrays.asList(filterChainURI).equals(Arrays.asList(imageRequest.filterChainURI)) : imageRequest.filterChainURI != null) return false;
89          if (filterChainProperties != null ? !filterChainProperties.equals(imageRequest.filterChainProperties) : imageRequest.filterChainProperties != null) return false;
90          if (imageURI != null ? !imageURI.equals(imageRequest.imageURI) : imageRequest.imageURI != null) return false;
91  
92          return true;
93      }
94  
95      public int hashCode() {
96          int result;
97          result = (imageURI != null ? imageURI.hashCode() : 0);
98          result = 29 * result + (filterChainURI != null ? Arrays.asList(filterChainURI).hashCode() : 0);
99          result = 29 * result + (filterChainProperties != null ? filterChainProperties.hashCode() : 0);
100         result = 29 * result + (encodingFormat != null ? encodingFormat.hashCode() : 0);
101         return result;
102     }
103 
104     /***
105      * Override toString() for better readability
106      *
107      * @return a string representation of the object.
108      */
109     public String toString() {
110         String sourceImage = this.imageURI != null ? this.imageURI.toASCIIString() : "null";
111         String filterChain = this.filterChainURI != null ? this.filterChainURI.toString() : "null";
112         long filterProperties = this.filterChainProperties != null ? this.filterChainProperties.hashCode() : 0;
113         filterProperties += this.encodingFormat != null ? this.encodingFormat.hashCode() : 0;
114 
115         return "[" + sourceImage + "@" + filterChain + "#" + filterProperties + "]";
116     }
117 }