Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.1.0
    • Component/s: PDModel
    • Labels:
      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

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

              Dates

              • Created:
                Updated:
                Resolved: