aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api
diff options
context:
space:
mode:
authorAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2014-10-15 14:23:04 +0200
committerAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2014-10-15 14:23:04 +0200
commitcfbd5f9d8af638aa830aa535feadb094109e6455 (patch)
tree5d65bb93b64314f7e3f3455002b4c909242e5bc5 /pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api
parent0e31e524b419cd898139d1b8afa92cb794a3f821 (diff)
downloadpdf-as-4-cfbd5f9d8af638aa830aa535feadb094109e6455.tar.gz
pdf-as-4-cfbd5f9d8af638aa830aa535feadb094109e6455.tar.bz2
pdf-as-4-cfbd5f9d8af638aa830aa535feadb094109e6455.zip
Rebuild API to support Java DataSource and Streams for in and output
Diffstat (limited to 'pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api')
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/ByteArrayDataSink.java48
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/ByteArrayDataSource.java65
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/DataSink.java37
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/DataSource.java45
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAsFactory.java2
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAsParameter.java2
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/SignParameter.java13
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/SignResult.java4
8 files changed, 35 insertions, 181 deletions
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/ByteArrayDataSink.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/ByteArrayDataSink.java
deleted file mode 100644
index b7c14dbf..00000000
--- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/ByteArrayDataSink.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- ******************************************************************************/
-package at.gv.egiz.pdfas.lib.api;
-
-import java.io.ByteArrayOutputStream;
-import java.io.OutputStream;
-
-/**
- * A simple byte array data sink
- */
-public class ByteArrayDataSink implements DataSink {
-
- protected ByteArrayOutputStream bos = new ByteArrayOutputStream();
-
- public OutputStream createOutputStream() {
- bos = new ByteArrayOutputStream();
- return bos;
- }
-
- /**
- * Returns the output data
- * @return the output data
- */
- public byte[] getData() {
- return bos.toByteArray();
- }
-}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/ByteArrayDataSource.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/ByteArrayDataSource.java
index fdf175c7..fa55bcd0 100644
--- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/ByteArrayDataSource.java
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/ByteArrayDataSource.java
@@ -1,45 +1,38 @@
-/*******************************************************************************
- * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- ******************************************************************************/
package at.gv.egiz.pdfas.lib.api;
-/**
- * A simple byte array data source
- */
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import javax.activation.DataSource;
+
public class ByteArrayDataSource implements DataSource {
- private byte[] byteData;
+ private byte[] data;
+
+ public ByteArrayDataSource(byte[] data) {
+ this.data = data;
+ }
+
+ @Override
+ public String getContentType() {
+ return "application/pdf";
+ }
- public ByteArrayDataSource(byte[] data) {
- this.byteData = data;
- }
+ @Override
+ public InputStream getInputStream() throws IOException {
+ return new ByteArrayInputStream(data);
+ }
- public String getMIMEType() {
- return "application/pdf";
- }
+ @Override
+ public String getName() {
+ return null;
+ }
- public byte[] getByteData() {
- return this.byteData;
- }
+ @Override
+ public OutputStream getOutputStream() throws IOException {
+ throw new IOException("Not supported!");
+ }
}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/DataSink.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/DataSink.java
deleted file mode 100644
index 89dfd8c5..00000000
--- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/DataSink.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- ******************************************************************************/
-package at.gv.egiz.pdfas.lib.api;
-
-import java.io.OutputStream;
-
-/**
- * Data Sink interface.
- */
-public interface DataSink {
- /**
- * Creates an output stream to receive the data
- * @return an output stream for the data
- */
- public OutputStream createOutputStream();
-}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/DataSource.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/DataSource.java
deleted file mode 100644
index 9bb2f7fc..00000000
--- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/DataSource.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- ******************************************************************************/
-package at.gv.egiz.pdfas.lib.api;
-
-/**
- * Data Source interface
- *
- * All data sources in PDF-AS implement this interface. Also custom data sources have to
- * implement this interface to allow PDF-AS to use them.
- */
-public interface DataSource {
-
- /**
- * Gets the MIME Type of the contained data.
- * @return MIME Type
- */
- public String getMIMEType();
-
- /**
- * Gets the contained data
- * @return the contained data
- */
- public byte[] getByteData();
-}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAsFactory.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAsFactory.java
index b0b34f5e..6570c419 100644
--- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAsFactory.java
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAsFactory.java
@@ -36,6 +36,8 @@ import java.security.Security;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
+import javax.activation.DataSource;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAsParameter.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAsParameter.java
index bb35f68f..02779ff1 100644
--- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAsParameter.java
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAsParameter.java
@@ -23,6 +23,8 @@
******************************************************************************/
package at.gv.egiz.pdfas.lib.api;
+import javax.activation.DataSource;
+
public interface PdfAsParameter {
/**
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/SignParameter.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/SignParameter.java
index 905b8c2a..c1bfe53f 100644
--- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/SignParameter.java
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/SignParameter.java
@@ -23,7 +23,6 @@
******************************************************************************/
package at.gv.egiz.pdfas.lib.api.sign;
-import at.gv.egiz.pdfas.lib.api.DataSink;
import at.gv.egiz.pdfas.lib.api.PdfAsParameter;
public interface SignParameter extends PdfAsParameter {
@@ -52,18 +51,6 @@ public interface SignParameter extends PdfAsParameter {
* @param signaturePosition The signature position string
*/
public void setSignaturePosition(String signaturePosition);
-
- /**
- * Sets the data sink for the signature process
- * @param output
- */
- public void setOutput(DataSink output);
-
- /**
- * Gets the data sink for the signature process
- * @return
- */
- public DataSink getOutput();
/**
* Sets the signer to use
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/SignResult.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/SignResult.java
index 0af34121..180792ea 100644
--- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/SignResult.java
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/SignResult.java
@@ -23,9 +23,9 @@
******************************************************************************/
package at.gv.egiz.pdfas.lib.api.sign;
+import java.io.InputStream;
import java.security.cert.X509Certificate;
-import at.gv.egiz.pdfas.lib.api.DataSink;
import at.gv.egiz.pdfas.lib.api.SignaturePosition;
public interface SignResult {
@@ -34,7 +34,7 @@ public interface SignResult {
*
* @return Returns the filled output data sink.
*/
- public DataSink getOutputDocument();
+ public InputStream getOutputDocument();
/**
* Returns the certificate of the signer.