001: package com.etymon.pj.object;
002:
003: import java.io.*;
004: import java.util.*;
005: import com.etymon.pj.*;
006: import com.etymon.pj.exception.*;
007:
008: /**
009: A representation of a PDF resources dictionary.
010: @author Nassib Nassar
011: */
012: public class PjResources extends PjDictionary {
013:
014: /**
015: Creates a new resources dictionary.
016: */
017: public PjResources() {
018: super ();
019: }
020:
021: /**
022: Creates a resources dictionary as a wrapper around a Hashtable.
023: @param h the Hashtable to use for this dictionary.
024: */
025: public PjResources(Hashtable h) {
026: super (h);
027: }
028:
029: public void setProcSet(PjProcSet procSet) {
030: _h.put(PjName.PROCSET, procSet);
031: }
032:
033: public void setProcSet(PjReference procSet) {
034: _h.put(PjName.PROCSET, procSet);
035: }
036:
037: public PjObject getProcSet() throws InvalidPdfObjectException {
038: return hget(PjName.PROCSET);
039: }
040:
041: public void setFont(PjDictionary font) {
042: _h.put(PjName.FONT, font);
043: }
044:
045: public void setFont(PjReference font) {
046: _h.put(PjName.FONT, font);
047: }
048:
049: public PjObject getFont() throws InvalidPdfObjectException {
050: return hget(PjName.FONT);
051: }
052:
053: public void setColorSpace(PjName colorSpace) {
054: _h.put(PjName.COLORSPACE, colorSpace);
055: }
056:
057: public void setColorSpace(PjArray colorSpace) {
058: _h.put(PjName.COLORSPACE, colorSpace);
059: }
060:
061: public void setColorSpace(PjReference colorSpace) {
062: _h.put(PjName.COLORSPACE, colorSpace);
063: }
064:
065: public PjObject getColorSpace() throws InvalidPdfObjectException {
066: return hget(PjName.COLORSPACE);
067: }
068:
069: public void setXObject(PjDictionary xObject) {
070: _h.put(PjName.XOBJECT, xObject);
071: }
072:
073: public void setXObject(PjReference xObject) {
074: _h.put(PjName.XOBJECT, xObject);
075: }
076:
077: public PjObject getXObject() throws InvalidPdfObjectException {
078: return hget(PjName.XOBJECT);
079: }
080:
081: public void setExtGState(PjDictionary extGState) {
082: _h.put(PjName.EXTGSTATE, extGState);
083: }
084:
085: public void setExtGState(PjReference extGState) {
086: _h.put(PjName.EXTGSTATE, extGState);
087: }
088:
089: public PjObject getExtGState() throws InvalidPdfObjectException {
090: return hget(PjName.EXTGSTATE);
091: }
092:
093: public void setPattern(PjStream pattern) {
094: _h.put(PjName.PATTERN, pattern);
095: }
096:
097: public void setPattern(PjReference pattern) {
098: _h.put(PjName.PATTERN, pattern);
099: }
100:
101: public PjObject getPattern() throws InvalidPdfObjectException {
102: return hget(PjName.PATTERN);
103: }
104:
105: public void setProperties(PjDictionary properties) {
106: _h.put(PjName.PROPERTIES, properties);
107: }
108:
109: public void setProperties(PjReference properties) {
110: _h.put(PjName.PROPERTIES, properties);
111: }
112:
113: public PjObject getProperties() throws InvalidPdfObjectException {
114: return hget(PjName.PROPERTIES);
115: }
116:
117: /**
118: Examines a dictionary to see if it is a PDF resources
119: dictionary.
120: @param dictionary the dictionary to examine.
121: @return true if the dictionary could be interpreted as a
122: valid PjResources object.
123: */
124: public static boolean isLike(PjDictionary dictionary) {
125: return (dictionary.getHashtable().get(PjName.PROCSET) != null);
126: }
127:
128: /**
129: Returns a deep copy of this object.
130: @return a deep copy of this object.
131: @exception CloneNotSupportedException if the instance can not be cloned.
132: */
133: public Object clone() throws CloneNotSupportedException {
134: return new PjResources(cloneHt());
135: }
136:
137: }
|