package com.canoo.webtest.plugins.pdftest.htmlunit; import java.util.HashMap; import java.util.Map; import org.apache.commons.lang.enums.Enum; /** * Represents a permission that may be configured on a PDF document. * @author Etienne Studer * @author Marc Guillemot */ public final class PDFEncryptionPermission extends Enum { private static final Map<String, PDFEncryptionPermission> permissions = new HashMap<String, PDFEncryptionPermission>(); private PDFEncryptionPermission(final String label) { super(label); permissions.put(label.toLowerCase(), this); } public final static PDFEncryptionPermission ASSEMBLY = new PDFEncryptionPermission("assembly"); public final static PDFEncryptionPermission COPY = new PDFEncryptionPermission("copy"); public final static PDFEncryptionPermission DEGRADED_PRINTING = new PDFEncryptionPermission("degradedPrinting"); public final static PDFEncryptionPermission FILL_IN = new PDFEncryptionPermission("fillIn"); public final static PDFEncryptionPermission PRINTING = new PDFEncryptionPermission("printing"); public final static PDFEncryptionPermission MODIFY_ANNOTATIONS = new PDFEncryptionPermission("modifyAnnotations"); public final static PDFEncryptionPermission MODIFY_CONTENTS = new PDFEncryptionPermission("modifyContents"); public final static PDFEncryptionPermission SCREEN_READERS = new PDFEncryptionPermission("screenReaders"); /** * Gets the permission with the given label * @param label (case insensitive) * @return <code>null</code> if not encryption permission is found with this name */ public static PDFEncryptionPermission get(final String label) { if (label == null) throw new NullPointerException(); return (PDFEncryptionPermission) permissions.get(label.toLowerCase()); } }