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 
18 /* $Id: PDFAction.java 1863870 2019-07-27 13:23:59Z matthias $ */
19 
20 package org.apache.fop.pdf;
21 
22 /**
23  * class representing an action object.
24  */
25 public abstract class PDFAction extends PDFObject {
26 
27 
28     /**
29      * represent the action to call
30      * this method should be implemented to return the action which gets
31      * called by the Link Object.  This could be a reference to another object
32      * or the specific destination of the link
33      *
34      * @return the action to place next to /A within a Link
35      */
getAction()36     public abstract String getAction();
37 
encodeScript(String text)38     protected String encodeScript(String text) {
39         if (getDocument() != null && getDocumentSafely().isEncryptionActive()) {
40             final byte[] buf = PDFText.encode(text);
41             byte[] enc = getDocument().getEncryption().encrypt(buf, this);
42             return PDFText.toHex(enc, true);
43         } else {
44             return PDFText.escapeText(text, false);
45         }
46     }
47 
48 }
49