Coverage Report - org.apache.maven.doxia.document.DocumentMeta
 
Classes in this File Line Coverage Branch Coverage Complexity
DocumentMeta
89%
273/306
41%
119/284
2,656
 
 1  
 /*
 2  
  =================== DO NOT EDIT THIS FILE ====================
 3  
  Generated by Modello 1.4.1 on 2012-04-13 21:33:05,
 4  
  any modifications will be overwritten.
 5  
  ==============================================================
 6  
  */
 7  
 
 8  
 package org.apache.maven.doxia.document;
 9  
 
 10  
 /**
 11  
  * 
 12  
  *         <p>
 13  
  *           Metadata is general information about a document.
 14  
  *         </p>
 15  
  * 
 16  
  *         <p>
 17  
  *           The metadata elements used here were mostly inspired
 18  
  * by the
 19  
  *           <a href="http://docs.oasis-open.org/office/v1.1/">Open
 20  
  * Document Format Specification v. 1.1</a>,
 21  
  *           which in turn borrows heavily upon the metadata
 22  
  * standards developed by the
 23  
  *           <a href="http://www.dublincore.org">Dublin Core
 24  
  * Metadata Initiative</a>.
 25  
  *         </p>
 26  
  *       
 27  
  * 
 28  
  * @version $Revision$ $Date$
 29  
  */
 30  
 @SuppressWarnings( "all" )
 31  4
 public class DocumentMeta
 32  
     implements java.io.Serializable
 33  
 {
 34  
 
 35  
       //--------------------------/
 36  
      //- Class/Member Variables -/
 37  
     //--------------------------/
 38  
 
 39  
     /**
 40  
      * 
 41  
      *             The title of the document.
 42  
      *           
 43  
      */
 44  
     private String title;
 45  
 
 46  
     /**
 47  
      * 
 48  
      *             The unique author of the document, usually as a
 49  
      * String of "firstName lastName". For
 50  
      *             more authors, you could use the &lt;authors/&gt;
 51  
      * tag.
 52  
      *           
 53  
      */
 54  
     private String author;
 55  
 
 56  
     /**
 57  
      * Field authors.
 58  
      */
 59  
     private java.util.List<DocumentAuthor> authors;
 60  
 
 61  
     /**
 62  
      * 
 63  
      *             The subject of the document.
 64  
      *           
 65  
      */
 66  
     private String subject;
 67  
 
 68  
     /**
 69  
      * 
 70  
      *             The keywords for the document, usually as a
 71  
      * String of comma separated keywords.
 72  
      *             @deprecated use the &lt;keyWords/&gt; tag
 73  
      * instead of.
 74  
      *           
 75  
      */
 76  
     private String keywords;
 77  
 
 78  
     /**
 79  
      * Field keyWords.
 80  
      */
 81  
     private java.util.List<String> keyWords;
 82  
 
 83  
     /**
 84  
      * 
 85  
      *             The pagesize of the document.
 86  
      *             At least "US", "USLetter" and "A4" should be
 87  
      * supported.
 88  
      *           
 89  
      */
 90  
     private String pageSize;
 91  
 
 92  
     /**
 93  
      * 
 94  
      *              A string that identifies the application or
 95  
      * tool that was
 96  
      *              used to create or last modify the document.
 97  
      *           
 98  
      */
 99  
     private String generator;
 100  
 
 101  
     /**
 102  
      * 
 103  
      *              A brief description of the document.
 104  
      *           
 105  
      */
 106  
     private String description;
 107  
 
 108  
     /**
 109  
      * 
 110  
      *             The name of the person who created the document
 111  
      * initially.
 112  
      *           
 113  
      */
 114  
     private String initialCreator;
 115  
 
 116  
     /**
 117  
      * 
 118  
      *             The name of the person who last modified the
 119  
      * document.
 120  
      *           
 121  
      */
 122  
     private String creator;
 123  
 
 124  
     /**
 125  
      * 
 126  
      *             The name of the person who last printed the
 127  
      * document.
 128  
      *           
 129  
      */
 130  
     private String printedBy;
 131  
 
 132  
     /**
 133  
      * 
 134  
      *             The date and time when the document was created
 135  
      * initially.
 136  
      *             Use the ISO 8601 format
 137  
      * "yyyy-MM-dd'T'HH:mm:ss.SSS" in xml.
 138  
      *           
 139  
      */
 140  
     private java.util.Date creationDate;
 141  
 
 142  
     /**
 143  
      * 
 144  
      *             The date as String (recommended format is ISO
 145  
      * 8601) when the document was created initially.
 146  
      *             Only used if <code>creationDate</code> is not
 147  
      * set.
 148  
      *             @since 1.1.1
 149  
      *           .
 150  
      */
 151  
     private String creationdate;
 152  
 
 153  
     /**
 154  
      * 
 155  
      *             The date and time when the document was last
 156  
      * modified.
 157  
      *             Use the ISO 8601 format
 158  
      * "yyyy-MM-dd'T'HH:mm:ss.SSS" in xml.
 159  
      *           
 160  
      */
 161  
     private java.util.Date date;
 162  
 
 163  
     /**
 164  
      * 
 165  
      *             The date as String (recommended format is ISO
 166  
      * 8601) when the document was last modified.
 167  
      *             Only used if <code>date</code> is not set.
 168  
      *             @since 1.1.1
 169  
      *           .
 170  
      */
 171  
     private String modifydate;
 172  
 
 173  
     /**
 174  
      * 
 175  
      *             The date and time when the document was last
 176  
      * printed.
 177  
      *             Use the ISO 8601 format
 178  
      * "yyyy-MM-dd'T'HH:mm:ss.SSS" in xml.
 179  
      *           
 180  
      */
 181  
     private java.util.Date printDate;
 182  
 
 183  
     /**
 184  
      * 
 185  
      *             The date as String (recommended format is ISO
 186  
      * 8601) when the document was last printed.
 187  
      *             Only used if <code>printDate</code> is not set.
 188  
      *             @since 1.1.1
 189  
      *           .
 190  
      */
 191  
     private String printdate;
 192  
 
 193  
     /**
 194  
      * 
 195  
      *             A template that was used to create the document.
 196  
      *           
 197  
      */
 198  
     private DocumentTemplate template;
 199  
 
 200  
     /**
 201  
      * 
 202  
      *             The hyperlink-behaviour element specifies the
 203  
      * default behavior
 204  
      *             for hyperlinks in the document.
 205  
      *           
 206  
      */
 207  
     private DocumentHyperlinkBehaviour hyperlinkBehaviour;
 208  
 
 209  
     /**
 210  
      * 
 211  
      *             The default language of the document. The
 212  
      * language is represented by
 213  
      *             a two or three letter Language Code taken from
 214  
      * the ISO 639 standard,
 215  
      *             optionally followed by a hyphen (-) and a
 216  
      * two-letter Country Code
 217  
      *             taken from the ISO 3166 standard.
 218  
      *           
 219  
      */
 220  4
     private String language = "en-US";
 221  
 
 222  
     /**
 223  
      * 
 224  
      *             The number of editing cycles the document has
 225  
      * been through.
 226  
      *           
 227  
      */
 228  4
     private long editingCycles = 0L;
 229  
 
 230  
     /**
 231  
      * 
 232  
      *             The total time spent editing the document.
 233  
      *           
 234  
      */
 235  4
     private long editingDuration = 0L;
 236  
 
 237  
     /**
 238  
      * 
 239  
      *             The statistics of the document, for example, the
 240  
      * page count,
 241  
      *             word count, etc.
 242  
      *           
 243  
      */
 244  
     private DocumentStatistic documentStatistic;
 245  
 
 246  
     /**
 247  
      * 
 248  
      *             whether the content of the document is in some
 249  
      * sense confidential.
 250  
      *           
 251  
      */
 252  4
     private boolean confidential = false;
 253  
 
 254  
     /**
 255  
      * 
 256  
      *             whether the content of the document is in some
 257  
      * sense preliminary.
 258  
      *           
 259  
      */
 260  4
     private boolean draft = false;
 261  
 
 262  
 
 263  
       //-----------/
 264  
      //- Methods -/
 265  
     //-----------/
 266  
 
 267  
     /**
 268  
      * Method addAuthor.
 269  
      * 
 270  
      * @param documentAuthor
 271  
      */
 272  
     public void addAuthor( DocumentAuthor documentAuthor )
 273  
     {
 274  2
         getAuthors().add( documentAuthor );
 275  2
     } //-- void addAuthor( DocumentAuthor )
 276  
 
 277  
     /**
 278  
      * Method addKeyWord.
 279  
      * 
 280  
      * @param string
 281  
      */
 282  
     public void addKeyWord( String string )
 283  
     {
 284  4
         getKeyWords().add( string );
 285  4
     } //-- void addKeyWord( String )
 286  
 
 287  
     /**
 288  
      * Method equals.
 289  
      * 
 290  
      * @param other
 291  
      * @return boolean
 292  
      */
 293  
     public boolean equals( Object other )
 294  
     {
 295  2
         if ( this == other )
 296  
         {
 297  0
             return true;
 298  
         }
 299  
 
 300  2
         if ( !( other instanceof DocumentMeta ) )
 301  
         {
 302  0
             return false;
 303  
         }
 304  
 
 305  2
         DocumentMeta that = (DocumentMeta) other;
 306  2
         boolean result = true;
 307  
 
 308  2
         result = result && ( getTitle() == null ? that.getTitle() == null : getTitle().equals( that.getTitle() ) );
 309  2
         result = result && ( getAuthor() == null ? that.getAuthor() == null : getAuthor().equals( that.getAuthor() ) );
 310  2
         result = result && ( getAuthors() == null ? that.getAuthors() == null : getAuthors().equals( that.getAuthors() ) );
 311  2
         result = result && ( getSubject() == null ? that.getSubject() == null : getSubject().equals( that.getSubject() ) );
 312  2
         result = result && ( getKeywords() == null ? that.getKeywords() == null : getKeywords().equals( that.getKeywords() ) );
 313  2
         result = result && ( getKeyWords() == null ? that.getKeyWords() == null : getKeyWords().equals( that.getKeyWords() ) );
 314  2
         result = result && ( getPageSize() == null ? that.getPageSize() == null : getPageSize().equals( that.getPageSize() ) );
 315  2
         result = result && ( getGenerator() == null ? that.getGenerator() == null : getGenerator().equals( that.getGenerator() ) );
 316  2
         result = result && ( getDescription() == null ? that.getDescription() == null : getDescription().equals( that.getDescription() ) );
 317  2
         result = result && ( getInitialCreator() == null ? that.getInitialCreator() == null : getInitialCreator().equals( that.getInitialCreator() ) );
 318  2
         result = result && ( getCreator() == null ? that.getCreator() == null : getCreator().equals( that.getCreator() ) );
 319  2
         result = result && ( getPrintedBy() == null ? that.getPrintedBy() == null : getPrintedBy().equals( that.getPrintedBy() ) );
 320  2
         result = result && ( getCreationDate() == null ? that.getCreationDate() == null : getCreationDate().equals( that.getCreationDate() ) );
 321  2
         result = result && ( getCreationdate() == null ? that.getCreationdate() == null : getCreationdate().equals( that.getCreationdate() ) );
 322  2
         result = result && ( getDate() == null ? that.getDate() == null : getDate().equals( that.getDate() ) );
 323  2
         result = result && ( getModifydate() == null ? that.getModifydate() == null : getModifydate().equals( that.getModifydate() ) );
 324  2
         result = result && ( getPrintDate() == null ? that.getPrintDate() == null : getPrintDate().equals( that.getPrintDate() ) );
 325  2
         result = result && ( getPrintdate() == null ? that.getPrintdate() == null : getPrintdate().equals( that.getPrintdate() ) );
 326  2
         result = result && ( getTemplate() == null ? that.getTemplate() == null : getTemplate().equals( that.getTemplate() ) );
 327  2
         result = result && ( getHyperlinkBehaviour() == null ? that.getHyperlinkBehaviour() == null : getHyperlinkBehaviour().equals( that.getHyperlinkBehaviour() ) );
 328  2
         result = result && ( getLanguage() == null ? that.getLanguage() == null : getLanguage().equals( that.getLanguage() ) );
 329  2
         result = result && editingCycles == that.editingCycles;
 330  2
         result = result && editingDuration == that.editingDuration;
 331  2
         result = result && ( getDocumentStatistic() == null ? that.getDocumentStatistic() == null : getDocumentStatistic().equals( that.getDocumentStatistic() ) );
 332  2
         result = result && confidential == that.confidential;
 333  2
         result = result && draft == that.draft;
 334  
 
 335  2
         return result;
 336  
     } //-- boolean equals( Object )
 337  
 
 338  
     /**
 339  
      * Get the unique author of the document, usually as a String
 340  
      * of "firstName lastName". For
 341  
      *             more authors, you could use the &lt;authors/&gt;
 342  
      * tag.
 343  
      * 
 344  
      * @return String
 345  
      */
 346  
     public String getAuthor()
 347  
     {
 348  18
         return this.author;
 349  
     } //-- String getAuthor()
 350  
 
 351  
     /**
 352  
      * Method getAuthors.
 353  
      * 
 354  
      * @return List
 355  
      */
 356  
     public java.util.List<DocumentAuthor> getAuthors()
 357  
     {
 358  22
         if ( this.authors == null )
 359  
         {
 360  2
             this.authors = new java.util.ArrayList<DocumentAuthor>();
 361  
         }
 362  
 
 363  22
         return this.authors;
 364  
     } //-- java.util.List<DocumentAuthor> getAuthors()
 365  
 
 366  
     /**
 367  
      * Get the date and time when the document was created
 368  
      * initially.
 369  
      *             Use the ISO 8601 format
 370  
      * "yyyy-MM-dd'T'HH:mm:ss.SSS" in xml.
 371  
      * 
 372  
      * @return Date
 373  
      */
 374  
     public java.util.Date getCreationDate()
 375  
     {
 376  46
         return this.creationDate;
 377  
     } //-- java.util.Date getCreationDate()
 378  
 
 379  
     /**
 380  
      * Get the name of the person who last modified the document.
 381  
      * 
 382  
      * @return String
 383  
      */
 384  
     public String getCreator()
 385  
     {
 386  18
         return this.creator;
 387  
     } //-- String getCreator()
 388  
 
 389  
     /**
 390  
      * Get the date and time when the document was last modified.
 391  
      *             Use the ISO 8601 format
 392  
      * "yyyy-MM-dd'T'HH:mm:ss.SSS" in xml.
 393  
      * 
 394  
      * @return Date
 395  
      */
 396  
     public java.util.Date getDate()
 397  
     {
 398  46
         return this.date;
 399  
     } //-- java.util.Date getDate()
 400  
 
 401  
     /**
 402  
      * Get a brief description of the document.
 403  
      * 
 404  
      * @return String
 405  
      */
 406  
     public String getDescription()
 407  
     {
 408  18
         return this.description;
 409  
     } //-- String getDescription()
 410  
 
 411  
     /**
 412  
      * Get the statistics of the document, for example, the page
 413  
      * count,
 414  
      *             word count, etc.
 415  
      * 
 416  
      * @return DocumentStatistic
 417  
      */
 418  
     public DocumentStatistic getDocumentStatistic()
 419  
     {
 420  18
         return this.documentStatistic;
 421  
     } //-- DocumentStatistic getDocumentStatistic()
 422  
 
 423  
     /**
 424  
      * Get the number of editing cycles the document has been
 425  
      * through.
 426  
      * 
 427  
      * @return long
 428  
      */
 429  
     public long getEditingCycles()
 430  
     {
 431  12
         return this.editingCycles;
 432  
     } //-- long getEditingCycles()
 433  
 
 434  
     /**
 435  
      * Get the total time spent editing the document.
 436  
      * 
 437  
      * @return long
 438  
      */
 439  
     public long getEditingDuration()
 440  
     {
 441  12
         return this.editingDuration;
 442  
     } //-- long getEditingDuration()
 443  
 
 444  
     /**
 445  
      * Get a string that identifies the application or tool that
 446  
      * was
 447  
      *              used to create or last modify the document.
 448  
      * 
 449  
      * @return String
 450  
      */
 451  
     public String getGenerator()
 452  
     {
 453  18
         return this.generator;
 454  
     } //-- String getGenerator()
 455  
 
 456  
     /**
 457  
      * Get the hyperlink-behaviour element specifies the default
 458  
      * behavior
 459  
      *             for hyperlinks in the document.
 460  
      * 
 461  
      * @return DocumentHyperlinkBehaviour
 462  
      */
 463  
     public DocumentHyperlinkBehaviour getHyperlinkBehaviour()
 464  
     {
 465  18
         return this.hyperlinkBehaviour;
 466  
     } //-- DocumentHyperlinkBehaviour getHyperlinkBehaviour()
 467  
 
 468  
     /**
 469  
      * Get the name of the person who created the document
 470  
      * initially.
 471  
      * 
 472  
      * @return String
 473  
      */
 474  
     public String getInitialCreator()
 475  
     {
 476  18
         return this.initialCreator;
 477  
     } //-- String getInitialCreator()
 478  
 
 479  
     /**
 480  
      * Method getKeyWords.
 481  
      * 
 482  
      * @return List
 483  
      */
 484  
     public java.util.List<String> getKeyWords()
 485  
     {
 486  28
         if ( this.keyWords == null )
 487  
         {
 488  2
             this.keyWords = new java.util.ArrayList<String>();
 489  
         }
 490  
 
 491  28
         return this.keyWords;
 492  
     } //-- java.util.List<String> getKeyWords()
 493  
 
 494  
     /**
 495  
      * Get the keywords for the document, usually as a String of
 496  
      * comma separated keywords.
 497  
      *             @deprecated use the &lt;keyWords/&gt; tag
 498  
      * instead of.
 499  
      * 
 500  
      * @return String
 501  
      */
 502  
     public String getKeywords()
 503  
     {
 504  14
         return this.keywords;
 505  
     } //-- String getKeywords()
 506  
 
 507  
     /**
 508  
      * Get the default language of the document. The language is
 509  
      * represented by
 510  
      *             a two or three letter Language Code taken from
 511  
      * the ISO 639 standard,
 512  
      *             optionally followed by a hyphen (-) and a
 513  
      * two-letter Country Code
 514  
      *             taken from the ISO 3166 standard.
 515  
      * 
 516  
      * @return String
 517  
      */
 518  
     public String getLanguage()
 519  
     {
 520  20
         return this.language;
 521  
     } //-- String getLanguage()
 522  
 
 523  
     /**
 524  
      * Get the pagesize of the document.
 525  
      *             At least "US", "USLetter" and "A4" should be
 526  
      * supported.
 527  
      * 
 528  
      * @return String
 529  
      */
 530  
     public String getPageSize()
 531  
     {
 532  18
         return this.pageSize;
 533  
     } //-- String getPageSize()
 534  
 
 535  
     /**
 536  
      * Get the date and time when the document was last printed.
 537  
      *             Use the ISO 8601 format
 538  
      * "yyyy-MM-dd'T'HH:mm:ss.SSS" in xml.
 539  
      * 
 540  
      * @return Date
 541  
      */
 542  
     public java.util.Date getPrintDate()
 543  
     {
 544  46
         return this.printDate;
 545  
     } //-- java.util.Date getPrintDate()
 546  
 
 547  
     /**
 548  
      * Get the name of the person who last printed the document.
 549  
      * 
 550  
      * @return String
 551  
      */
 552  
     public String getPrintedBy()
 553  
     {
 554  18
         return this.printedBy;
 555  
     } //-- String getPrintedBy()
 556  
 
 557  
     /**
 558  
      * Get the subject of the document.
 559  
      * 
 560  
      * @return String
 561  
      */
 562  
     public String getSubject()
 563  
     {
 564  18
         return this.subject;
 565  
     } //-- String getSubject()
 566  
 
 567  
     /**
 568  
      * Get a template that was used to create the document.
 569  
      * 
 570  
      * @return DocumentTemplate
 571  
      */
 572  
     public DocumentTemplate getTemplate()
 573  
     {
 574  18
         return this.template;
 575  
     } //-- DocumentTemplate getTemplate()
 576  
 
 577  
     /**
 578  
      * Get the title of the document.
 579  
      * 
 580  
      * @return String
 581  
      */
 582  
     public String getTitle()
 583  
     {
 584  18
         return this.title;
 585  
     } //-- String getTitle()
 586  
 
 587  
     /**
 588  
      * Method hashCode.
 589  
      * 
 590  
      * @return int
 591  
      */
 592  
     public int hashCode()
 593  
     {
 594  4
         int result = 17;
 595  
 
 596  4
         result = 37 * result + ( title != null ? title.hashCode() : 0 );
 597  4
         result = 37 * result + ( author != null ? author.hashCode() : 0 );
 598  4
         result = 37 * result + ( authors != null ? authors.hashCode() : 0 );
 599  4
         result = 37 * result + ( subject != null ? subject.hashCode() : 0 );
 600  4
         result = 37 * result + ( keywords != null ? keywords.hashCode() : 0 );
 601  4
         result = 37 * result + ( keyWords != null ? keyWords.hashCode() : 0 );
 602  4
         result = 37 * result + ( pageSize != null ? pageSize.hashCode() : 0 );
 603  4
         result = 37 * result + ( generator != null ? generator.hashCode() : 0 );
 604  4
         result = 37 * result + ( description != null ? description.hashCode() : 0 );
 605  4
         result = 37 * result + ( initialCreator != null ? initialCreator.hashCode() : 0 );
 606  4
         result = 37 * result + ( creator != null ? creator.hashCode() : 0 );
 607  4
         result = 37 * result + ( printedBy != null ? printedBy.hashCode() : 0 );
 608  4
         result = 37 * result + ( creationDate != null ? creationDate.hashCode() : 0 );
 609  4
         result = 37 * result + ( creationdate != null ? creationdate.hashCode() : 0 );
 610  4
         result = 37 * result + ( date != null ? date.hashCode() : 0 );
 611  4
         result = 37 * result + ( modifydate != null ? modifydate.hashCode() : 0 );
 612  4
         result = 37 * result + ( printDate != null ? printDate.hashCode() : 0 );
 613  4
         result = 37 * result + ( printdate != null ? printdate.hashCode() : 0 );
 614  4
         result = 37 * result + ( template != null ? template.hashCode() : 0 );
 615  4
         result = 37 * result + ( hyperlinkBehaviour != null ? hyperlinkBehaviour.hashCode() : 0 );
 616  4
         result = 37 * result + ( language != null ? language.hashCode() : 0 );
 617  4
         result = 37 * result + (int) ( editingCycles ^ ( editingCycles >>> 32 ) );
 618  4
         result = 37 * result + (int) ( editingDuration ^ ( editingDuration >>> 32 ) );
 619  4
         result = 37 * result + ( documentStatistic != null ? documentStatistic.hashCode() : 0 );
 620  4
         result = 37 * result + ( confidential ? 0 : 1 );
 621  4
         result = 37 * result + ( draft ? 0 : 1 );
 622  
 
 623  4
         return result;
 624  
     } //-- int hashCode()
 625  
 
 626  
     /**
 627  
      * Get whether the content of the document is in some sense
 628  
      * confidential.
 629  
      * 
 630  
      * @return boolean
 631  
      */
 632  
     public boolean isConfidential()
 633  
     {
 634  12
         return this.confidential;
 635  
     } //-- boolean isConfidential()
 636  
 
 637  
     /**
 638  
      * Get whether the content of the document is in some sense
 639  
      * preliminary.
 640  
      * 
 641  
      * @return boolean
 642  
      */
 643  
     public boolean isDraft()
 644  
     {
 645  12
         return this.draft;
 646  
     } //-- boolean isDraft()
 647  
 
 648  
     /**
 649  
      * Method removeAuthor.
 650  
      * 
 651  
      * @param documentAuthor
 652  
      */
 653  
     public void removeAuthor( DocumentAuthor documentAuthor )
 654  
     {
 655  0
         getAuthors().remove( documentAuthor );
 656  0
     } //-- void removeAuthor( DocumentAuthor )
 657  
 
 658  
     /**
 659  
      * Method removeKeyWord.
 660  
      * 
 661  
      * @param string
 662  
      */
 663  
     public void removeKeyWord( String string )
 664  
     {
 665  0
         getKeyWords().remove( string );
 666  0
     } //-- void removeKeyWord( String )
 667  
 
 668  
     /**
 669  
      * Set the unique author of the document, usually as a String
 670  
      * of "firstName lastName". For
 671  
      *             more authors, you could use the &lt;authors/&gt;
 672  
      * tag.
 673  
      * 
 674  
      * @param author
 675  
      */
 676  
     public void setAuthor( String author )
 677  
     {
 678  4
         this.author = author;
 679  4
     } //-- void setAuthor( String )
 680  
 
 681  
     /**
 682  
      * Set the authors of the document. The names of the entities
 683  
      * that
 684  
      *             are primarily responsible for the content of the
 685  
      * document.
 686  
      * 
 687  
      * @param authors
 688  
      */
 689  
     public void setAuthors( java.util.List<DocumentAuthor> authors )
 690  
     {
 691  2
         this.authors = authors;
 692  2
     } //-- void setAuthors( java.util.List )
 693  
 
 694  
     /**
 695  
      * Set whether the content of the document is in some sense
 696  
      * confidential.
 697  
      * 
 698  
      * @param confidential
 699  
      */
 700  
     public void setConfidential( boolean confidential )
 701  
     {
 702  4
         this.confidential = confidential;
 703  4
     } //-- void setConfidential( boolean )
 704  
 
 705  
     /**
 706  
      * Set the date and time when the document was created
 707  
      * initially.
 708  
      *             Use the ISO 8601 format
 709  
      * "yyyy-MM-dd'T'HH:mm:ss.SSS" in xml.
 710  
      * 
 711  
      * @param creationDate
 712  
      */
 713  
     public void setCreationDate( java.util.Date creationDate )
 714  
     {
 715  4
         this.creationDate = creationDate;
 716  4
     } //-- void setCreationDate( java.util.Date )
 717  
 
 718  
     /**
 719  
      * Set the date as String (recommended format is ISO 8601) when
 720  
      * the document was created initially.
 721  
      *             Only used if <code>creationDate</code> is not
 722  
      * set.
 723  
      *             @since 1.1.1.
 724  
      * 
 725  
      * @param creationdate
 726  
      */
 727  
     public void setCreationdate( String creationdate )
 728  
     {
 729  2
         this.creationdate = creationdate;
 730  2
     } //-- void setCreationdate( String )
 731  
 
 732  
     /**
 733  
      * Set the name of the person who last modified the document.
 734  
      * 
 735  
      * @param creator
 736  
      */
 737  
     public void setCreator( String creator )
 738  
     {
 739  4
         this.creator = creator;
 740  4
     } //-- void setCreator( String )
 741  
 
 742  
     /**
 743  
      * Set the date and time when the document was last modified.
 744  
      *             Use the ISO 8601 format
 745  
      * "yyyy-MM-dd'T'HH:mm:ss.SSS" in xml.
 746  
      * 
 747  
      * @param date
 748  
      */
 749  
     public void setDate( java.util.Date date )
 750  
     {
 751  4
         this.date = date;
 752  4
     } //-- void setDate( java.util.Date )
 753  
 
 754  
     /**
 755  
      * Set a brief description of the document.
 756  
      * 
 757  
      * @param description
 758  
      */
 759  
     public void setDescription( String description )
 760  
     {
 761  4
         this.description = description;
 762  4
     } //-- void setDescription( String )
 763  
 
 764  
     /**
 765  
      * Set the statistics of the document, for example, the page
 766  
      * count,
 767  
      *             word count, etc.
 768  
      * 
 769  
      * @param documentStatistic
 770  
      */
 771  
     public void setDocumentStatistic( DocumentStatistic documentStatistic )
 772  
     {
 773  4
         this.documentStatistic = documentStatistic;
 774  4
     } //-- void setDocumentStatistic( DocumentStatistic )
 775  
 
 776  
     /**
 777  
      * Set whether the content of the document is in some sense
 778  
      * preliminary.
 779  
      * 
 780  
      * @param draft
 781  
      */
 782  
     public void setDraft( boolean draft )
 783  
     {
 784  4
         this.draft = draft;
 785  4
     } //-- void setDraft( boolean )
 786  
 
 787  
     /**
 788  
      * Set the number of editing cycles the document has been
 789  
      * through.
 790  
      * 
 791  
      * @param editingCycles
 792  
      */
 793  
     public void setEditingCycles( long editingCycles )
 794  
     {
 795  4
         this.editingCycles = editingCycles;
 796  4
     } //-- void setEditingCycles( long )
 797  
 
 798  
     /**
 799  
      * Set the total time spent editing the document.
 800  
      * 
 801  
      * @param editingDuration
 802  
      */
 803  
     public void setEditingDuration( long editingDuration )
 804  
     {
 805  4
         this.editingDuration = editingDuration;
 806  4
     } //-- void setEditingDuration( long )
 807  
 
 808  
     /**
 809  
      * Set a string that identifies the application or tool that
 810  
      * was
 811  
      *              used to create or last modify the document.
 812  
      * 
 813  
      * @param generator
 814  
      */
 815  
     public void setGenerator( String generator )
 816  
     {
 817  4
         this.generator = generator;
 818  4
     } //-- void setGenerator( String )
 819  
 
 820  
     /**
 821  
      * Set the hyperlink-behaviour element specifies the default
 822  
      * behavior
 823  
      *             for hyperlinks in the document.
 824  
      * 
 825  
      * @param hyperlinkBehaviour
 826  
      */
 827  
     public void setHyperlinkBehaviour( DocumentHyperlinkBehaviour hyperlinkBehaviour )
 828  
     {
 829  4
         this.hyperlinkBehaviour = hyperlinkBehaviour;
 830  4
     } //-- void setHyperlinkBehaviour( DocumentHyperlinkBehaviour )
 831  
 
 832  
     /**
 833  
      * Set the name of the person who created the document
 834  
      * initially.
 835  
      * 
 836  
      * @param initialCreator
 837  
      */
 838  
     public void setInitialCreator( String initialCreator )
 839  
     {
 840  4
         this.initialCreator = initialCreator;
 841  4
     } //-- void setInitialCreator( String )
 842  
 
 843  
     /**
 844  
      * Set a keyword pertaining to the document. The metadata can
 845  
      * contain any
 846  
      *             number of keyword elements, each element
 847  
      * specifying one keyword.
 848  
      * 
 849  
      * @param keyWords
 850  
      */
 851  
     public void setKeyWords( java.util.List<String> keyWords )
 852  
     {
 853  2
         this.keyWords = keyWords;
 854  2
     } //-- void setKeyWords( java.util.List )
 855  
 
 856  
     /**
 857  
      * Set the keywords for the document, usually as a String of
 858  
      * comma separated keywords.
 859  
      *             @deprecated use the &lt;keyWords/&gt; tag
 860  
      * instead of.
 861  
      * 
 862  
      * @param keywords
 863  
      */
 864  
     public void setKeywords( String keywords )
 865  
     {
 866  0
         this.keywords = keywords;
 867  0
     } //-- void setKeywords( String )
 868  
 
 869  
     /**
 870  
      * Set the default language of the document. The language is
 871  
      * represented by
 872  
      *             a two or three letter Language Code taken from
 873  
      * the ISO 639 standard,
 874  
      *             optionally followed by a hyphen (-) and a
 875  
      * two-letter Country Code
 876  
      *             taken from the ISO 3166 standard.
 877  
      * 
 878  
      * @param language
 879  
      */
 880  
     public void setLanguage( String language )
 881  
     {
 882  4
         this.language = language;
 883  4
     } //-- void setLanguage( String )
 884  
 
 885  
     /**
 886  
      * Set the date as String (recommended format is ISO 8601) when
 887  
      * the document was last modified.
 888  
      *             Only used if <code>date</code> is not set.
 889  
      *             @since 1.1.1.
 890  
      * 
 891  
      * @param modifydate
 892  
      */
 893  
     public void setModifydate( String modifydate )
 894  
     {
 895  2
         this.modifydate = modifydate;
 896  2
     } //-- void setModifydate( String )
 897  
 
 898  
     /**
 899  
      * Set the pagesize of the document.
 900  
      *             At least "US", "USLetter" and "A4" should be
 901  
      * supported.
 902  
      * 
 903  
      * @param pageSize
 904  
      */
 905  
     public void setPageSize( String pageSize )
 906  
     {
 907  4
         this.pageSize = pageSize;
 908  4
     } //-- void setPageSize( String )
 909  
 
 910  
     /**
 911  
      * Set the date and time when the document was last printed.
 912  
      *             Use the ISO 8601 format
 913  
      * "yyyy-MM-dd'T'HH:mm:ss.SSS" in xml.
 914  
      * 
 915  
      * @param printDate
 916  
      */
 917  
     public void setPrintDate( java.util.Date printDate )
 918  
     {
 919  4
         this.printDate = printDate;
 920  4
     } //-- void setPrintDate( java.util.Date )
 921  
 
 922  
     /**
 923  
      * Set the date as String (recommended format is ISO 8601) when
 924  
      * the document was last printed.
 925  
      *             Only used if <code>printDate</code> is not set.
 926  
      *             @since 1.1.1.
 927  
      * 
 928  
      * @param printdate
 929  
      */
 930  
     public void setPrintdate( String printdate )
 931  
     {
 932  2
         this.printdate = printdate;
 933  2
     } //-- void setPrintdate( String )
 934  
 
 935  
     /**
 936  
      * Set the name of the person who last printed the document.
 937  
      * 
 938  
      * @param printedBy
 939  
      */
 940  
     public void setPrintedBy( String printedBy )
 941  
     {
 942  4
         this.printedBy = printedBy;
 943  4
     } //-- void setPrintedBy( String )
 944  
 
 945  
     /**
 946  
      * Set the subject of the document.
 947  
      * 
 948  
      * @param subject
 949  
      */
 950  
     public void setSubject( String subject )
 951  
     {
 952  4
         this.subject = subject;
 953  4
     } //-- void setSubject( String )
 954  
 
 955  
     /**
 956  
      * Set a template that was used to create the document.
 957  
      * 
 958  
      * @param template
 959  
      */
 960  
     public void setTemplate( DocumentTemplate template )
 961  
     {
 962  4
         this.template = template;
 963  4
     } //-- void setTemplate( DocumentTemplate )
 964  
 
 965  
     /**
 966  
      * Set the title of the document.
 967  
      * 
 968  
      * @param title
 969  
      */
 970  
     public void setTitle( String title )
 971  
     {
 972  4
         this.title = title;
 973  4
     } //-- void setTitle( String )
 974  
 
 975  
     /**
 976  
      * Method toString.
 977  
      * 
 978  
      * @return String
 979  
      */
 980  
     public java.lang.String toString()
 981  
     {
 982  4
         StringBuilder buf = new StringBuilder( 128 );
 983  
 
 984  4
         buf.append( "title = '" );
 985  4
         buf.append( getTitle() );
 986  4
         buf.append( "'" );
 987  4
         buf.append( "\n" ); 
 988  4
         buf.append( "author = '" );
 989  4
         buf.append( getAuthor() );
 990  4
         buf.append( "'" );
 991  4
         buf.append( "\n" ); 
 992  4
         buf.append( "authors = '" );
 993  4
         buf.append( getAuthors() );
 994  4
         buf.append( "'" );
 995  4
         buf.append( "\n" ); 
 996  4
         buf.append( "subject = '" );
 997  4
         buf.append( getSubject() );
 998  4
         buf.append( "'" );
 999  4
         buf.append( "\n" ); 
 1000  4
         buf.append( "keywords = '" );
 1001  4
         buf.append( getKeywords() );
 1002  4
         buf.append( "'" );
 1003  4
         buf.append( "\n" ); 
 1004  4
         buf.append( "keyWords = '" );
 1005  4
         buf.append( getKeyWords() );
 1006  4
         buf.append( "'" );
 1007  4
         buf.append( "\n" ); 
 1008  4
         buf.append( "pageSize = '" );
 1009  4
         buf.append( getPageSize() );
 1010  4
         buf.append( "'" );
 1011  4
         buf.append( "\n" ); 
 1012  4
         buf.append( "generator = '" );
 1013  4
         buf.append( getGenerator() );
 1014  4
         buf.append( "'" );
 1015  4
         buf.append( "\n" ); 
 1016  4
         buf.append( "description = '" );
 1017  4
         buf.append( getDescription() );
 1018  4
         buf.append( "'" );
 1019  4
         buf.append( "\n" ); 
 1020  4
         buf.append( "initialCreator = '" );
 1021  4
         buf.append( getInitialCreator() );
 1022  4
         buf.append( "'" );
 1023  4
         buf.append( "\n" ); 
 1024  4
         buf.append( "creator = '" );
 1025  4
         buf.append( getCreator() );
 1026  4
         buf.append( "'" );
 1027  4
         buf.append( "\n" ); 
 1028  4
         buf.append( "printedBy = '" );
 1029  4
         buf.append( getPrintedBy() );
 1030  4
         buf.append( "'" );
 1031  4
         buf.append( "\n" ); 
 1032  4
         buf.append( "creationDate = '" );
 1033  4
         buf.append( getCreationDate() );
 1034  4
         buf.append( "'" );
 1035  4
         buf.append( "\n" ); 
 1036  4
         buf.append( "creationdate = '" );
 1037  4
         buf.append( getCreationdate() );
 1038  4
         buf.append( "'" );
 1039  4
         buf.append( "\n" ); 
 1040  4
         buf.append( "date = '" );
 1041  4
         buf.append( getDate() );
 1042  4
         buf.append( "'" );
 1043  4
         buf.append( "\n" ); 
 1044  4
         buf.append( "modifydate = '" );
 1045  4
         buf.append( getModifydate() );
 1046  4
         buf.append( "'" );
 1047  4
         buf.append( "\n" ); 
 1048  4
         buf.append( "printDate = '" );
 1049  4
         buf.append( getPrintDate() );
 1050  4
         buf.append( "'" );
 1051  4
         buf.append( "\n" ); 
 1052  4
         buf.append( "printdate = '" );
 1053  4
         buf.append( getPrintdate() );
 1054  4
         buf.append( "'" );
 1055  4
         buf.append( "\n" ); 
 1056  4
         buf.append( "template = '" );
 1057  4
         buf.append( getTemplate() );
 1058  4
         buf.append( "'" );
 1059  4
         buf.append( "\n" ); 
 1060  4
         buf.append( "hyperlinkBehaviour = '" );
 1061  4
         buf.append( getHyperlinkBehaviour() );
 1062  4
         buf.append( "'" );
 1063  4
         buf.append( "\n" ); 
 1064  4
         buf.append( "language = '" );
 1065  4
         buf.append( getLanguage() );
 1066  4
         buf.append( "'" );
 1067  4
         buf.append( "\n" ); 
 1068  4
         buf.append( "editingCycles = '" );
 1069  4
         buf.append( getEditingCycles() );
 1070  4
         buf.append( "'" );
 1071  4
         buf.append( "\n" ); 
 1072  4
         buf.append( "editingDuration = '" );
 1073  4
         buf.append( getEditingDuration() );
 1074  4
         buf.append( "'" );
 1075  4
         buf.append( "\n" ); 
 1076  4
         buf.append( "documentStatistic = '" );
 1077  4
         buf.append( getDocumentStatistic() );
 1078  4
         buf.append( "'" );
 1079  4
         buf.append( "\n" ); 
 1080  4
         buf.append( "confidential = '" );
 1081  4
         buf.append( isConfidential() );
 1082  4
         buf.append( "'" );
 1083  4
         buf.append( "\n" ); 
 1084  4
         buf.append( "draft = '" );
 1085  4
         buf.append( isDraft() );
 1086  4
         buf.append( "'" );
 1087  
 
 1088  4
         return buf.toString();
 1089  
     } //-- java.lang.String toString()
 1090  
 
 1091  
     
 1092  
             
 1093  
     /**
 1094  
      * @return a comma separated String of all defined keyWords.
 1095  
      * @see #getKeywords()
 1096  
      * @see #getKeyWords()
 1097  
      * @since 1.1.1
 1098  
      */
 1099  
     public String getAllKeyWords()
 1100  
     {
 1101  4
         StringBuffer sb = new StringBuffer();
 1102  4
         boolean hasKeywords = false;
 1103  4
         if ( getKeywords() != null && getKeywords().trim().length() > 0 )
 1104  
         {
 1105  0
             java.util.StringTokenizer st = new java.util.StringTokenizer( getKeywords().trim(), "," );
 1106  0
             while ( st.hasMoreTokens() )
 1107  
             {
 1108  0
                 String s = st.nextToken();
 1109  
 
 1110  0
                 sb.append( s.trim() );
 1111  
 
 1112  0
                 if ( st.hasMoreTokens() )
 1113  
                 {
 1114  0
                     sb.append( ", " );
 1115  
                 }
 1116  
 
 1117  0
                 hasKeywords = true;
 1118  0
             }
 1119  
         }
 1120  4
         if ( getKeyWords() != null )
 1121  
         {
 1122  4
             for ( java.util.Iterator it = getKeyWords().iterator(); it.hasNext(); )
 1123  
             {
 1124  8
                 String keyword = (String) it.next();
 1125  
 
 1126  8
                 if ( hasKeywords )
 1127  
                 {
 1128  0
                     sb.append( ", " );
 1129  0
                     hasKeywords = false;
 1130  
                 }
 1131  
 
 1132  8
                 if ( keyword.trim().length() > 0 )
 1133  
                 {
 1134  8
                     sb.append( keyword.trim() );
 1135  
 
 1136  8
                     if ( it.hasNext() )
 1137  
                     {
 1138  4
                         sb.append( ", " );
 1139  
                     }
 1140  
                 }
 1141  8
             }
 1142  
         }
 1143  
 
 1144  4
         String ret = sb.toString().trim();
 1145  4
         if ( ret.endsWith( "," ) )
 1146  
         {
 1147  0
             return ret.substring( 0, ret.length() - 1 );
 1148  
         }
 1149  
 
 1150  4
         return ret;
 1151  
     }
 1152  
 
 1153  
     /**
 1154  
      * @return {@link #getAuthor()} if the unique author name is defined. Otherwise, return all authors full names
 1155  
      * comma separated.
 1156  
      * @see #getAuthor()
 1157  
      * @see #getAuthors()
 1158  
      * @since 1.1.1
 1159  
      */
 1160  
     public String getAllAuthorNames()
 1161  
     {
 1162  0
         StringBuffer sb = new StringBuffer();
 1163  0
         if ( getAuthor() != null && getAuthor().trim().length() > 0 )
 1164  
         {
 1165  0
             return getAuthor().trim();
 1166  
         }
 1167  
 
 1168  0
         if ( getAuthors() != null )
 1169  
         {
 1170  0
             for ( java.util.Iterator it = getAuthors().iterator(); it.hasNext(); )
 1171  
             {
 1172  0
                 DocumentAuthor author = (DocumentAuthor) it.next();
 1173  
 
 1174  0
                 sb.append( author.getFullName().trim() );
 1175  
 
 1176  0
                 if ( it.hasNext() )
 1177  
                 {
 1178  0
                     sb.append( ", " );
 1179  
                 }
 1180  0
             }
 1181  
         }
 1182  
 
 1183  0
         return sb.toString();
 1184  
     }
 1185  
 
 1186  
     /** ISO 8601 date format, i.e. <code>yyyy-MM-dd</code> **/
 1187  2
     private static final java.text.DateFormat ISO_8601_FORMAT = new java.text.SimpleDateFormat( "yyyy-MM-dd", java.util.Locale.ENGLISH );
 1188  
 
 1189  
     /**
 1190  
      * Get the date and time when the document was created initially.
 1191  
      *
 1192  
      * @return the <code>getCreationDate()</code> if setted, formatted using ISO-8601 English format, otherwise return
 1193  
      * the <code>creationdate</code>.
 1194  
      * @since 1.1.1
 1195  
      * @see #getCreationDate()
 1196  
      */
 1197  
     public String getCreationdate()
 1198  
     {
 1199  14
         if ( getCreationDate() != null )
 1200  
         {
 1201  14
             return ISO_8601_FORMAT.format( getCreationDate() );
 1202  
         }
 1203  
 
 1204  0
         return this.creationdate;
 1205  
     }
 1206  
 
 1207  
     /**
 1208  
      * Get the date and time when the document was last modified.
 1209  
      *
 1210  
      * @return the <code>getDate()</code> if setted, formatted using ISO-8601 English format, otherwise return
 1211  
      * the <code>modifydate</code>.
 1212  
      * @since 1.1.1
 1213  
      * @see #getDate()
 1214  
      */
 1215  
     public String getModifydate()
 1216  
     {
 1217  14
         if ( getDate() != null )
 1218  
         {
 1219  14
             return ISO_8601_FORMAT.format( getDate() );
 1220  
         }
 1221  
 
 1222  0
         return this.modifydate;
 1223  
     }
 1224  
 
 1225  
     /**
 1226  
      * Get the date and time when the document was last printed.
 1227  
      *
 1228  
      * @return the <code>getPrintDate()</code> if setted, formatted using ISO-8601 English format, otherwise return
 1229  
      * the <code>printdate</code>.
 1230  
      * @since 1.1.1
 1231  
      * @see #getPrintDate()
 1232  
      */
 1233  
     public String getPrintdate()
 1234  
     {
 1235  14
         if ( getPrintDate() != null )
 1236  
         {
 1237  14
             return ISO_8601_FORMAT.format( getPrintDate() );
 1238  
         }
 1239  
 
 1240  0
         return this.printdate;
 1241  
     }
 1242  
             
 1243  
           
 1244  
 }