From 4fba7dbd62593a07b89ce35ef8e45048649942a4 Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Tue, 1 Sep 2015 20:57:57 +0000 Subject: [PATCH] Fix some Forbidden APIs errors git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1700669 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/hpsf/wellknown/SectionIDMap.java | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/src/java/org/apache/poi/hpsf/wellknown/SectionIDMap.java b/src/java/org/apache/poi/hpsf/wellknown/SectionIDMap.java index b20fc575f..53a8b9bb0 100644 --- a/src/java/org/apache/poi/hpsf/wellknown/SectionIDMap.java +++ b/src/java/org/apache/poi/hpsf/wellknown/SectionIDMap.java @@ -19,6 +19,8 @@ package org.apache.poi.hpsf.wellknown; import java.util.HashMap; +import org.apache.poi.util.StringUtil; + /** *

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; *

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.

- * - * @author Rainer Klute (klute@rainer-klute.de) */ +@SuppressWarnings({"rawtypes","unchecked"}) // Java Generics have issues on this style of class... public class SectionIDMap extends HashMap { - /** *

The SummaryInformation's section's format ID.

*/ @@ -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)); } - - /** *

Returns the {@link PropertyIDMap} for a given section format * ID.

@@ -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); } - - /** *

Associates a section format ID with a {@link * PropertyIDMap}.

@@ -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); } - }