public final class SystemFlavorMap extends Object implements FlavorMap, FlavorTable
| Modifier and Type | Method | Description | 
|---|---|---|
| void | addFlavorForUnencodedNative(String nat,
                           DataFlavor flav) | Adds a mapping from a single  Stringnative to a singleDataFlavor. | 
| void | addUnencodedNativeForFlavor(DataFlavor flav,
                           String nat) | Adds a mapping from the specified  DataFlavor(and allDataFlavors equal to the specifiedDataFlavor)
 to the specifiedStringnative. | 
| static DataFlavor | decodeDataFlavor(String nat) | Decodes a  Stringnative for use as aDataFlavor. | 
| static String | decodeJavaMIMEType(String nat) | Decodes a  Stringnative for use as a Java MIME type. | 
| static String | encodeDataFlavor(DataFlavor flav) | Encodes a  DataFlavorfor use as aStringnative. | 
| static String | encodeJavaMIMEType(String mimeType) | Encodes a MIME type for use as a  Stringnative. | 
| static FlavorMap | getDefaultFlavorMap() | Returns the default FlavorMap for this thread's ClassLoader. | 
| List<DataFlavor> | getFlavorsForNative(String nat) | Returns a  ListofDataFlavors to which the
 specifiedStringnative can be translated by the data
 transfer subsystem. | 
| Map<String,DataFlavor> | getFlavorsForNatives(String[] natives) | Returns a  Mapof the specifiedStringnatives
 to their most preferredDataFlavor. | 
| List<String> | getNativesForFlavor(DataFlavor flav) | Returns a  ListofStringnatives to which the
 specifiedDataFlavorcan be translated by the data transfer
 subsystem. | 
| Map<DataFlavor,String> | getNativesForFlavors(DataFlavor[] flavors) | Returns a  Mapof the specifiedDataFlavors to
 their most preferredStringnative. | 
| static boolean | isJavaMIMEType(String str) | Returns whether the specified  Stringis an encoded Java
 MIME type. | 
| void | setFlavorsForNative(String nat,
                   DataFlavor[] flavors) | Discards the current mappings for the specified  Stringnative, and creates new mappings to the specifiedDataFlavors. | 
| void | setNativesForFlavor(DataFlavor flav,
                   String[] natives) | Discards the current mappings for the specified  DataFlavorand allDataFlavors equal to the specifiedDataFlavor, and creates new mappings to the
 specifiedStringnatives. | 
public static FlavorMap getDefaultFlavorMap()
public List<String> getNativesForFlavor(DataFlavor flav)
List of String natives to which the
 specified DataFlavor can be translated by the data transfer
 subsystem. The List will be sorted from best native to
 worst. That is, the first native will best reflect data in the specified
 flavor to the underlying native platform.
 
 If the specified DataFlavor is previously unknown to the
 data transfer subsystem and the data transfer subsystem is unable to
 translate this DataFlavor to any existing native, then
 invoking this method will establish a
 mapping in both directions between the specified DataFlavor
 and an encoded version of its MIME type as its native.
getNativesForFlavor in interface FlavorTableflav - the DataFlavor whose corresponding natives
        should be returned. If null is specified, all
        natives currently known to the data transfer subsystem are
        returned in a non-deterministic order.java.util.List of java.lang.String
         objects which are platform-specific representations of platform-
         specific data formatsencodeDataFlavor(java.awt.datatransfer.DataFlavor)public List<DataFlavor> getFlavorsForNative(String nat)
List of DataFlavors to which the
 specified String native can be translated by the data
 transfer subsystem. The List will be sorted from best
 DataFlavor to worst. That is, the first
 DataFlavor will best reflect data in the specified
 native to a Java application.
 
 If the specified native is previously unknown to the data transfer
 subsystem, and that native has been properly encoded, then invoking this
 method will establish a mapping in both directions between the specified
 native and a DataFlavor whose MIME type is a decoded
 version of the native.
 
 If the specified native is not a properly encoded native and the
 mappings for this native have not been altered with
 setFlavorsForNative, then the contents of the
 List is platform dependent, but null
 cannot be returned.
getFlavorsForNative in interface FlavorTablenat - the native whose corresponding DataFlavors
        should be returned. If null is specified, all
        DataFlavors currently known to the data transfer
        subsystem are returned in a non-deterministic order.java.util.List of DataFlavor
         objects into which platform-specific data in the specified,
         platform-specific native can be translatedencodeJavaMIMEType(java.lang.String)public Map<DataFlavor,String> getNativesForFlavors(DataFlavor[] flavors)
Map of the specified DataFlavors to
 their most preferred String native. Each native value will
 be the same as the first native in the List returned by
 getNativesForFlavor for the specified flavor.
 
 If a specified DataFlavor is previously unknown to the
 data transfer subsystem, then invoking this method will establish a
 mapping in both directions between the specified DataFlavor
 and an encoded version of its MIME type as its native.
getNativesForFlavors in interface FlavorMapflavors - an array of DataFlavors which will be the
        key set of the returned Map. If null is
        specified, a mapping of all DataFlavors known to the
        data transfer subsystem to their most preferred
        String natives will be returned.java.util.Map of DataFlavors to
         String nativesgetNativesForFlavor(java.awt.datatransfer.DataFlavor), 
encodeDataFlavor(java.awt.datatransfer.DataFlavor)public Map<String,DataFlavor> getFlavorsForNatives(String[] natives)
Map of the specified String natives
 to their most preferred DataFlavor. Each
 DataFlavor value will be the same as the first
 DataFlavor in the List returned by
 getFlavorsForNative for the specified native.
 
 If a specified native is previously unknown to the data transfer
 subsystem, and that native has been properly encoded, then invoking this
 method will establish a mapping in both directions between the specified
 native and a DataFlavor whose MIME type is a decoded
 version of the native.
getFlavorsForNatives in interface FlavorMapnatives - an array of Strings which will be the
        key set of the returned Map. If null is
        specified, a mapping of all supported String natives
        to their most preferred DataFlavors will be
        returned.java.util.Map of String natives to
         DataFlavorsgetFlavorsForNative(java.lang.String), 
encodeJavaMIMEType(java.lang.String)public void addUnencodedNativeForFlavor(DataFlavor flav, String nat)
DataFlavor (and all
 DataFlavors equal to the specified DataFlavor)
 to the specified String native.
 Unlike getNativesForFlavor, the mapping will only be
 established in one direction, and the native will not be encoded. To
 establish a two-way mapping, call
 addFlavorForUnencodedNative as well. The new mapping will
 be of lower priority than any existing mapping.
 This method has no effect if a mapping from the specified or equal
 DataFlavor to the specified String native
 already exists.flav - the DataFlavor key for the mappingnat - the String native value for the mappingNullPointerException - if flav or nat is nulladdFlavorForUnencodedNative(java.lang.String, java.awt.datatransfer.DataFlavor)public void setNativesForFlavor(DataFlavor flav, String[] natives)
DataFlavor
 and all DataFlavors equal to the specified
 DataFlavor, and creates new mappings to the
 specified String natives.
 Unlike getNativesForFlavor, the mappings will only be
 established in one direction, and the natives will not be encoded. To
 establish two-way mappings, call setFlavorsForNative
 as well. The first native in the array will represent the highest
 priority mapping. Subsequent natives will represent mappings of
 decreasing priority.
 
 If the array contains several elements that reference equal
 String natives, this method will establish new mappings
 for the first of those elements and ignore the rest of them.
 
It is recommended that client code not reset mappings established by the data transfer subsystem. This method should only be used for application-level mappings.
flav - the DataFlavor key for the mappingsnatives - the String native values for the mappingsNullPointerException - if flav or natives is null
         or if natives contains null elementssetFlavorsForNative(java.lang.String, java.awt.datatransfer.DataFlavor[])public void addFlavorForUnencodedNative(String nat, DataFlavor flav)
String native to a single
 DataFlavor. Unlike getFlavorsForNative, the
 mapping will only be established in one direction, and the native will
 not be encoded. To establish a two-way mapping, call
 addUnencodedNativeForFlavor as well. The new mapping will
 be of lower priority than any existing mapping.
 This method has no effect if a mapping from the specified
 String native to the specified or equal
 DataFlavor already exists.nat - the String native key for the mappingflav - the DataFlavor value for the mappingNullPointerException - if nat or flav is nulladdUnencodedNativeForFlavor(java.awt.datatransfer.DataFlavor, java.lang.String)public void setFlavorsForNative(String nat, DataFlavor[] flavors)
String
 native, and creates new mappings to the specified
 DataFlavors. Unlike getFlavorsForNative, the
 mappings will only be established in one direction, and the natives need
 not be encoded. To establish two-way mappings, call
 setNativesForFlavor as well. The first
 DataFlavor in the array will represent the highest priority
 mapping. Subsequent DataFlavors will represent mappings of
 decreasing priority.
 
 If the array contains several elements that reference equal
 DataFlavors, this method will establish new mappings
 for the first of those elements and ignore the rest of them.
 
It is recommended that client code not reset mappings established by the data transfer subsystem. This method should only be used for application-level mappings.
nat - the String native key for the mappingsflavors - the DataFlavor values for the mappingsNullPointerException - if nat or flavors is null
         or if flavors contains null elementssetNativesForFlavor(java.awt.datatransfer.DataFlavor, java.lang.String[])public static String encodeJavaMIMEType(String mimeType)
String native. The format
 of an encoded representation of a MIME type is implementation-dependent.
 The only restrictions are:
 null if and only if the
 MIME type String is null.null MIME type
 Strings are equal if and only if these Strings
 are equal according to String.equals(Object).
 The reference implementation of this method returns the specified MIME
 type String prefixed with JAVA_DATAFLAVOR:.
mimeType - the MIME type to encodeString, or null if
         mimeType is nullpublic static String encodeDataFlavor(DataFlavor flav)
DataFlavor for use as a String
 native. The format of an encoded DataFlavor is
 implementation-dependent. The only restrictions are:
 null if and only if the
 specified DataFlavor is null or its MIME type
 String is null.null
 DataFlavors with non-null MIME type
 Strings are equal if and only if the MIME type
 Strings of these DataFlavors are equal
 according to String.equals(Object).
 The reference implementation of this method returns the MIME type
 String of the specified DataFlavor prefixed
 with JAVA_DATAFLAVOR:.
flav - the DataFlavor to encodeString, or null if
         flav is null or has a null MIME typepublic static boolean isJavaMIMEType(String str)
String is an encoded Java
 MIME type.str - the String to testtrue if the String is encoded;
         false otherwisepublic static String decodeJavaMIMEType(String nat)
String native for use as a Java MIME type.nat - the String to decodenull if nat is not
         an encoded String nativepublic static DataFlavor decodeDataFlavor(String nat) throws ClassNotFoundException
String native for use as a
 DataFlavor.nat - the String to decodeDataFlavor, or null if
         nat is not an encoded String nativeClassNotFoundException Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2025, Oracle and/or its affiliates.  All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.