]> _ Git - cubeextranet.git/blob
30b45dc99d652d2a4281787ad14f8cd402ccfbe3
[cubeextranet.git] /
1 /*\r
2  * Licensed to the Apache Software Foundation (ASF) under one or more\r
3  * contributor license agreements.  See the NOTICE file distributed with\r
4  * this work for additional information regarding copyright ownership.\r
5  * The ASF licenses this file to You under the Apache License, Version 2.0\r
6  * (the "License"); you may not use this file except in compliance with\r
7  * the License.  You may obtain a copy of the License at\r
8  *\r
9  *      http://www.apache.org/licenses/LICENSE-2.0\r
10  *\r
11  * Unless required by applicable law or agreed to in writing, software\r
12  * distributed under the License is distributed on an "AS IS" BASIS,\r
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
14  * See the License for the specific language governing permissions and\r
15  * limitations under the License.\r
16  */\r
17 package org.apache.pdfbox.pdmodel.graphics.optionalcontent;\r
18 \r
19 import org.apache.pdfbox.cos.COSBase;\r
20 import org.apache.pdfbox.cos.COSDictionary;\r
21 import org.apache.pdfbox.cos.COSName;\r
22 import org.apache.pdfbox.pdmodel.common.COSObjectable;\r
23 \r
24 /**\r
25  * This class represents an optional content group (OCG).\r
26  *\r
27  * @since PDF 1.5\r
28  * @version $Revision$\r
29  */\r
30 public class PDOptionalContentGroup implements COSObjectable\r
31 {\r
32 \r
33     private COSDictionary ocg;\r
34 \r
35     /**\r
36      * Creates a new optional content group (OCG).\r
37      * @param name the name of the content group\r
38      */\r
39     public PDOptionalContentGroup(String name)\r
40     {\r
41         this.ocg = new COSDictionary();\r
42         this.ocg.setItem(COSName.TYPE, COSName.OCG);\r
43         setName(name);\r
44     }\r
45 \r
46     /**\r
47      * Creates a new instance based on a given {@link COSDictionary}.\r
48      * @param dict the dictionary\r
49      */\r
50     public PDOptionalContentGroup(COSDictionary dict)\r
51     {\r
52         if (!dict.getItem(COSName.TYPE).equals(COSName.OCG))\r
53         {\r
54             throw new IllegalArgumentException(\r
55                     "Provided dictionary is not of type '" + COSName.OCG + "'");\r
56         }\r
57         this.ocg = dict;\r
58     }\r
59 \r
60     /** {@inheritDoc} */\r
61     public COSBase getCOSObject()\r
62     {\r
63         return this.ocg;\r
64     }\r
65 \r
66     /**\r
67      * Returns the name of the optional content group.\r
68      * @return the name\r
69      */\r
70     public String getName()\r
71     {\r
72         return this.ocg.getString(COSName.NAME);\r
73     }\r
74 \r
75     /**\r
76      * Sets the name of the optional content group.\r
77      * @param name the name\r
78      */\r
79     public void setName(String name)\r
80     {\r
81         this.ocg.setString(COSName.NAME, name);\r
82     }\r
83 \r
84     //TODO Add support for "Intent" and "Usage"\r
85 \r
86     /** {@inheritDoc} */\r
87     @Override\r
88     public String toString()\r
89     {\r
90         return super.toString() + " (" + getName() + ")";\r
91     }\r
92 \r
93 }\r