Uploaded image for project: 'PDFBox'
  1. PDFBox
  2. PDFBOX-630

Create PDDictionaryWrapper

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.1.0
    • PDModel
    • None

    Description

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

      }

      Attachments

        1. PDFBox-630_patch_01.txt
          20 kB
          Johannes Koch
        2. PDFBox-630_patch_00.txt
          5 kB
          Johannes Koch

        Activity

          People

            Unassigned Unassigned
            waldbaer Johannes Koch
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: