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