home *** CD-ROM | disk | FTP | other *** search
- package java.awt.datatransfer;
-
- import java.security.AccessController;
- import java.util.Enumeration;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.Properties;
- import java.util.WeakHashMap;
-
- public final class SystemFlavorMap implements FlavorMap {
- private static String JavaMIME = "JAVA_DATAFLAVOR:";
- private static final WeakHashMap flavorMaps = new WeakHashMap();
- private Properties nativeToMIME;
- private HashMap flavorToNative;
- private HashMap nativeToFlavor;
-
- public static FlavorMap getDefaultFlavorMap() {
- ClassLoader var0 = Thread.currentThread().getContextClassLoader();
- if (var0 == null) {
- var0 = ClassLoader.getSystemClassLoader();
- }
-
- WeakHashMap var2 = flavorMaps;
- synchronized(var2) {
- Object var1;
- if ((var1 = (FlavorMap)flavorMaps.get(var0)) == null) {
- flavorMaps.put(var0, var1 = new SystemFlavorMap());
- }
-
- return (FlavorMap)var1;
- }
- }
-
- private SystemFlavorMap() {
- Properties[] var1 = new Properties[]{null};
- boolean[] var2 = new boolean[]{false};
- AccessController.doPrivileged(new 1(this, var1, var2));
- if (!var2[0]) {
- int var3 = this.nativeToMIME.size() + (var1[0] != null ? var1[0].size() : 0);
- int var4 = var3 > 0 ? var3 : 1;
- this.flavorToNative = new HashMap(var4);
- this.nativeToFlavor = new HashMap(var4);
- if (var3 > 0) {
- Enumeration var5 = this.nativeToMIME.propertyNames();
-
- while(true) {
- String var6;
- DataFlavor var13;
- while(true) {
- if (!var5.hasMoreElements()) {
- return;
- }
-
- var6 = (String)var5.nextElement();
- String var7 = this.nativeToMIME.getProperty(var6);
- Object var8 = null;
-
- try {
- var13 = new DataFlavor(var7);
- break;
- } catch (Exception var12) {
- try {
- var13 = new DataFlavor(var7, (String)null);
- break;
- } catch (Exception var11) {
- ((Throwable)var11).printStackTrace();
- }
- }
- }
-
- this.flavorToNative.put(var13.getMimeType(), var6);
- this.nativeToFlavor.put(var6, var13);
- }
- }
- }
- }
-
- public synchronized Map getNativesForFlavors(DataFlavor[] var1) {
- if (var1 == null) {
- return (Map)this.flavorToNative.clone();
- } else if (var1.length == 0) {
- return null;
- } else {
- HashMap var3 = new HashMap(var1.length);
-
- for(int var2 = 0; var2 < var1.length; ++var2) {
- DataFlavor var4 = var1[var2];
- String var5 = var4.getMimeType();
- String var6 = (String)this.flavorToNative.get(var5);
- if (var6 == null) {
- String var7 = encodeJavaMIMEType(var5);
- var3.put(var4, var7);
- this.nativeToFlavor.put(var7, var4);
- this.flavorToNative.put(var5, var7);
- } else {
- var3.put(var4, var6);
- }
- }
-
- return var3;
- }
- }
-
- public synchronized Map getFlavorsForNatives(String[] var1) {
- boolean var2 = false;
- if (var1 == null) {
- return (Map)this.nativeToFlavor.clone();
- } else if (var1.length == 0) {
- return new HashMap();
- } else {
- HashMap var4 = new HashMap(var1.length);
-
- for(int var3 = 0; var3 < var1.length; ++var3) {
- String var5 = var1[var3];
- Object var6 = null;
- DataFlavor var11;
- if (isJavaMIMEType(var1[var3])) {
- String var7 = var1[var3];
- if ((var11 = (DataFlavor)this.nativeToFlavor.get(var7)) == null) {
- String var8 = decodeJavaMIMEType(var1[var3]);
-
- try {
- var11 = new DataFlavor(var8);
- } catch (Exception var10) {
- System.err.println("Exception \"" + var10.getClass().getName() + ": " + ((Throwable)var10).getMessage() + "\"while constructing DataFlavor for: " + var8);
- var11 = null;
- }
-
- if (var11 != null) {
- this.nativeToFlavor.put(var7, var11);
- this.flavorToNative.put(var11.getMimeType(), var7);
- }
- }
- } else {
- var11 = (DataFlavor)this.nativeToFlavor.get(var5);
- }
-
- if (var11 != null) {
- var4.put(var5, var11);
- }
- }
-
- return var4;
- }
- }
-
- public static String encodeJavaMIMEType(String var0) {
- return JavaMIME + var0;
- }
-
- public static String encodeDataFlavor(DataFlavor var0) {
- return JavaMIME + var0.getMimeType();
- }
-
- public static boolean isJavaMIMEType(String var0) {
- return var0 != null && var0.startsWith(JavaMIME, 0);
- }
-
- public static String decodeJavaMIMEType(String var0) {
- return !isJavaMIMEType(var0) ? null : var0.substring(JavaMIME.length(), var0.length()).trim();
- }
-
- public static DataFlavor decodeDataFlavor(String var0) throws ClassNotFoundException {
- return !isJavaMIMEType(var0) ? null : new DataFlavor(var0.substring(JavaMIME.length(), var0.length()).trim());
- }
-
- // $FF: synthetic method
- static Properties access$002(SystemFlavorMap var0, Properties var1) {
- return var0.nativeToMIME = var1;
- }
-
- // $FF: synthetic method
- static Properties access$000(SystemFlavorMap var0) {
- return var0.nativeToMIME;
- }
- }
-