1 /**
2 *
3 * Copyright 2003-2004 The Apache Software Foundation
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18 package javax.activation;
19
20 import java.awt.datatransfer.DataFlavor;
21 import java.io.InputStream;
22
23 /**
24 * @version $Rev: 158704 $ $Date: 2005-03-22 17:53:37 -0800 (Tue, 22 Mar 2005) $
25 */
26 public class ActivationDataFlavor extends DataFlavor {
27 private final Class representationClass;
28 private final String mimeType;
29 private String humanPresentableName;
30
31 public ActivationDataFlavor(Class representationClass, String mimeType, String humanPresentableName) {
32 this.representationClass = representationClass;
33 this.mimeType = mimeType;
34 this.humanPresentableName = humanPresentableName;
35 }
36
37 public ActivationDataFlavor(Class representationClass, String humanPresentableName) {
38 this.representationClass = representationClass;
39 this.mimeType = "application/x-java-serialized-object";
40 this.humanPresentableName = humanPresentableName;
41 }
42
43 public ActivationDataFlavor(String mimeType, String humanPresentableName) {
44 this.mimeType = mimeType;
45 this.representationClass = InputStream.class;
46 this.humanPresentableName = humanPresentableName;
47 }
48
49 public String getMimeType() {
50 return mimeType;
51 }
52
53 public Class getRepresentationClass() {
54 return representationClass;
55 }
56
57 public String getHumanPresentableName() {
58 return humanPresentableName;
59 }
60
61 public void setHumanPresentableName(String humanPresentableName) {
62 this.humanPresentableName = humanPresentableName;
63 }
64
65 public boolean equals(DataFlavor dataFlavor) {
66 return this.isMimeTypeEqual(dataFlavor.getMimeType()) && representationClass == dataFlavor.getRepresentationClass();
67 }
68
69 public boolean isMimeTypeEqual(String mimeType) {
70 try {
71 MimeType thisType = new MimeType(this.mimeType);
72 MimeType thatType = new MimeType(mimeType);
73 return thisType.match(thatType);
74 } catch (MimeTypeParseException e) {
75 return false;
76 }
77 }
78
79 protected String normalizeMimeTypeParameter(String parameterName, String parameterValue) {
80 return parameterName + "=" + parameterValue;
81 }
82
83 protected String normalizeMimeType(String mimeType) {
84 return mimeType;
85 }
86 }