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
9 * http://www.apache.org/licenses/LICENSE-2.0
\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
17 package org.apache.pdfbox.pdmodel.graphics.optionalcontent;
\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
25 * This class represents an optional content group (OCG).
\r
28 * @version $Revision$
\r
30 public class PDOptionalContentGroup implements COSObjectable
\r
33 private COSDictionary ocg;
\r
36 * Creates a new optional content group (OCG).
\r
37 * @param name the name of the content group
\r
39 public PDOptionalContentGroup(String name)
\r
41 this.ocg = new COSDictionary();
\r
42 this.ocg.setItem(COSName.TYPE, COSName.OCG);
\r
47 * Creates a new instance based on a given {@link COSDictionary}.
\r
48 * @param dict the dictionary
\r
50 public PDOptionalContentGroup(COSDictionary dict)
\r
52 if (!dict.getItem(COSName.TYPE).equals(COSName.OCG))
\r
54 throw new IllegalArgumentException(
\r
55 "Provided dictionary is not of type '" + COSName.OCG + "'");
\r
60 /** {@inheritDoc} */
\r
61 public COSBase getCOSObject()
\r
67 * Returns the name of the optional content group.
\r
70 public String getName()
\r
72 return this.ocg.getString(COSName.NAME);
\r
76 * Sets the name of the optional content group.
\r
77 * @param name the name
\r
79 public void setName(String name)
\r
81 this.ocg.setString(COSName.NAME, name);
\r
84 //TODO Add support for "Intent" and "Usage"
\r
86 /** {@inheritDoc} */
\r
88 public String toString()
\r
90 return super.toString() + " (" + getName() + ")";
\r