You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ms...@apache.org on 2014/10/28 00:00:37 UTC
svn commit: r1634727 [2/3] - in /pdfbox/trunk/pdfbox/src:
main/java/org/apache/pdfbox/cos/ main/java/org/apache/pdfbox/io/
main/java/org/apache/pdfbox/pdfparser/ main/java/org/apache/pdfbox/pdmodel/
main/java/org/apache/pdfbox/pdmodel/common/ main/java...
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java?rev=1634727&r1=1634726&r2=1634727&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java Mon Oct 27 23:00:36 2014
@@ -34,1254 +34,1205 @@ import org.apache.pdfbox.util.DateConver
*/
public class COSDictionary extends COSBase
{
- private static final String PATH_SEPARATOR = "/";
+ private static final String PATH_SEPARATOR = "/";
- /**
- * The name-value pairs of this dictionary. The pairs are kept in the
- * order they were added to the dictionary.
- */
- protected Map<COSName, COSBase> items = new LinkedHashMap<COSName, COSBase>();
-
- /**
- * Constructor.
- */
- public COSDictionary()
- {
- //default constructor
- }
-
- /**
- * Copy Constructor. This will make a shallow copy of this dictionary.
- *
- * @param dict The dictionary to copy.
- */
- public COSDictionary( COSDictionary dict )
- {
- items.putAll( dict.items );
- }
-
- /**
- * @see java.util.Map#containsValue(java.lang.Object)
- *
- * @param value The value to find in the map.
- *
- * @return true if the map contains this value.
- */
- public boolean containsValue( Object value )
- {
- boolean contains = items.containsValue( value );
- if( !contains && value instanceof COSObject )
- {
- contains = items.containsValue( ((COSObject)value).getObject());
- }
- return contains;
- }
-
- /**
- * Search in the map for the value that matches the parameter
- * and return the first key that maps to that value.
- *
- * @param value The value to search for in the map.
- * @return The key for the value in the map or null if it does not exist.
- */
- public COSName getKeyForValue( Object value )
- {
- for( Map.Entry<COSName, COSBase> entry : items.entrySet() )
- {
- Object nextValue = entry.getValue();
- if( nextValue.equals( value ) ||
- (nextValue instanceof COSObject &&
- ((COSObject)nextValue).getObject().equals( value))
- )
- {
- return entry.getKey();
- }
- }
-
- return null;
- }
-
- /**
- * This will return the number of elements in this dictionary.
- *
- * @return The number of elements in the dictionary.
- */
- public int size()
- {
- return items.size();
- }
-
- /**
- * This will clear all items in the map.
- */
- public void clear()
- {
- items.clear();
- }
-
- /**
- * This will get an object from this dictionary. If the object is a reference then it will
- * dereference it and get it from the document. If the object is COSNull then
- * null will be returned.
- *
- * @param key The key to the object that we are getting.
- *
- * @return The object that matches the key.
- */
- public COSBase getDictionaryObject( String key )
- {
- return getDictionaryObject( COSName.getPDFName( key ) );
- }
-
- /**
- * This is a special case of getDictionaryObject that takes multiple keys, it will handle
- * the situation where multiple keys could get the same value, ie if either CS or ColorSpace
- * is used to get the colorspace.
- * This will get an object from this dictionary. If the object is a reference then it will
- * dereference it and get it from the document. If the object is COSNull then
- * null will be returned.
- *
- * @param firstKey The first key to try.
- * @param secondKey The second key to try.
- *
- * @return The object that matches the key.
- */
- public COSBase getDictionaryObject( COSName firstKey, COSName secondKey )
- {
- COSBase retval = getDictionaryObject( firstKey );
- if( retval == null && secondKey != null)
- {
- retval = getDictionaryObject( secondKey );
- }
- return retval;
- }
- /**
- * This is a special case of getDictionaryObject that takes multiple keys, it will handle
- * the situation where multiple keys could get the same value, ie if either CS or ColorSpace
- * is used to get the colorspace.
- * This will get an object from this dictionary. If the object is a reference then it will
- * dereference it and get it from the document. If the object is COSNull then
- * null will be returned.
- *
- * @param keyList The list of keys to find a value.
- *
- * @return The object that matches the key.
- */
- public COSBase getDictionaryObject( String[] keyList )
- {
- COSBase retval = null;
- for( int i=0; i<keyList.length && retval == null; i++ )
- {
- retval = getDictionaryObject( COSName.getPDFName( keyList[i] ) );
- }
- return retval;
- }
-
- /**
- * This will get an object from this dictionary. If the object is a reference then it will
- * dereference it and get it from the document. If the object is COSNull then
- * null will be returned.
- *
- * @param key The key to the object that we are getting.
- *
- * @return The object that matches the key.
- */
- public COSBase getDictionaryObject( COSName key )
- {
- COSBase retval = items.get( key );
- if( retval instanceof COSObject )
- {
- retval = ((COSObject)retval).getObject();
- }
- if( retval instanceof COSNull )
- {
- retval = null;
- }
- return retval;
- }
-
- /**
- * This will set an item in the dictionary. If value is null then the result
- * will be the same as removeItem( key ).
- *
- * @param key The key to the dictionary object.
- * @param value The value to the dictionary object.
- */
- public void setItem( COSName key, COSBase value )
- {
- if( value == null )
- {
- removeItem( key );
- }
- else
- {
- items.put( key, value );
- }
- }
-
- /**
- * This will set an item in the dictionary. If value is null then the result
- * will be the same as removeItem( key ).
- *
- * @param key The key to the dictionary object.
- * @param value The value to the dictionary object.
- */
- public void setItem( COSName key, COSObjectable value )
- {
- COSBase base = null;
- if( value != null )
- {
- base = value.getCOSObject();
- }
- setItem( key, base );
- }
-
- /**
- * This will set an item in the dictionary. If value is null then the result
- * will be the same as removeItem( key ).
- *
- * @param key The key to the dictionary object.
- * @param value The value to the dictionary object.
- */
- public void setItem( String key, COSObjectable value )
- {
- setItem( COSName.getPDFName( key ), value );
- }
-
- /**
- * This will set an item in the dictionary.
- *
- * @param key The key to the dictionary object.
- * @param value The value to the dictionary object.
- */
- public void setBoolean( String key, boolean value )
- {
- setItem( COSName.getPDFName( key ), COSBoolean.getBoolean( value ) );
- }
-
- /**
- * This will set an item in the dictionary.
- *
- * @param key The key to the dictionary object.
- * @param value The value to the dictionary object.
- */
- public void setBoolean( COSName key, boolean value )
- {
- setItem( key , COSBoolean.getBoolean( value ) );
- }
-
- /**
- * This will set an item in the dictionary. If value is null then the result
- * will be the same as removeItem( key ).
- *
- * @param key The key to the dictionary object.
- * @param value The value to the dictionary object.
- */
- public void setItem( String key, COSBase value )
- {
- setItem( COSName.getPDFName( key ), value );
- }
-
- /**
- * This is a convenience method that will convert the value to a COSName
- * object. If it is null then the object will be removed.
- *
- * @param key The key to the object,
- * @param value The string value for the name.
- */
- public void setName( String key, String value )
- {
- setName( COSName.getPDFName( key ), value );
- }
-
- /**
- * This is a convenience method that will convert the value to a COSName
- * object. If it is null then the object will be removed.
- *
- * @param key The key to the object,
- * @param value The string value for the name.
- */
- public void setName( COSName key, String value )
- {
- COSName name = null;
- if( value != null )
- {
- name = COSName.getPDFName( value );
- }
- setItem( key, name );
- }
-
- /**
- * Set the value of a date entry in the dictionary.
- *
- * @param key The key to the date value.
- * @param date The date value.
- */
- public void setDate( String key, Calendar date )
- {
- setDate( COSName.getPDFName( key ), date );
- }
-
- /**
- * Set the date object.
- *
- * @param key The key to the date.
- * @param date The date to set.
- */
- public void setDate( COSName key, Calendar date )
- {
- setString( key, DateConverter.toString( date ) );
- }
-
- /**
- * Set the value of a date entry in the dictionary.
- *
- * @param embedded The embedded dictionary.
- * @param key The key to the date value.
- * @param date The date value.
- */
- public void setEmbeddedDate( String embedded, String key, Calendar date )
- {
- setEmbeddedDate( embedded, COSName.getPDFName( key ), date );
- }
-
- /**
- * Set the date object.
- *
- * @param embedded The embedded dictionary.
- * @param key The key to the date.
- * @param date The date to set.
- */
- public void setEmbeddedDate( String embedded, COSName key, Calendar date )
- {
- COSDictionary dic = (COSDictionary)getDictionaryObject( embedded );
- if( dic == null && date != null )
- {
- dic = new COSDictionary();
- setItem( embedded, dic );
- }
- if( dic != null )
- {
- dic.setDate( key, date );
- }
- }
-
- /**
- * This is a convenience method that will convert the value to a COSString
- * object. If it is null then the object will be removed.
- *
- * @param key The key to the object,
- * @param value The string value for the name.
- */
- public void setString( String key, String value )
- {
- setString( COSName.getPDFName( key ), value );
- }
-
- /**
- * This is a convenience method that will convert the value to a COSString
- * object. If it is null then the object will be removed.
- *
- * @param key The key to the object,
- * @param value The string value for the name.
- */
- public void setString( COSName key, String value )
- {
- COSString name = null;
- if( value != null )
- {
- name = new COSString( value );
- }
- setItem( key, name );
- }
-
- /**
- * This is a convenience method that will convert the value to a COSString
- * object. If it is null then the object will be removed.
- *
- * @param embedded The embedded dictionary to set the item in.
- * @param key The key to the object,
- * @param value The string value for the name.
- */
- public void setEmbeddedString( String embedded, String key, String value )
- {
- setEmbeddedString( embedded, COSName.getPDFName( key ), value );
- }
-
- /**
- * This is a convenience method that will convert the value to a COSString
- * object. If it is null then the object will be removed.
- *
- * @param embedded The embedded dictionary to set the item in.
- * @param key The key to the object,
- * @param value The string value for the name.
- */
- public void setEmbeddedString( String embedded, COSName key, String value )
- {
- COSDictionary dic = (COSDictionary)getDictionaryObject( embedded );
- if( dic == null && value != null )
- {
- dic = new COSDictionary();
- setItem( embedded, dic );
- }
- if( dic != null )
- {
- dic.setString( key, value );
- }
- }
-
- /**
- * This is a convenience method that will convert the value to a COSInteger
- * object.
- *
- * @param key The key to the object,
- * @param value The int value for the name.
- */
- public void setInt( String key, int value )
- {
- setInt( COSName.getPDFName( key ), value );
- }
-
- /**
- * This is a convenience method that will convert the value to a COSInteger
- * object.
- *
- * @param key The key to the object,
- * @param value The int value for the name.
- */
- public void setInt( COSName key, int value )
- {
- setItem( key, COSInteger.get(value) );
- }
-
- /**
- * This is a convenience method that will convert the value to a COSInteger
- * object.
- *
- * @param key The key to the object,
- * @param value The int value for the name.
- */
- public void setLong( String key, long value )
- {
- setLong( COSName.getPDFName( key ), value );
- }
-
- /**
- * This is a convenience method that will convert the value to a COSInteger
- * object.
- *
- * @param key The key to the object,
- * @param value The int value for the name.
- */
- public void setLong( COSName key, long value )
- {
- COSInteger intVal = null;
- intVal = COSInteger.get(value);
- setItem( key, intVal );
- }
-
- /**
- * This is a convenience method that will convert the value to a COSInteger
- * object.
- *
- * @param embeddedDictionary The embedded dictionary.
- * @param key The key to the object,
- * @param value The int value for the name.
- */
- public void setEmbeddedInt( String embeddedDictionary, String key, int value )
- {
- setEmbeddedInt( embeddedDictionary, COSName.getPDFName( key ), value );
- }
-
- /**
- * This is a convenience method that will convert the value to a COSInteger
- * object.
- *
- * @param embeddedDictionary The embedded dictionary.
- * @param key The key to the object,
- * @param value The int value for the name.
- */
- public void setEmbeddedInt( String embeddedDictionary, COSName key, int value )
- {
- COSDictionary embedded = (COSDictionary)getDictionaryObject( embeddedDictionary );
- if( embedded == null )
- {
- embedded = new COSDictionary();
- setItem( embeddedDictionary, embedded );
- }
- embedded.setInt( key, value );
- }
-
- /**
- * This is a convenience method that will convert the value to a COSFloat
- * object.
- *
- * @param key The key to the object,
- * @param value The int value for the name.
- */
- public void setFloat( String key, float value )
- {
- setFloat( COSName.getPDFName( key ), value );
- }
-
- /**
- * This is a convenience method that will convert the value to a COSFloat
- * object.
- *
- * @param key The key to the object,
- * @param value The int value for the name.
- */
- public void setFloat( COSName key, float value )
- {
- COSFloat fltVal = new COSFloat( value );
- setItem( key, fltVal );
- }
+ /**
+ * The name-value pairs of this dictionary. The pairs are kept in the order they were added to the dictionary.
+ */
+ protected Map<COSName, COSBase> items = new LinkedHashMap<COSName, COSBase>();
+
+ /**
+ * Constructor.
+ */
+ public COSDictionary()
+ {
+ // default constructor
+ }
+
+ /**
+ * Copy Constructor. This will make a shallow copy of this dictionary.
+ *
+ * @param dict The dictionary to copy.
+ */
+ public COSDictionary(COSDictionary dict)
+ {
+ items.putAll(dict.items);
+ }
+
+ /**
+ * @see java.util.Map#containsValue(java.lang.Object)
+ *
+ * @param value The value to find in the map.
+ *
+ * @return true if the map contains this value.
+ */
+ public boolean containsValue(Object value)
+ {
+ boolean contains = items.containsValue(value);
+ if (!contains && value instanceof COSObject)
+ {
+ contains = items.containsValue(((COSObject) value).getObject());
+ }
+ return contains;
+ }
+
+ /**
+ * Search in the map for the value that matches the parameter and return the first key that maps to that value.
+ *
+ * @param value The value to search for in the map.
+ * @return The key for the value in the map or null if it does not exist.
+ */
+ public COSName getKeyForValue(Object value)
+ {
+ for (Map.Entry<COSName, COSBase> entry : items.entrySet())
+ {
+ Object nextValue = entry.getValue();
+ if (nextValue.equals(value)
+ || (nextValue instanceof COSObject && ((COSObject) nextValue).getObject()
+ .equals(value)))
+ {
+ return entry.getKey();
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * This will return the number of elements in this dictionary.
+ *
+ * @return The number of elements in the dictionary.
+ */
+ public int size()
+ {
+ return items.size();
+ }
+
+ /**
+ * This will clear all items in the map.
+ */
+ public void clear()
+ {
+ items.clear();
+ }
+
+ /**
+ * This will get an object from this dictionary. If the object is a reference then it will dereference it and get it
+ * from the document. If the object is COSNull then null will be returned.
+ *
+ * @param key The key to the object that we are getting.
+ *
+ * @return The object that matches the key.
+ */
+ public COSBase getDictionaryObject(String key)
+ {
+ return getDictionaryObject(COSName.getPDFName(key));
+ }
+
+ /**
+ * This is a special case of getDictionaryObject that takes multiple keys, it will handle the situation where
+ * multiple keys could get the same value, ie if either CS or ColorSpace is used to get the colorspace. This will
+ * get an object from this dictionary. If the object is a reference then it will dereference it and get it from the
+ * document. If the object is COSNull then null will be returned.
+ *
+ * @param firstKey The first key to try.
+ * @param secondKey The second key to try.
+ *
+ * @return The object that matches the key.
+ */
+ public COSBase getDictionaryObject(COSName firstKey, COSName secondKey)
+ {
+ COSBase retval = getDictionaryObject(firstKey);
+ if (retval == null && secondKey != null)
+ {
+ retval = getDictionaryObject(secondKey);
+ }
+ return retval;
+ }
+
+ /**
+ * This is a special case of getDictionaryObject that takes multiple keys, it will handle the situation where
+ * multiple keys could get the same value, ie if either CS or ColorSpace is used to get the colorspace. This will
+ * get an object from this dictionary. If the object is a reference then it will dereference it and get it from the
+ * document. If the object is COSNull then null will be returned.
+ *
+ * @param keyList The list of keys to find a value.
+ *
+ * @return The object that matches the key.
+ */
+ public COSBase getDictionaryObject(String[] keyList)
+ {
+ COSBase retval = null;
+ for (int i = 0; i < keyList.length && retval == null; i++)
+ {
+ retval = getDictionaryObject(COSName.getPDFName(keyList[i]));
+ }
+ return retval;
+ }
+
+ /**
+ * This will get an object from this dictionary. If the object is a reference then it will dereference it and get it
+ * from the document. If the object is COSNull then null will be returned.
+ *
+ * @param key The key to the object that we are getting.
+ *
+ * @return The object that matches the key.
+ */
+ public COSBase getDictionaryObject(COSName key)
+ {
+ COSBase retval = items.get(key);
+ if (retval instanceof COSObject)
+ {
+ retval = ((COSObject) retval).getObject();
+ }
+ if (retval instanceof COSNull)
+ {
+ retval = null;
+ }
+ return retval;
+ }
+
+ /**
+ * This will set an item in the dictionary. If value is null then the result will be the same as removeItem( key ).
+ *
+ * @param key The key to the dictionary object.
+ * @param value The value to the dictionary object.
+ */
+ public void setItem(COSName key, COSBase value)
+ {
+ if (value == null)
+ {
+ removeItem(key);
+ }
+ else
+ {
+ items.put(key, value);
+ }
+ }
+
+ /**
+ * This will set an item in the dictionary. If value is null then the result will be the same as removeItem( key ).
+ *
+ * @param key The key to the dictionary object.
+ * @param value The value to the dictionary object.
+ */
+ public void setItem(COSName key, COSObjectable value)
+ {
+ COSBase base = null;
+ if (value != null)
+ {
+ base = value.getCOSObject();
+ }
+ setItem(key, base);
+ }
+
+ /**
+ * This will set an item in the dictionary. If value is null then the result will be the same as removeItem( key ).
+ *
+ * @param key The key to the dictionary object.
+ * @param value The value to the dictionary object.
+ */
+ public void setItem(String key, COSObjectable value)
+ {
+ setItem(COSName.getPDFName(key), value);
+ }
+
+ /**
+ * This will set an item in the dictionary.
+ *
+ * @param key The key to the dictionary object.
+ * @param value The value to the dictionary object.
+ */
+ public void setBoolean(String key, boolean value)
+ {
+ setItem(COSName.getPDFName(key), COSBoolean.getBoolean(value));
+ }
+
+ /**
+ * This will set an item in the dictionary.
+ *
+ * @param key The key to the dictionary object.
+ * @param value The value to the dictionary object.
+ */
+ public void setBoolean(COSName key, boolean value)
+ {
+ setItem(key, COSBoolean.getBoolean(value));
+ }
+
+ /**
+ * This will set an item in the dictionary. If value is null then the result will be the same as removeItem( key ).
+ *
+ * @param key The key to the dictionary object.
+ * @param value The value to the dictionary object.
+ */
+ public void setItem(String key, COSBase value)
+ {
+ setItem(COSName.getPDFName(key), value);
+ }
+
+ /**
+ * This is a convenience method that will convert the value to a COSName object. If it is null then the object will
+ * be removed.
+ *
+ * @param key The key to the object,
+ * @param value The string value for the name.
+ */
+ public void setName(String key, String value)
+ {
+ setName(COSName.getPDFName(key), value);
+ }
+
+ /**
+ * This is a convenience method that will convert the value to a COSName object. If it is null then the object will
+ * be removed.
+ *
+ * @param key The key to the object,
+ * @param value The string value for the name.
+ */
+ public void setName(COSName key, String value)
+ {
+ COSName name = null;
+ if (value != null)
+ {
+ name = COSName.getPDFName(value);
+ }
+ setItem(key, name);
+ }
+
+ /**
+ * Set the value of a date entry in the dictionary.
+ *
+ * @param key The key to the date value.
+ * @param date The date value.
+ */
+ public void setDate(String key, Calendar date)
+ {
+ setDate(COSName.getPDFName(key), date);
+ }
+
+ /**
+ * Set the date object.
+ *
+ * @param key The key to the date.
+ * @param date The date to set.
+ */
+ public void setDate(COSName key, Calendar date)
+ {
+ setString(key, DateConverter.toString(date));
+ }
+
+ /**
+ * Set the value of a date entry in the dictionary.
+ *
+ * @param embedded The embedded dictionary.
+ * @param key The key to the date value.
+ * @param date The date value.
+ */
+ public void setEmbeddedDate(String embedded, String key, Calendar date)
+ {
+ setEmbeddedDate(embedded, COSName.getPDFName(key), date);
+ }
+
+ /**
+ * Set the date object.
+ *
+ * @param embedded The embedded dictionary.
+ * @param key The key to the date.
+ * @param date The date to set.
+ */
+ public void setEmbeddedDate(String embedded, COSName key, Calendar date)
+ {
+ COSDictionary dic = (COSDictionary) getDictionaryObject(embedded);
+ if (dic == null && date != null)
+ {
+ dic = new COSDictionary();
+ setItem(embedded, dic);
+ }
+ if (dic != null)
+ {
+ dic.setDate(key, date);
+ }
+ }
+
+ /**
+ * This is a convenience method that will convert the value to a COSString object. If it is null then the object
+ * will be removed.
+ *
+ * @param key The key to the object,
+ * @param value The string value for the name.
+ */
+ public void setString(String key, String value)
+ {
+ setString(COSName.getPDFName(key), value);
+ }
+
+ /**
+ * This is a convenience method that will convert the value to a COSString object. If it is null then the object
+ * will be removed.
+ *
+ * @param key The key to the object,
+ * @param value The string value for the name.
+ */
+ public void setString(COSName key, String value)
+ {
+ COSString name = null;
+ if (value != null)
+ {
+ name = new COSString(value);
+ }
+ setItem(key, name);
+ }
+
+ /**
+ * This is a convenience method that will convert the value to a COSString object. If it is null then the object
+ * will be removed.
+ *
+ * @param embedded The embedded dictionary to set the item in.
+ * @param key The key to the object,
+ * @param value The string value for the name.
+ */
+ public void setEmbeddedString(String embedded, String key, String value)
+ {
+ setEmbeddedString(embedded, COSName.getPDFName(key), value);
+ }
+
+ /**
+ * This is a convenience method that will convert the value to a COSString object. If it is null then the object
+ * will be removed.
+ *
+ * @param embedded The embedded dictionary to set the item in.
+ * @param key The key to the object,
+ * @param value The string value for the name.
+ */
+ public void setEmbeddedString(String embedded, COSName key, String value)
+ {
+ COSDictionary dic = (COSDictionary) getDictionaryObject(embedded);
+ if (dic == null && value != null)
+ {
+ dic = new COSDictionary();
+ setItem(embedded, dic);
+ }
+ if (dic != null)
+ {
+ dic.setString(key, value);
+ }
+ }
+
+ /**
+ * This is a convenience method that will convert the value to a COSInteger object.
+ *
+ * @param key The key to the object,
+ * @param value The int value for the name.
+ */
+ public void setInt(String key, int value)
+ {
+ setInt(COSName.getPDFName(key), value);
+ }
+
+ /**
+ * This is a convenience method that will convert the value to a COSInteger object.
+ *
+ * @param key The key to the object,
+ * @param value The int value for the name.
+ */
+ public void setInt(COSName key, int value)
+ {
+ setItem(key, COSInteger.get(value));
+ }
+
+ /**
+ * This is a convenience method that will convert the value to a COSInteger object.
+ *
+ * @param key The key to the object,
+ * @param value The int value for the name.
+ */
+ public void setLong(String key, long value)
+ {
+ setLong(COSName.getPDFName(key), value);
+ }
+
+ /**
+ * This is a convenience method that will convert the value to a COSInteger object.
+ *
+ * @param key The key to the object,
+ * @param value The int value for the name.
+ */
+ public void setLong(COSName key, long value)
+ {
+ COSInteger intVal = null;
+ intVal = COSInteger.get(value);
+ setItem(key, intVal);
+ }
+
+ /**
+ * This is a convenience method that will convert the value to a COSInteger object.
+ *
+ * @param embeddedDictionary The embedded dictionary.
+ * @param key The key to the object,
+ * @param value The int value for the name.
+ */
+ public void setEmbeddedInt(String embeddedDictionary, String key, int value)
+ {
+ setEmbeddedInt(embeddedDictionary, COSName.getPDFName(key), value);
+ }
+
+ /**
+ * This is a convenience method that will convert the value to a COSInteger object.
+ *
+ * @param embeddedDictionary The embedded dictionary.
+ * @param key The key to the object,
+ * @param value The int value for the name.
+ */
+ public void setEmbeddedInt(String embeddedDictionary, COSName key, int value)
+ {
+ COSDictionary embedded = (COSDictionary) getDictionaryObject(embeddedDictionary);
+ if (embedded == null)
+ {
+ embedded = new COSDictionary();
+ setItem(embeddedDictionary, embedded);
+ }
+ embedded.setInt(key, value);
+ }
+
+ /**
+ * This is a convenience method that will convert the value to a COSFloat object.
+ *
+ * @param key The key to the object,
+ * @param value The int value for the name.
+ */
+ public void setFloat(String key, float value)
+ {
+ setFloat(COSName.getPDFName(key), value);
+ }
+
+ /**
+ * This is a convenience method that will convert the value to a COSFloat object.
+ *
+ * @param key The key to the object,
+ * @param value The int value for the name.
+ */
+ public void setFloat(COSName key, float value)
+ {
+ COSFloat fltVal = new COSFloat(value);
+ setItem(key, fltVal);
+ }
+
+ /**
+ * Sets the given boolean value at bitPos in the flags.
+ *
+ * @param field The COSName of the field to set the value into.
+ * @param bitFlag the bit position to set the value in.
+ * @param value the value the bit position should have.
+ */
+ public void setFlag(COSName field, int bitFlag, boolean value)
+ {
+ int currentFlags = getInt(field, 0);
+ if (value)
+ {
+ currentFlags = currentFlags | bitFlag;
+ }
+ else
+ {
+ currentFlags &= ~bitFlag;
+ }
+ setInt(field, currentFlags);
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be a name. Null is returned
+ * if the entry does not exist in the dictionary.
+ *
+ * @param key The key to the item in the dictionary.
+ * @return The COS name.
+ */
+ public COSName getCOSName(COSName key)
+ {
+ COSBase name = getDictionaryObject(key);
+ if (name != null)
+ {
+ if (name instanceof COSName)
+ {
+ return (COSName) name;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be a name. Default is
+ * returned if the entry does not exist in the dictionary.
+ *
+ * @param key The key to the item in the dictionary.
+ * @param defaultValue The value to return if the dictionary item is null.
+ * @return The COS name.
+ */
+ public COSName getCOSName(COSName key, COSName defaultValue)
+ {
+ COSBase name = getDictionaryObject(key);
+ if (name != null)
+ {
+ if (name instanceof COSName)
+ {
+ return (COSName) name;
+ }
+ }
+ return defaultValue;
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be a name and convert it to
+ * a string. Null is returned if the entry does not exist in the dictionary.
+ *
+ * @param key The key to the item in the dictionary.
+ * @return The name converted to a string.
+ */
+ public String getNameAsString(String key)
+ {
+ return getNameAsString(COSName.getPDFName(key));
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be a name and convert it to
+ * a string. Null is returned if the entry does not exist in the dictionary.
+ *
+ * @param key The key to the item in the dictionary.
+ * @return The name converted to a string.
+ */
+ public String getNameAsString(COSName key)
+ {
+ String retval = null;
+ COSBase name = getDictionaryObject(key);
+ if (name != null)
+ {
+ if (name instanceof COSName)
+ {
+ retval = ((COSName) name).getName();
+ }
+ else if (name instanceof COSString)
+ {
+ retval = ((COSString) name).getString();
+ }
+ }
+ return retval;
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be a name and convert it to
+ * a string. Null is returned if the entry does not exist in the dictionary.
+ *
+ * @param key The key to the item in the dictionary.
+ * @param defaultValue The value to return if the dictionary item is null.
+ * @return The name converted to a string.
+ */
+ public String getNameAsString(String key, String defaultValue)
+ {
+ return getNameAsString(COSName.getPDFName(key), defaultValue);
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be a name and convert it to
+ * a string. Null is returned if the entry does not exist in the dictionary.
+ *
+ * @param key The key to the item in the dictionary.
+ * @param defaultValue The value to return if the dictionary item is null.
+ * @return The name converted to a string.
+ */
+ public String getNameAsString(COSName key, String defaultValue)
+ {
+ String retval = getNameAsString(key);
+ if (retval == null)
+ {
+ retval = defaultValue;
+ }
+ return retval;
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be a name and convert it to
+ * a string. Null is returned if the entry does not exist in the dictionary.
+ *
+ * @param key The key to the item in the dictionary.
+ * @return The name converted to a string.
+ */
+ public String getString(String key)
+ {
+ return getString(COSName.getPDFName(key));
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be a name and convert it to
+ * a string. Null is returned if the entry does not exist in the dictionary.
+ *
+ * @param key The key to the item in the dictionary.
+ * @return The name converted to a string.
+ */
+ public String getString(COSName key)
+ {
+ String retval = null;
+ COSBase value = getDictionaryObject(key);
+ if (value != null && value instanceof COSString)
+ {
+ retval = ((COSString) value).getString();
+ }
+ return retval;
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be a name and convert it to
+ * a string. Null is returned if the entry does not exist in the dictionary.
+ *
+ * @param key The key to the item in the dictionary.
+ * @param defaultValue The default value to return.
+ * @return The name converted to a string.
+ */
+ public String getString(String key, String defaultValue)
+ {
+ return getString(COSName.getPDFName(key), defaultValue);
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be a name and convert it to
+ * a string. Null is returned if the entry does not exist in the dictionary.
+ *
+ * @param key The key to the item in the dictionary.
+ * @param defaultValue The default value to return.
+ * @return The name converted to a string.
+ */
+ public String getString(COSName key, String defaultValue)
+ {
+ String retval = getString(key);
+ if (retval == null)
+ {
+ retval = defaultValue;
+ }
+ return retval;
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be a name and convert it to
+ * a string. Null is returned if the entry does not exist in the dictionary.
+ *
+ * @param embedded The embedded dictionary.
+ * @param key The key to the item in the dictionary.
+ * @return The name converted to a string.
+ */
+ public String getEmbeddedString(String embedded, String key)
+ {
+ return getEmbeddedString(embedded, COSName.getPDFName(key), null);
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be a name and convert it to
+ * a string. Null is returned if the entry does not exist in the dictionary.
+ *
+ * @param embedded The embedded dictionary.
+ * @param key The key to the item in the dictionary.
+ * @return The name converted to a string.
+ */
+ public String getEmbeddedString(String embedded, COSName key)
+ {
+ return getEmbeddedString(embedded, key, null);
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be a name and convert it to
+ * a string. Null is returned if the entry does not exist in the dictionary.
+ *
+ * @param embedded The embedded dictionary.
+ * @param key The key to the item in the dictionary.
+ * @param defaultValue The default value to return.
+ * @return The name converted to a string.
+ */
+ public String getEmbeddedString(String embedded, String key, String defaultValue)
+ {
+ return getEmbeddedString(embedded, COSName.getPDFName(key), defaultValue);
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be a name and convert it to
+ * a string. Null is returned if the entry does not exist in the dictionary.
+ *
+ * @param embedded The embedded dictionary.
+ * @param key The key to the item in the dictionary.
+ * @param defaultValue The default value to return.
+ * @return The name converted to a string.
+ */
+ public String getEmbeddedString(String embedded, COSName key, String defaultValue)
+ {
+ String retval = defaultValue;
+ COSDictionary dic = (COSDictionary) getDictionaryObject(embedded);
+ if (dic != null)
+ {
+ retval = dic.getString(key, defaultValue);
+ }
+ return retval;
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be a name and convert it to
+ * a string. Null is returned if the entry does not exist in the dictionary or if the date was invalid.
+ *
+ * @param key The key to the item in the dictionary.
+ * @return The name converted to a date.
+ */
+ public Calendar getDate(String key)
+ {
+ return getDate(COSName.getPDFName(key));
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be a name and convert it to
+ * a string. Null is returned if the entry does not exist in the dictionary or if the date was invalid.
+ *
+ * @param key The key to the item in the dictionary.
+ * @return The name converted to a date.
+ */
+ public Calendar getDate(COSName key)
+ {
+ COSString date = (COSString) getDictionaryObject(key);
+ return DateConverter.toCalendar(date);
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be a date. Null is returned
+ * if the entry does not exist in the dictionary or if the date was invalid.
+ *
+ * @param key The key to the item in the dictionary.
+ * @param defaultValue The default value to return.
+ * @return The name converted to a date.
+ */
+ public Calendar getDate(String key, Calendar defaultValue)
+ {
+ return getDate(COSName.getPDFName(key), defaultValue);
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be a date. Null is returned
+ * if the entry does not exist in the dictionary or if the date was invalid.
+ *
+ * @param key The key to the item in the dictionary.
+ * @param defaultValue The default value to return.
+ * @return The name converted to a date.
+ */
+ public Calendar getDate(COSName key, Calendar defaultValue)
+ {
+ Calendar retval = getDate(key);
+ if (retval == null)
+ {
+ retval = defaultValue;
+ }
+ return retval;
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be a name and convert it to
+ * a string. Null is returned if the entry does not exist in the dictionary.
+ *
+ * @param embedded The embedded dictionary to get.
+ * @param key The key to the item in the dictionary.
+ * @return The name converted to a string.
+ * @throws IOException If there is an error converting to a date.
+ */
+ public Calendar getEmbeddedDate(String embedded, String key) throws IOException
+ {
+ return getEmbeddedDate(embedded, COSName.getPDFName(key), null);
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be a name and convert it to
+ * a string. Null is returned if the entry does not exist in the dictionary.
+ *
+ * @param embedded The embedded dictionary to get.
+ * @param key The key to the item in the dictionary.
+ * @return The name converted to a string.
+ *
+ * @throws IOException If there is an error converting to a date.
+ */
+ public Calendar getEmbeddedDate(String embedded, COSName key) throws IOException
+ {
+ return getEmbeddedDate(embedded, key, null);
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be a date. Null is returned
+ * if the entry does not exist in the dictionary.
+ *
+ * @param embedded The embedded dictionary to get.
+ * @param key The key to the item in the dictionary.
+ * @param defaultValue The default value to return.
+ * @return The name converted to a string.
+ * @throws IOException If there is an error converting to a date.
+ */
+ public Calendar getEmbeddedDate(String embedded, String key, Calendar defaultValue)
+ throws IOException
+ {
+ return getEmbeddedDate(embedded, COSName.getPDFName(key), defaultValue);
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be a date. Null is returned
+ * if the entry does not exist in the dictionary.
+ *
+ * @param embedded The embedded dictionary to get.
+ * @param key The key to the item in the dictionary.
+ * @param defaultValue The default value to return.
+ * @return The name converted to a string.
+ * @throws IOException If there is an error converting to a date.
+ */
+ public Calendar getEmbeddedDate(String embedded, COSName key, Calendar defaultValue)
+ throws IOException
+ {
+ Calendar retval = defaultValue;
+ COSDictionary eDic = (COSDictionary) getDictionaryObject(embedded);
+ if (eDic != null)
+ {
+ retval = eDic.getDate(key, defaultValue);
+ }
+ return retval;
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be a cos boolean and convert
+ * it to a primitive boolean.
+ *
+ * @param key The key to the item in the dictionary.
+ * @param defaultValue The value returned if the entry is null.
+ *
+ * @return The value converted to a boolean.
+ */
+ public boolean getBoolean(String key, boolean defaultValue)
+ {
+ return getBoolean(COSName.getPDFName(key), defaultValue);
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be a COSBoolean and convert
+ * it to a primitive boolean.
+ *
+ * @param key The key to the item in the dictionary.
+ * @param defaultValue The value returned if the entry is null.
+ *
+ * @return The entry converted to a boolean.
+ */
+ public boolean getBoolean(COSName key, boolean defaultValue)
+ {
+ return getBoolean(key, null, defaultValue);
+ }
/**
- * Sets the given boolean value at bitPos in the flags.
+ * This is a convenience method that will get the dictionary object that is expected to be a COSBoolean and convert
+ * it to a primitive boolean.
*
- * @param field The COSName of the field to set the value into.
- * @param bitFlag the bit position to set the value in.
- * @param value the value the bit position should have.
+ * @param firstKey The first key to the item in the dictionary.
+ * @param secondKey The second key to the item in the dictionary.
+ * @param defaultValue The value returned if the entry is null.
+ *
+ * @return The entry converted to a boolean.
*/
- public void setFlag(COSName field, int bitFlag, boolean value)
+ public boolean getBoolean(COSName firstKey, COSName secondKey, boolean defaultValue)
{
- int currentFlags = getInt(field, 0);
- if (value)
+ boolean retval = defaultValue;
+ COSBase bool = getDictionaryObject(firstKey, secondKey);
+ if (bool != null && bool instanceof COSBoolean)
{
- currentFlags = currentFlags | bitFlag;
+ retval = ((COSBoolean) bool).getValue();
}
- else
+ return retval;
+ }
+
+ /**
+ * Get an integer from an embedded dictionary. Useful for 1-1 mappings. default:-1
+ *
+ * @param embeddedDictionary The name of the embedded dictionary.
+ * @param key The key in the embedded dictionary.
+ *
+ * @return The value of the embedded integer.
+ */
+ public int getEmbeddedInt(String embeddedDictionary, String key)
+ {
+ return getEmbeddedInt(embeddedDictionary, COSName.getPDFName(key));
+ }
+
+ /**
+ * Get an integer from an embedded dictionary. Useful for 1-1 mappings. default:-1
+ *
+ * @param embeddedDictionary The name of the embedded dictionary.
+ * @param key The key in the embedded dictionary.
+ *
+ * @return The value of the embedded integer.
+ */
+ public int getEmbeddedInt(String embeddedDictionary, COSName key)
+ {
+ return getEmbeddedInt(embeddedDictionary, key, -1);
+ }
+
+ /**
+ * Get an integer from an embedded dictionary. Useful for 1-1 mappings.
+ *
+ * @param embeddedDictionary The name of the embedded dictionary.
+ * @param key The key in the embedded dictionary.
+ * @param defaultValue The value if there is no embedded dictionary or it does not contain the key.
+ *
+ * @return The value of the embedded integer.
+ */
+ public int getEmbeddedInt(String embeddedDictionary, String key, int defaultValue)
+ {
+ return getEmbeddedInt(embeddedDictionary, COSName.getPDFName(key), defaultValue);
+ }
+
+ /**
+ * Get an integer from an embedded dictionary. Useful for 1-1 mappings.
+ *
+ * @param embeddedDictionary The name of the embedded dictionary.
+ * @param key The key in the embedded dictionary.
+ * @param defaultValue The value if there is no embedded dictionary or it does not contain the key.
+ *
+ * @return The value of the embedded integer.
+ */
+ public int getEmbeddedInt(String embeddedDictionary, COSName key, int defaultValue)
+ {
+ int retval = defaultValue;
+ COSDictionary embedded = (COSDictionary) getDictionaryObject(embeddedDictionary);
+ if (embedded != null)
{
- currentFlags &= ~bitFlag;
+ retval = embedded.getInt(key, defaultValue);
}
- setInt(field, currentFlags);
+ return retval;
}
/**
- * This is a convenience method that will get the dictionary object that
- * is expected to be a name. Null is returned if the entry does not exist in the dictionary.
+ * This is a convenience method that will get the dictionary object that is expected to be an int. -1 is returned if
+ * there is no value.
*
* @param key The key to the item in the dictionary.
- * @return The COS name.
+ * @return The integer value.
*/
- public COSName getCOSName(COSName key)
+ public int getInt(String key)
+ {
+ return getInt(COSName.getPDFName(key), -1);
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be an int. -1 is returned if
+ * there is no value.
+ *
+ * @param key The key to the item in the dictionary.
+ * @return The integer value..
+ */
+ public int getInt(COSName key)
{
- COSBase name = getDictionaryObject( key );
- if( name != null )
+ return getInt(key, -1);
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be an integer. If the
+ * dictionary value is null then the default Value will be returned.
+ *
+ * @param keyList The key to the item in the dictionary.
+ * @param defaultValue The value to return if the dictionary item is null.
+ * @return The integer value.
+ */
+ public int getInt(String[] keyList, int defaultValue)
+ {
+ int retval = defaultValue;
+ COSBase obj = getDictionaryObject(keyList);
+ if (obj != null && obj instanceof COSNumber)
{
- if ( name instanceof COSName )
- {
- return (COSName) name;
- }
+ retval = ((COSNumber) obj).intValue();
}
- return null;
+ return retval;
}
/**
- * This is a convenience method that will get the dictionary object that
- * is expected to be a name. Default is returned if the entry does not exist in the dictionary.
+ * This is a convenience method that will get the dictionary object that is expected to be an integer. If the
+ * dictionary value is null then the default Value will be returned.
*
* @param key The key to the item in the dictionary.
* @param defaultValue The value to return if the dictionary item is null.
- * @return The COS name.
+ * @return The integer value.
*/
- public COSName getCOSName(COSName key, COSName defaultValue)
+ public int getInt(String key, int defaultValue)
+ {
+ return getInt(COSName.getPDFName(key), defaultValue);
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be an integer. If the
+ * dictionary value is null then the default Value will be returned.
+ *
+ * @param key The key to the item in the dictionary.
+ * @param defaultValue The value to return if the dictionary item is null.
+ * @return The integer value.
+ */
+ public int getInt(COSName key, int defaultValue)
+ {
+ return getInt(key, null, defaultValue);
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be an integer. If the
+ * dictionary value is null then the default Value -1 will be returned.
+ *
+ * @param firstKey The first key to the item in the dictionary.
+ * @param secondKey The second key to the item in the dictionary.
+ * @return The integer value.
+ */
+ public int getInt(COSName firstKey, COSName secondKey)
+ {
+ return getInt(firstKey, secondKey, -1);
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be an integer. If the
+ * dictionary value is null then the default Value will be returned.
+ *
+ * @param firstKey The first key to the item in the dictionary.
+ * @param secondKey The second key to the item in the dictionary.
+ * @param defaultValue The value to return if the dictionary item is null.
+ * @return The integer value.
+ */
+ public int getInt(COSName firstKey, COSName secondKey, int defaultValue)
{
- COSBase name = getDictionaryObject( key );
- if( name != null )
+ int retval = defaultValue;
+ COSBase obj = getDictionaryObject(firstKey, secondKey);
+ if (obj != null && obj instanceof COSNumber)
{
- if ( name instanceof COSName )
- {
- return (COSName) name;
- }
+ retval = ((COSNumber) obj).intValue();
}
- return defaultValue;
+ return retval;
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be an long. -1 is returned
+ * if there is no value.
+ *
+ * @param key The key to the item in the dictionary.
+ *
+ * @return The long value.
+ */
+ public long getLong(String key)
+ {
+ return getLong(COSName.getPDFName(key), -1L);
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be an long. -1 is returned
+ * if there is no value.
+ *
+ * @param key The key to the item in the dictionary.
+ * @return The long value.
+ */
+ public long getLong(COSName key)
+ {
+ return getLong(key, -1L);
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be an long. If the
+ * dictionary value is null then the default Value will be returned.
+ *
+ * @param keyList The key to the item in the dictionary.
+ * @param defaultValue The value to return if the dictionary item is null.
+ * @return The long value.
+ */
+ public long getLong(String[] keyList, long defaultValue)
+ {
+ long retval = defaultValue;
+ COSBase obj = getDictionaryObject(keyList);
+ if (obj != null && obj instanceof COSNumber)
+ {
+ retval = ((COSNumber) obj).longValue();
+ }
+ return retval;
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be an integer. If the
+ * dictionary value is null then the default Value will be returned.
+ *
+ * @param key The key to the item in the dictionary.
+ * @param defaultValue The value to return if the dictionary item is null.
+ * @return The integer value.
+ */
+ public long getLong(String key, long defaultValue)
+ {
+ return getLong(COSName.getPDFName(key), defaultValue);
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be an integer. If the
+ * dictionary value is null then the default Value will be returned.
+ *
+ * @param key The key to the item in the dictionary.
+ * @param defaultValue The value to return if the dictionary item is null.
+ * @return The integer value.
+ */
+ public long getLong(COSName key, long defaultValue)
+ {
+ long retval = defaultValue;
+ COSBase obj = getDictionaryObject(key);
+ if (obj != null && obj instanceof COSNumber)
+ {
+ retval = ((COSNumber) obj).longValue();
+ }
+ return retval;
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be an float. -1 is returned
+ * if there is no value.
+ *
+ * @param key The key to the item in the dictionary.
+ * @return The float value.
+ */
+ public float getFloat(String key)
+ {
+ return getFloat(COSName.getPDFName(key), -1);
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be an float. -1 is returned
+ * if there is no value.
+ *
+ * @param key The key to the item in the dictionary.
+ * @return The float value.
+ */
+ public float getFloat(COSName key)
+ {
+ return getFloat(key, -1);
+ }
+
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be a float. If the
+ * dictionary value is null then the default Value will be returned.
+ *
+ * @param key The key to the item in the dictionary.
+ * @param defaultValue The value to return if the dictionary item is null.
+ * @return The float value.
+ */
+ public float getFloat(String key, float defaultValue)
+ {
+ return getFloat(COSName.getPDFName(key), defaultValue);
}
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be a name and convert it to a string. Null is returned
- * if the entry does not exist in the dictionary.
- *
- * @param key The key to the item in the dictionary.
- * @return The name converted to a string.
- */
- public String getNameAsString( String key )
- {
- return getNameAsString( COSName.getPDFName( key ) );
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be a name and convert it to a string. Null is returned
- * if the entry does not exist in the dictionary.
- *
- * @param key The key to the item in the dictionary.
- * @return The name converted to a string.
- */
- public String getNameAsString( COSName key )
- {
- String retval = null;
- COSBase name = getDictionaryObject( key );
- if( name != null )
- {
- if ( name instanceof COSName)
- {
- retval = ((COSName)name).getName();
- }
- else if ( name instanceof COSString)
- {
- retval = ((COSString)name).getString();
- }
- }
- return retval;
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be a name and convert it to a string. Null is returned
- * if the entry does not exist in the dictionary.
- *
- * @param key The key to the item in the dictionary.
- * @param defaultValue The value to return if the dictionary item is null.
- * @return The name converted to a string.
- */
- public String getNameAsString( String key, String defaultValue )
- {
- return getNameAsString( COSName.getPDFName( key ), defaultValue );
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be a name and convert it to a string. Null is returned
- * if the entry does not exist in the dictionary.
- *
- * @param key The key to the item in the dictionary.
- * @param defaultValue The value to return if the dictionary item is null.
- * @return The name converted to a string.
- */
- public String getNameAsString( COSName key, String defaultValue )
- {
- String retval = getNameAsString( key );
- if( retval == null )
- {
- retval = defaultValue;
- }
- return retval;
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be a name and convert it to a string. Null is returned
- * if the entry does not exist in the dictionary.
- *
- * @param key The key to the item in the dictionary.
- * @return The name converted to a string.
- */
- public String getString( String key )
- {
- return getString( COSName.getPDFName( key ) );
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be a name and convert it to a string. Null is returned
- * if the entry does not exist in the dictionary.
- *
- * @param key The key to the item in the dictionary.
- * @return The name converted to a string.
- */
- public String getString( COSName key )
- {
- String retval = null;
- COSBase value = getDictionaryObject( key );
- if( value != null && value instanceof COSString)
- {
- retval = ((COSString)value).getString();
- }
- return retval;
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be a name and convert it to a string. Null is returned
- * if the entry does not exist in the dictionary.
- *
- * @param key The key to the item in the dictionary.
- * @param defaultValue The default value to return.
- * @return The name converted to a string.
- */
- public String getString( String key, String defaultValue )
- {
- return getString( COSName.getPDFName( key ), defaultValue );
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be a name and convert it to a string. Null is returned
- * if the entry does not exist in the dictionary.
- *
- * @param key The key to the item in the dictionary.
- * @param defaultValue The default value to return.
- * @return The name converted to a string.
- */
- public String getString( COSName key, String defaultValue )
- {
- String retval = getString( key );
- if( retval == null )
- {
- retval = defaultValue;
- }
- return retval;
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be a name and convert it to a string. Null is returned
- * if the entry does not exist in the dictionary.
- *
- * @param embedded The embedded dictionary.
- * @param key The key to the item in the dictionary.
- * @return The name converted to a string.
- */
- public String getEmbeddedString( String embedded, String key )
- {
- return getEmbeddedString( embedded, COSName.getPDFName( key ), null );
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be a name and convert it to a string. Null is returned
- * if the entry does not exist in the dictionary.
- *
- * @param embedded The embedded dictionary.
- * @param key The key to the item in the dictionary.
- * @return The name converted to a string.
- */
- public String getEmbeddedString( String embedded, COSName key )
- {
- return getEmbeddedString( embedded, key, null );
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be a name and convert it to a string. Null is returned
- * if the entry does not exist in the dictionary.
- *
- * @param embedded The embedded dictionary.
- * @param key The key to the item in the dictionary.
- * @param defaultValue The default value to return.
- * @return The name converted to a string.
- */
- public String getEmbeddedString( String embedded, String key, String defaultValue )
- {
- return getEmbeddedString( embedded, COSName.getPDFName( key ), defaultValue );
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be a name and convert it to a string. Null is returned
- * if the entry does not exist in the dictionary.
- *
- * @param embedded The embedded dictionary.
- * @param key The key to the item in the dictionary.
- * @param defaultValue The default value to return.
- * @return The name converted to a string.
- */
- public String getEmbeddedString( String embedded, COSName key, String defaultValue )
- {
- String retval = defaultValue;
- COSDictionary dic = (COSDictionary)getDictionaryObject( embedded );
- if( dic != null )
- {
- retval = dic.getString( key, defaultValue );
- }
- return retval;
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be a name and convert it to a string. Null is returned
- * if the entry does not exist in the dictionary or if the date was invalid.
- *
- * @param key The key to the item in the dictionary.
- * @return The name converted to a date.
- */
- public Calendar getDate( String key )
- {
- return getDate( COSName.getPDFName( key ) );
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be a name and convert it to a string. Null is returned
- * if the entry does not exist in the dictionary or if the date was invalid.
- *
- * @param key The key to the item in the dictionary.
- * @return The name converted to a date.
- */
- public Calendar getDate( COSName key )
- {
- COSString date = (COSString)getDictionaryObject( key );
- return DateConverter.toCalendar( date );
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be a date. Null is returned
- * if the entry does not exist in the dictionary or if the date was invalid.
- *
- * @param key The key to the item in the dictionary.
- * @param defaultValue The default value to return.
- * @return The name converted to a date.
- */
- public Calendar getDate( String key, Calendar defaultValue )
- {
- return getDate( COSName.getPDFName( key ), defaultValue );
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be a date. Null is returned
- * if the entry does not exist in the dictionary or if the date was invalid.
- *
- * @param key The key to the item in the dictionary.
- * @param defaultValue The default value to return.
- * @return The name converted to a date.
- */
- public Calendar getDate( COSName key, Calendar defaultValue )
- {
- Calendar retval = getDate( key );
- if( retval == null )
- {
- retval = defaultValue;
- }
- return retval;
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be a name and convert it to a string. Null is returned
- * if the entry does not exist in the dictionary.
- *
- * @param embedded The embedded dictionary to get.
- * @param key The key to the item in the dictionary.
- * @return The name converted to a string.
- * @throws IOException If there is an error converting to a date.
- */
- public Calendar getEmbeddedDate( String embedded, String key ) throws IOException
- {
- return getEmbeddedDate( embedded, COSName.getPDFName( key ), null );
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be a name and convert it to a string. Null is returned
- * if the entry does not exist in the dictionary.
- *
- * @param embedded The embedded dictionary to get.
- * @param key The key to the item in the dictionary.
- * @return The name converted to a string.
- *
- * @throws IOException If there is an error converting to a date.
- */
- public Calendar getEmbeddedDate( String embedded, COSName key ) throws IOException
- {
- return getEmbeddedDate( embedded, key, null );
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be a date. Null is returned
- * if the entry does not exist in the dictionary.
- *
- * @param embedded The embedded dictionary to get.
- * @param key The key to the item in the dictionary.
- * @param defaultValue The default value to return.
- * @return The name converted to a string.
- * @throws IOException If there is an error converting to a date.
- */
- public Calendar getEmbeddedDate( String embedded, String key, Calendar defaultValue ) throws IOException
- {
- return getEmbeddedDate( embedded, COSName.getPDFName( key ), defaultValue );
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be a date. Null is returned
- * if the entry does not exist in the dictionary.
- *
- * @param embedded The embedded dictionary to get.
- * @param key The key to the item in the dictionary.
- * @param defaultValue The default value to return.
- * @return The name converted to a string.
- * @throws IOException If there is an error converting to a date.
- */
- public Calendar getEmbeddedDate( String embedded, COSName key, Calendar defaultValue ) throws IOException
- {
- Calendar retval = defaultValue;
- COSDictionary eDic = (COSDictionary)getDictionaryObject( embedded );
- if( eDic != null )
- {
- retval = eDic.getDate( key, defaultValue );
- }
- return retval;
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be a cos boolean and convert it to a primitive boolean.
- *
- * @param key The key to the item in the dictionary.
- * @param defaultValue The value returned if the entry is null.
- *
- * @return The value converted to a boolean.
- */
- public boolean getBoolean( String key, boolean defaultValue )
- {
- return getBoolean( COSName.getPDFName( key ), defaultValue );
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be a COSBoolean and convert it to a primitive boolean.
- *
- * @param key The key to the item in the dictionary.
- * @param defaultValue The value returned if the entry is null.
- *
- * @return The entry converted to a boolean.
- */
- public boolean getBoolean( COSName key, boolean defaultValue )
- {
- return getBoolean( key, null, defaultValue);
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be a COSBoolean and convert it to a primitive boolean.
- *
- * @param firstKey The first key to the item in the dictionary.
- * @param secondKey The second key to the item in the dictionary.
- * @param defaultValue The value returned if the entry is null.
- *
- * @return The entry converted to a boolean.
- */
- public boolean getBoolean( COSName firstKey, COSName secondKey, boolean defaultValue )
- {
- boolean retval = defaultValue;
- COSBase bool = getDictionaryObject( firstKey, secondKey );
- if( bool != null && bool instanceof COSBoolean)
- {
- retval = ((COSBoolean)bool).getValue();
- }
- return retval;
- }
-
- /**
- * Get an integer from an embedded dictionary. Useful for 1-1 mappings. default:-1
- *
- * @param embeddedDictionary The name of the embedded dictionary.
- * @param key The key in the embedded dictionary.
- *
- * @return The value of the embedded integer.
- */
- public int getEmbeddedInt( String embeddedDictionary, String key )
- {
- return getEmbeddedInt( embeddedDictionary, COSName.getPDFName( key ) );
- }
-
- /**
- * Get an integer from an embedded dictionary. Useful for 1-1 mappings. default:-1
- *
- * @param embeddedDictionary The name of the embedded dictionary.
- * @param key The key in the embedded dictionary.
- *
- * @return The value of the embedded integer.
- */
- public int getEmbeddedInt( String embeddedDictionary, COSName key )
- {
- return getEmbeddedInt( embeddedDictionary, key, -1 );
- }
-
- /**
- * Get an integer from an embedded dictionary. Useful for 1-1 mappings.
- *
- * @param embeddedDictionary The name of the embedded dictionary.
- * @param key The key in the embedded dictionary.
- * @param defaultValue The value if there is no embedded dictionary or it does not contain the key.
- *
- * @return The value of the embedded integer.
- */
- public int getEmbeddedInt( String embeddedDictionary, String key, int defaultValue )
- {
- return getEmbeddedInt( embeddedDictionary, COSName.getPDFName( key ), defaultValue );
- }
-
-
- /**
- * Get an integer from an embedded dictionary. Useful for 1-1 mappings.
- *
- * @param embeddedDictionary The name of the embedded dictionary.
- * @param key The key in the embedded dictionary.
- * @param defaultValue The value if there is no embedded dictionary or it does not contain the key.
- *
- * @return The value of the embedded integer.
- */
- public int getEmbeddedInt( String embeddedDictionary, COSName key, int defaultValue )
- {
- int retval = defaultValue;
- COSDictionary embedded = (COSDictionary)getDictionaryObject( embeddedDictionary );
- if( embedded != null )
- {
- retval = embedded.getInt( key, defaultValue );
- }
- return retval;
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be an int. -1 is returned if there is no value.
- *
- * @param key The key to the item in the dictionary.
- * @return The integer value.
- */
- public int getInt( String key )
- {
- return getInt( COSName.getPDFName( key ), -1 );
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be an int. -1 is returned if there is no value.
- *
- * @param key The key to the item in the dictionary.
- * @return The integer value..
- */
- public int getInt( COSName key )
- {
- return getInt( key, -1 );
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be an integer. If the dictionary value is null then the
- * default Value will be returned.
- *
- * @param keyList The key to the item in the dictionary.
- * @param defaultValue The value to return if the dictionary item is null.
- * @return The integer value.
- */
- public int getInt( String[] keyList, int defaultValue )
- {
- int retval = defaultValue;
- COSBase obj = getDictionaryObject( keyList );
- if( obj != null && obj instanceof COSNumber)
- {
- retval = ((COSNumber)obj).intValue();
- }
- return retval;
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be an integer. If the dictionary value is null then the
- * default Value will be returned.
- *
- * @param key The key to the item in the dictionary.
- * @param defaultValue The value to return if the dictionary item is null.
- * @return The integer value.
- */
- public int getInt( String key, int defaultValue )
- {
- return getInt( COSName.getPDFName( key ), defaultValue );
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be an integer. If the dictionary value is null then the
- * default Value will be returned.
- *
- * @param key The key to the item in the dictionary.
- * @param defaultValue The value to return if the dictionary item is null.
- * @return The integer value.
- */
- public int getInt( COSName key, int defaultValue )
- {
- return getInt( key, null, defaultValue);
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be an integer. If the dictionary value is null then the
- * default Value -1 will be returned.
- *
- * @param firstKey The first key to the item in the dictionary.
- * @param secondKey The second key to the item in the dictionary.
- * @return The integer value.
- */
- public int getInt( COSName firstKey, COSName secondKey )
- {
- return getInt( firstKey, secondKey, -1 );
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be an integer. If the dictionary value is null then the
- * default Value will be returned.
- *
- * @param firstKey The first key to the item in the dictionary.
- * @param secondKey The second key to the item in the dictionary.
- * @param defaultValue The value to return if the dictionary item is null.
- * @return The integer value.
- */
- public int getInt( COSName firstKey, COSName secondKey, int defaultValue )
- {
- int retval = defaultValue;
- COSBase obj = getDictionaryObject( firstKey, secondKey );
- if( obj != null && obj instanceof COSNumber)
- {
- retval = ((COSNumber)obj).intValue();
- }
- return retval;
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be an long. -1 is returned if there is no value.
- *
- * @param key The key to the item in the dictionary.
- *
- * @return The long value.
- */
- public long getLong( String key )
- {
- return getLong( COSName.getPDFName( key ), -1L );
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be an long. -1 is returned if there is no value.
- *
- * @param key The key to the item in the dictionary.
- * @return The long value.
- */
- public long getLong( COSName key )
- {
- return getLong( key, -1L );
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be an long. If the dictionary value is null then the
- * default Value will be returned.
- *
- * @param keyList The key to the item in the dictionary.
- * @param defaultValue The value to return if the dictionary item is null.
- * @return The long value.
- */
- public long getLong( String[] keyList, long defaultValue )
- {
- long retval = defaultValue;
- COSBase obj = getDictionaryObject( keyList );
- if( obj != null && obj instanceof COSNumber)
- {
- retval = ((COSNumber)obj).longValue();
- }
- return retval;
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be an integer. If the dictionary value is null then the
- * default Value will be returned.
- *
- * @param key The key to the item in the dictionary.
- * @param defaultValue The value to return if the dictionary item is null.
- * @return The integer value.
- */
- public long getLong( String key, long defaultValue )
- {
- return getLong( COSName.getPDFName( key ), defaultValue );
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be an integer. If the dictionary value is null then the
- * default Value will be returned.
- *
- * @param key The key to the item in the dictionary.
- * @param defaultValue The value to return if the dictionary item is null.
- * @return The integer value.
- */
- public long getLong( COSName key, long defaultValue )
- {
- long retval = defaultValue;
- COSBase obj = getDictionaryObject( key );
- if( obj != null && obj instanceof COSNumber)
- {
- retval = ((COSNumber)obj).longValue();
- }
- return retval;
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be an float. -1 is returned if there is no value.
- *
- * @param key The key to the item in the dictionary.
- * @return The float value.
- */
- public float getFloat( String key )
- {
- return getFloat( COSName.getPDFName( key ), -1 );
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be an float. -1 is returned if there is no value.
- *
- * @param key The key to the item in the dictionary.
- * @return The float value.
- */
- public float getFloat( COSName key )
- {
- return getFloat( key, -1 );
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be a float. If the dictionary value is null then the
- * default Value will be returned.
- *
- * @param key The key to the item in the dictionary.
- * @param defaultValue The value to return if the dictionary item is null.
- * @return The float value.
- */
- public float getFloat( String key, float defaultValue )
- {
- return getFloat( COSName.getPDFName( key ), defaultValue );
- }
-
- /**
- * This is a convenience method that will get the dictionary object that
- * is expected to be an float. If the dictionary value is null then the
- * default Value will be returned.
- *
- * @param key The key to the item in the dictionary.
- * @param defaultValue The value to return if the dictionary item is null.
- * @return The float value.
- */
- public float getFloat( COSName key, float defaultValue )
- {
- float retval = defaultValue;
- COSBase obj = getDictionaryObject( key );
- if( obj != null && obj instanceof COSNumber)
- {
- retval = ((COSNumber)obj).floatValue();
- }
- return retval;
- }
+ /**
+ * This is a convenience method that will get the dictionary object that is expected to be an float. If the
+ * dictionary value is null then the default Value will be returned.
+ *
+ * @param key The key to the item in the dictionary.
+ * @param defaultValue The value to return if the dictionary item is null.
+ * @return The float value.
+ */
+ public float getFloat(COSName key, float defaultValue)
+ {
+ float retval = defaultValue;
+ COSBase obj = getDictionaryObject(key);
+ if (obj != null && obj instanceof COSNumber)
+ {
+ retval = ((COSNumber) obj).floatValue();
+ }
+ return retval;
+ }
/**
* Gets the boolean value from the flags at the given bit position.
@@ -1297,153 +1248,151 @@ public class COSDictionary extends COSBa
return (ff & bitFlag) == bitFlag;
}
- /**
- * This will remove an item for the dictionary. This
- * will do nothing of the object does not exist.
- *
- * @param key The key to the item to remove from the dictionary.
- */
- public void removeItem( COSName key )
- {
- items.remove( key );
- }
-
- /**
- * This will do a lookup into the dictionary.
- *
- * @param key The key to the object.
- *
- * @return The item that matches the key.
- */
- public COSBase getItem( COSName key )
- {
- return items.get( key );
- }
-
- /**
- * This will do a lookup into the dictionary.
- *
- * @param key The key to the object.
- *
- * @return The item that matches the key.
- */
- public COSBase getItem( String key )
- {
- return getItem( COSName.getPDFName(key) );
- }
-
- /**
- * Returns the names of the entries in this dictionary. The returned
- * set is in the order the entries were added to the dictionary.
- *
- * @since Apache PDFBox 1.1.0
- * @return names of the entries in this dictionary
- */
- public Set<COSName> keySet()
- {
- return items.keySet();
- }
-
- /**
- * Returns the name-value entries in this dictionary. The returned
- * set is in the order the entries were added to the dictionary.
- *
- * @since Apache PDFBox 1.1.0
- * @return name-value entries in this dictionary
- */
- public Set<Map.Entry<COSName, COSBase>> entrySet()
- {
- return items.entrySet();
- }
-
- /**
- * This will get all of the values for the dictionary.
- *
- * @return All the values for the dictionary.
- */
- public Collection<COSBase> getValues()
- {
- return items.values();
- }
-
- /**
- * visitor pattern double dispatch method.
- *
- * @param visitor The object to notify when visiting this object.
- * @return The object that the visitor returns.
- *
- * @throws IOException If there is an error visiting this object.
- */
- public Object accept(ICOSVisitor visitor) throws IOException
- {
- return visitor.visitFromDictionary(this);
- }
-
- /**
- * This will add all of the dictionarys keys/values to this dictionary.
- * Only called when adding keys to a trailer that already exists.
- *
- * @param dic The dic to get the keys from.
- */
- public void addAll( COSDictionary dic )
- {
- for( Map.Entry<COSName, COSBase> entry : dic.entrySet() )
- {
- /*
- * If we're at a second trailer, we have a linearized
- * pdf file, meaning that the first Size entry represents
- * all of the objects so we don't need to grab the second.
- */
- if(!entry.getKey().getName().equals("Size")
- || !items.containsKey(COSName.getPDFName("Size")))
- {
- setItem( entry.getKey(), entry.getValue() );
- }
- }
- }
-
- /**
- * @see java.util.Map#containsKey(Object)
- *
- * @param name The key to find in the map.
- * @return true if the map contains this key.
- */
- public boolean containsKey(COSName name) {
- return this.items.containsKey(name);
- }
-
- /**
- * @see java.util.Map#containsKey(Object)
- *
- * @param name The key to find in the map.
- * @return true if the map contains this key.
- */
- public boolean containsKey(String name) {
- return containsKey(COSName.getPDFName(name));
- }
-
- /**
- * This will add all of the dictionarys keys/values to this dictionary, but only
- * if they don't already exist. If a key already exists in this dictionary then
- * nothing is changed.
- *
- * @param dic The dic to get the keys from.
- */
- public void mergeInto( COSDictionary dic )
- {
- for( Map.Entry<COSName, COSBase> entry : dic.entrySet() )
- {
- if( getItem( entry.getKey() ) == null )
- {
- setItem( entry.getKey(), entry.getValue() );
- }
- }
- }
-
- /**
- * Nice method, gives you every object you want
- * Arrays works properly too. Try "P/Annots/[k]/Rect"
- * where k means the index of the Annotsarray.
+ /**
+ * This will remove an item for the dictionary. This will do nothing of the object does not exist.
+ *
+ * @param key The key to the item to remove from the dictionary.
+ */
+ public void removeItem(COSName key)
+ {
+ items.remove(key);
+ }
+
+ /**
+ * This will do a lookup into the dictionary.
+ *
+ * @param key The key to the object.
+ *
+ * @return The item that matches the key.
+ */
+ public COSBase getItem(COSName key)
+ {
+ return items.get(key);
+ }
+
+ /**
+ * This will do a lookup into the dictionary.
+ *
+ * @param key The key to the object.
+ *
+ * @return The item that matches the key.
+ */
+ public COSBase getItem(String key)
+ {
+ return getItem(COSName.getPDFName(key));
+ }
+
+ /**
+ * Returns the names of the entries in this dictionary. The returned set is in the order the entries were added to
+ * the dictionary.
+ *
+ * @since Apache PDFBox 1.1.0
+ * @return names of the entries in this dictionary
+ */
+ public Set<COSName> keySet()
+ {
+ return items.keySet();
+ }
+
+ /**
+ * Returns the name-value entries in this dictionary. The returned set is in the order the entries were added to the
+ * dictionary.
+ *
+ * @since Apache PDFBox 1.1.0
+ * @return name-value entries in this dictionary
+ */
+ public Set<Map.Entry<COSName, COSBase>> entrySet()
+ {
+ return items.entrySet();
+ }
+
+ /**
+ * This will get all of the values for the dictionary.
+ *
+ * @return All the values for the dictionary.
+ */
+ public Collection<COSBase> getValues()
+ {
+ return items.values();
+ }
+
+ /**
+ * visitor pattern double dispatch method.
+ *
+ * @param visitor The object to notify when visiting this object.
+ * @return The object that the visitor returns.
+ *
+ * @throws IOException If there is an error visiting this object.
+ */
+ public Object accept(ICOSVisitor visitor) throws IOException
+ {
+ return visitor.visitFromDictionary(this);
+ }
+
+ /**
+ * This will add all of the dictionarys keys/values to this dictionary. Only called when adding keys to a trailer
+ * that already exists.
+ *
+ * @param dic The dic to get the keys from.
+ */
+ public void addAll(COSDictionary dic)
+ {
+ for (Map.Entry<COSName, COSBase> entry : dic.entrySet())
+ {
+ /*
+ * If we're at a second trailer, we have a linearized pdf file, meaning that the first Size entry represents
+ * all of the objects so we don't need to grab the second.
+ */
+ if (!entry.getKey().getName().equals("Size")
+ || !items.containsKey(COSName.getPDFName("Size")))
+ {
+ setItem(entry.getKey(), entry.getValue());
+ }
+ }
+ }
+
+ /**
+ * @see java.util.Map#containsKey(Object)
+ *
+ * @param name The key to find in the map.
+ * @return true if the map contains this key.
+ */
+ public boolean containsKey(COSName name)
+ {
+ return this.items.containsKey(name);
+ }
+
+ /**
+ * @see java.util.Map#containsKey(Object)
+ *
+ * @param name The key to find in the map.
+ * @return true if the map contains this key.
+ */
+ public boolean containsKey(String name)
+ {
+ return containsKey(COSName.getPDFName(name));
+ }
+
+ /**
+ * This will add all of the dictionarys keys/values to this dictionary, but only if they don't already exist. If a
+ * key already exists in this dictionary then nothing is changed.
+ *
+ * @param dic The dic to get the keys from.
+ */
+ public void mergeInto(COSDictionary dic)
+ {
+ for (Map.Entry<COSName, COSBase> entry : dic.entrySet())
+ {
+ if (getItem(entry.getKey()) == null)
+ {
+ setItem(entry.getKey(), entry.getValue());
+ }
+ }
+ }
+
+ /**
+ * Nice method, gives you every object you want Arrays works properly too. Try "P/Annots/[k]/Rect" where k means the
+ * index of the Annotsarray.
*
* @param objPath the relative path to the object.
* @return the object
@@ -1470,6 +1419,7 @@ public class COSDictionary extends COSBa
/**
* Returns an unmodifiable view of this dictionary.
+ *
* @return an unmodifiable view of this dictionary
*/
public COSDictionary asUnmodifiableDictionary()
@@ -1477,25 +1427,26 @@ public class COSDictionary extends COSBa
return new UnmodifiableCOSDictionary(this);
}
- /**
- * {@inheritDoc}
- */
- @Override
- public String toString() {
- StringBuilder retVal = new StringBuilder("COSDictionary{");
- for(COSName key : items.keySet()) {
- retVal.append("(");
- retVal.append(key);
- retVal.append(":");
- if(getDictionaryObject(key) != null)
- retVal.append(getDictionaryObject(key).toString());
- else
- retVal.append("<null>");
- retVal.append(") ");
- }
- retVal.append("}");
- return retVal.toString();
- }
-
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String toString()
+ {
+ StringBuilder retVal = new StringBuilder("COSDictionary{");
+ for (COSName key : items.keySet())
+ {
+ retVal.append("(");
+ retVal.append(key);
+ retVal.append(":");
+ if (getDictionaryObject(key) != null)
+ retVal.append(getDictionaryObject(key).toString());
+ else
+ retVal.append("<null>");
[... 8 lines stripped ...]