All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.adobe.pdfservices.operation.internal.dto.request.protectpdf.ProtectPDFInternalAssetRequest Maven / Gradle / Ivy

Go to download

Adobe PDF Services SDK allows you to access RESTful APIs to create, convert, and manipulate PDFs within your applications. Older versions can be found under groupId: com.adobe.documentservices, artifactId: pdftools-sdk

There is a newer version: 4.2.0
Show newest version
/*
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: Adobe permits you to use, modify, and distribute this file in
 * accordance with the terms of the Adobe license agreement accompanying
 * it. If you have received this file from a source other than Adobe,
 * then your use, modification, or distribution of it requires the prior
 * written permission of Adobe.
 */

package com.adobe.pdfservices.operation.internal.dto.request.protectpdf;

import com.adobe.pdfservices.operation.config.notifier.NotifierConfig;
import com.adobe.pdfservices.operation.exception.SDKException;
import com.adobe.pdfservices.operation.internal.dto.request.PlatformApiRequest;
import com.adobe.pdfservices.operation.pdfjobs.params.protectpdf.ContentEncryption;
import com.adobe.pdfservices.operation.pdfjobs.params.protectpdf.PasswordProtectParams;
import com.adobe.pdfservices.operation.pdfjobs.params.protectpdf.Permission;
import com.adobe.pdfservices.operation.pdfjobs.params.protectpdf.ProtectPDFParams;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.ArrayList;
import java.util.List;

@JsonInclude(JsonInclude.Include.NON_NULL)
public class ProtectPDFInternalAssetRequest extends ProtectPDFParamsPayload implements PlatformApiRequest {

    @JsonProperty("assetID")
    private String assetID;

    @JsonProperty("notifiers")
    private List notifierConfigList;

    public ProtectPDFInternalAssetRequest(String assetID, ProtectPDFParams protectPDFParams,
                                          List notifierConfigList) {
        this.assetID = assetID;
        this.notifierConfigList = notifierConfigList;

        PasswordProtection passwordProtection;
        String encryptionAlgorithm;
        String contentToEncrypt = ContentEncryption.ALL_CONTENT.getValue();
        List permissions = null;

        if (protectPDFParams instanceof PasswordProtectParams) {
            PasswordProtectParams passwordProtectParams = (PasswordProtectParams) protectPDFParams;
            passwordProtection = new PasswordProtection(passwordProtectParams.getUserPassword(),
                                                        passwordProtectParams.getOwnerPassword());
            encryptionAlgorithm = passwordProtectParams.getEncryptionAlgorithm().getValue();

            if (passwordProtectParams.getContentEncryption() != null)
                contentToEncrypt = passwordProtectParams.getContentEncryption().getValue();

            // if permissions are not null && permissions set is not empty
            if (passwordProtectParams.getPermissions() != null && !passwordProtectParams.getPermissions().getValues()
                    .isEmpty()) {
                permissions = new ArrayList<>();
                for (Permission permission : passwordProtectParams.getPermissions().getValues()) {
                    permissions.add(permission.getValue());
                }
            }
        } else {
            throw new SDKException("Please provide valid protect pdf params");
        }

        this.contentToEncrypt = contentToEncrypt;
        this.passwordProtection = passwordProtection;
        this.encryptionAlgorithm = encryptionAlgorithm;
        this.permissions = permissions;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy