]> source.dussan.org Git - poi.git/commitdiff
Fix some Forbidden APIs errors
authorNick Burch <nick@apache.org>
Tue, 1 Sep 2015 20:57:57 +0000 (20:57 +0000)
committerNick Burch <nick@apache.org>
Tue, 1 Sep 2015 20:57:57 +0000 (20:57 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1700669 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hpsf/wellknown/SectionIDMap.java

index b20fc575f0906482a87fc5ce5ab7d457f69ff1b0..53a8b9bb00b993ffe57b6d3a6a1eb5c228bdfb4c 100644 (file)
@@ -19,6 +19,8 @@ package org.apache.poi.hpsf.wellknown;
 
 import java.util.HashMap;
 
+import org.apache.poi.util.StringUtil;
+
 /**
  * <p>Maps section format IDs to {@link PropertyIDMap}s. It is
  * initialized with two well-known section format IDs: those of the
@@ -33,11 +35,9 @@ import java.util.HashMap;
  * <p>This {@link java.util.Map} expects the byte arrays of section format IDs
  * as keys. A key maps to a {@link PropertyIDMap} describing the
  * property IDs in sections with the specified section format ID.</p>
- *
- * @author Rainer Klute (klute@rainer-klute.de)
  */
+@SuppressWarnings({"rawtypes","unchecked"}) // Java Generics have issues on this style of class...
 public class SectionIDMap extends HashMap {
-
     /**
      * <p>The SummaryInformation's section's format ID.</p>
      */
@@ -141,11 +141,9 @@ public class SectionIDMap extends HashMap {
      */
     public PropertyIDMap get(final byte[] sectionFormatID)
     {
-        return (PropertyIDMap) super.get(new String(sectionFormatID));
+        return (PropertyIDMap)super.get(new String(sectionFormatID, StringUtil.UTF8));
     }
 
-
-
     /**
      * <p>Returns the {@link PropertyIDMap} for a given section format
      * ID.</p>
@@ -154,13 +152,11 @@ public class SectionIDMap extends HashMap {
      * @deprecated Use {@link #get(byte[])} instead!
      * @return the property ID map
      */
-    public Object get(final Object sectionFormatID)
+    public PropertyIDMap get(final Object sectionFormatID)
     {
         return get((byte[]) sectionFormatID);
     }
 
-
-
     /**
      * <p>Associates a section format ID with a {@link
      * PropertyIDMap}.</p>
@@ -169,13 +165,19 @@ public class SectionIDMap extends HashMap {
      * @param propertyIDMap the property ID map
      * @return as defined by {@link java.util.Map#put}
      */
-    public Object put(final byte[] sectionFormatID,
-                      final PropertyIDMap propertyIDMap)
+    public PropertyIDMap put(final byte[] sectionFormatID,
+                             final PropertyIDMap propertyIDMap)
     {
-        return super.put(new String(sectionFormatID), propertyIDMap);
+        return (PropertyIDMap)super.put(new String(sectionFormatID, StringUtil.UTF8), propertyIDMap);
     }
 
-
+    /**
+     * Associates the string representation of a section
+     *  format ID with a {@link PropertyIDMap}
+     */
+    protected PropertyIDMap put(String key, PropertyIDMap value) {
+        return (PropertyIDMap)super.put(key, value);
+    }
 
     /**
      * @deprecated Use {@link #put(byte[], PropertyIDMap)} instead!
@@ -189,9 +191,10 @@ public class SectionIDMap extends HashMap {
      * @return The return value remains undocumented since the method is
      * deprecated.
      */
-    public Object put(final Object key, final Object value)
+    public PropertyIDMap put(final Object key, final Object value)
     {
+        if (key instanceof String)
+            return put((String)key, (PropertyIDMap) value);
         return put((byte[]) key, (PropertyIDMap) value);
     }
-
 }