65 |
* This map maps native <code>String</code>s to lists of |
* This map maps native <code>String</code>s to lists of |
66 |
* <code>DataFlavor</code>s |
* <code>DataFlavor</code>s |
67 |
*/ |
*/ |
68 |
private Map nativeToFlavorMap = new HashMap(); |
private HashMap nativeToFlavorMap = new HashMap(); |
69 |
|
|
70 |
/** |
/** |
71 |
* This map maps <code>DataFlavor</code>s to lists of native |
* This map maps <code>DataFlavor</code>s to lists of native |
72 |
* <code>String</code>s |
* <code>String</code>s |
73 |
*/ |
*/ |
74 |
private Map flavorToNativeMap = new HashMap(); |
private HashMap flavorToNativeMap = new HashMap(); |
75 |
|
|
76 |
/** |
/** |
77 |
* Private constructor. |
* Private constructor. |
122 |
.getContextClassLoader(); |
.getContextClassLoader(); |
123 |
|
|
124 |
//if ContextClassLoader not set, use system default |
//if ContextClassLoader not set, use system default |
125 |
if(classLoader == null) |
if (classLoader == null) |
126 |
{ |
{ |
127 |
classLoader = ClassLoader.getSystemClassLoader(); |
classLoader = ClassLoader.getSystemClassLoader(); |
128 |
} |
} |
131 |
{ |
{ |
132 |
FlavorMap map = (FlavorMap) |
FlavorMap map = (FlavorMap) |
133 |
systemFlavorMaps.get(classLoader); |
systemFlavorMaps.get(classLoader); |
134 |
if(map == null) |
if (map == null) |
135 |
{ |
{ |
136 |
map = new SystemFlavorMap(); |
map = new SystemFlavorMap(); |
137 |
systemFlavorMaps.put(classLoader, map); |
systemFlavorMaps.put(classLoader, map); |
219 |
public synchronized void addFlavorForUnencodedNative(String nativeStr, |
public synchronized void addFlavorForUnencodedNative(String nativeStr, |
220 |
DataFlavor flavor) |
DataFlavor flavor) |
221 |
{ |
{ |
222 |
if((nativeStr == null) || (flavor == null)) |
if ((nativeStr == null) || (flavor == null)) |
223 |
throw new NullPointerException(); |
throw new NullPointerException(); |
224 |
List flavors = (List) nativeToFlavorMap.get(nativeStr); |
List flavors = (List) nativeToFlavorMap.get(nativeStr); |
225 |
if(flavors == null) |
if (flavors == null) |
226 |
{ |
{ |
227 |
flavors = new ArrayList(); |
flavors = new ArrayList(); |
228 |
nativeToFlavorMap.put(nativeStr, flavors); |
nativeToFlavorMap.put(nativeStr, flavors); |
229 |
} |
} |
230 |
else |
else |
231 |
{ |
{ |
232 |
if(!flavors.contains(flavor)) |
if (! flavors.contains(flavor)) |
233 |
flavors.add(flavor); |
flavors.add(flavor); |
234 |
} |
} |
235 |
} |
} |
257 |
public synchronized void addUnencodedNativeForFlavor(DataFlavor flavor, |
public synchronized void addUnencodedNativeForFlavor(DataFlavor flavor, |
258 |
String nativeStr) |
String nativeStr) |
259 |
{ |
{ |
260 |
if((nativeStr == null) || (flavor == null)) |
if ((nativeStr == null) || (flavor == null)) |
261 |
throw new NullPointerException(); |
throw new NullPointerException(); |
262 |
List natives = (List) flavorToNativeMap.get(flavor); |
List natives = (List) flavorToNativeMap.get(flavor); |
263 |
if(natives == null) |
if (natives == null) |
264 |
{ |
{ |
265 |
natives = new ArrayList(); |
natives = new ArrayList(); |
266 |
flavorToNativeMap.put(flavor, natives); |
flavorToNativeMap.put(flavor, natives); |
267 |
} |
} |
268 |
else |
else |
269 |
{ |
{ |
270 |
if(!natives.contains(nativeStr)) |
if (! natives.contains(nativeStr)) |
271 |
natives.add(nativeStr); |
natives.add(nativeStr); |
272 |
} |
} |
273 |
} |
} |
303 |
public synchronized void setNativesForFlavor(DataFlavor flavor, |
public synchronized void setNativesForFlavor(DataFlavor flavor, |
304 |
String[] natives) |
String[] natives) |
305 |
{ |
{ |
306 |
if((natives == null) || (flavor == null)) |
if ((natives == null) || (flavor == null)) |
307 |
throw new NullPointerException(); |
throw new NullPointerException(); |
308 |
|
|
309 |
flavorToNativeMap.remove(flavor); |
flavorToNativeMap.remove(flavor); |
310 |
for(int i = 0; i < natives.length; i++) |
for (int i = 0; i < natives.length; i++) |
311 |
{ |
{ |
312 |
addUnencodedNativeForFlavor(flavor, natives[i]); |
addUnencodedNativeForFlavor(flavor, natives[i]); |
313 |
} |
} |
343 |
public synchronized void setFlavorsForNative(String nativeStr, |
public synchronized void setFlavorsForNative(String nativeStr, |
344 |
DataFlavor[] flavors) |
DataFlavor[] flavors) |
345 |
{ |
{ |
346 |
if((nativeStr == null) || (flavors == null)) |
if ((nativeStr == null) || (flavors == null)) |
347 |
throw new NullPointerException(); |
throw new NullPointerException(); |
348 |
|
|
349 |
nativeToFlavorMap.remove(nativeStr); |
nativeToFlavorMap.remove(nativeStr); |
350 |
for(int i = 0; i < flavors.length; i++) |
for (int i = 0; i < flavors.length; i++) |
351 |
{ |
{ |
352 |
addFlavorForUnencodedNative(nativeStr, flavors[i]); |
addFlavorForUnencodedNative(nativeStr, flavors[i]); |
353 |
} |
} |