Changeset 1184


Ignore:
Timestamp:
08/11/10 00:17:18 (18 months ago)
Author:
jharrop
Message:

Utility method to getPreferredPrefix irrespective of whether using Java 6 or JAXB RI.
Use this method in JAXBElementDebug.

Location:
trunk/docx4j/src/main/java/org/docx4j
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/docx4j/src/main/java/org/docx4j/XmlUtils.java

    r1166 r1184  
    178178                String prefix = null; 
    179179                if (o.getName().getNamespaceURI()!=null) { 
    180                         prefix = NamespacePrefixMapper.getPreferredPrefix(o.getName().getNamespaceURI() ); 
     180                        try { 
     181                                prefix = NamespacePrefixMapperUtils.getPreferredPrefix(o.getName().getNamespaceURI(), null, false); 
     182                        } catch (JAXBException e) { 
     183                                e.printStackTrace(); 
     184                        } 
    181185                } 
    182186                if (prefix!=null) { 
  • trunk/docx4j/src/main/java/org/docx4j/jaxb/NamespacePrefixMapperUtils.java

    r869 r1184  
    1616        try { 
    1717                c = Class.forName("com.sun.xml.bind.marshaller.NamespacePrefixMapper"); 
    18                 return new NamespacePrefixMapper(); 
     18                return new NamespacePrefixMapper();  // JAXB Reference Implementation  
    1919        } catch (ClassNotFoundException cnfe) { 
    2020                // JAXB Reference Implementation not present 
     21                // Use Java 6 implementation 
    2122                log.info("JAXB RI (com.sun.xml.bind.marshaller.NamespacePrefixMapper) not present.  Trying Java 6 implementation."); 
    2223                try { 
     
    9697        } 
    9798         
     99        public static String getPreferredPrefix(String namespaceUri, String suggestion, boolean requirePrefix) throws JAXBException { 
     100 
     101                Object namespacePrefixMapper = getPrefixMapper(); 
     102                 
     103                if ( namespacePrefixMapper instanceof NamespacePrefixMapperSunInternal) { 
     104                        // Java 6 
     105                        return ((NamespacePrefixMapperSunInternal)namespacePrefixMapper).getPreferredPrefix(namespaceUri, suggestion, requirePrefix);  
     106                         
     107                } else if (namespacePrefixMapper instanceof NamespacePrefixMapper) { 
     108                // JAXB Reference Implementation                 
     109                        return ((NamespacePrefixMapper)namespacePrefixMapper).getPreferredPrefix(namespaceUri, suggestion, requirePrefix);  
     110                         
     111                } else { 
     112                        log.warn("Namespace prefix mapper not found!"); 
     113                        return null; 
     114                } 
     115                 
     116        } 
     117         
    98118} 
Note: See TracChangeset for help on using the changeset viewer.