[ 
https://issues.apache.org/jira/browse/PDFBOX-630?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12836617#action_12836617
 ] 

Johannes Koch edited comment on PDFBOX-630 at 2/22/10 1:23 PM:
---------------------------------------------------------------

See PDFBox-630_patch_00.txt.

      was (Author: waldbaer):
    Oops, wrong attachment. PDFBox-630_patch_00.tx is the correct one.
  
> Create PDDictionaryWrapper
> --------------------------
>
>                 Key: PDFBOX-630
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-630
>             Project: PDFBox
>          Issue Type: Improvement
>          Components: PDModel
>            Reporter: Johannes Koch
>         Attachments: PDFBox-630_patch_00.txt
>
>
> What is the benefit of having so many classes implement the 
> getCOSDIctionary() method on their own?
> Why not have one class providing this functionality?
> public class PDDictionaryWrapper implements COSObjectable
> {
>     private final COSDictionary dictionary;
>     /**
>      * Default constructor
>      */
>     public PDDictionaryWrapper()
>     {
>         this.dictionary = new COSDictionary();
>     }
>     /**
>      *
>      * @param dictionary the dictionary
>      */
>     public PDDictionaryWrapper(COSDictionary dictionary)
>     {
>         this.dictionary = dictionary;
>     }
>     public COSBase getCOSObject()
>     {
>         return this.dictionary;
>     }
>     /**
>      * Returns the dictionary.
>      *
>      * @return the dictionary
>      */
>     protected COSDictionary getCOSDictionary()
>     {
>         return this.dictionary;
>     }
>     @Override
>     public boolean equals(Object obj)
>     {
>         if (this == obj)
>         {
>             return true;
>         }
>         if (obj instanceof PDDictionaryWrapper)
>         {
>             return this.dictionary.equals(((PDDictionaryWrapper) 
> obj).dictionary);
>         }
>         return false;
>     }
>     @Override
>     public int hashCode()
>     {
>         return this.dictionary.hashCode();
>     }
> }
> and for objects with a required Type:
> public class PDTypedDictionaryWrapper extends PDDictionaryWrapper
> {
>     /**
>      *
>      * @param type the type
>      */
>     public PDTypedDictionaryWrapper(String type)
>     {
>         super();
>         this.getCOSDictionary().setName(COSName.TYPE, type);
>     }
>     /**
>      *
>      * @param dictionary the dictionary
>      */
>     public PDTypedDictionaryWrapper(COSDictionary dictionary)
>     {
>         super(dictionary);
>     }
>     /**
>      * Returns the type.
>      *
>      * @return the type
>      */
>     public String getType()
>     {
>         return this.getCOSDictionary().getNameAsString(COSName.TYPE);
>     }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to