From d89f36b67ea1d838a78523538a24e044518f3587 Mon Sep 17 00:00:00 2001 From: mcentner Date: Tue, 26 Jan 2010 16:22:56 +0000 Subject: MOCCA 1.2.11 with SHA-2 enabled. git-svn-id: https://joinup.ec.europa.eu/svn/mocca/branches/mocca-1.2.11-sha2@599 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4 --- .../gv/egiz/stal/impl/ByteArrayHashDataInput.java | 107 +++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 mocca-1.2.11/BKUCommonGUI/src/main/java/at/gv/egiz/stal/impl/ByteArrayHashDataInput.java (limited to 'mocca-1.2.11/BKUCommonGUI/src/main/java/at/gv/egiz/stal/impl/ByteArrayHashDataInput.java') diff --git a/mocca-1.2.11/BKUCommonGUI/src/main/java/at/gv/egiz/stal/impl/ByteArrayHashDataInput.java b/mocca-1.2.11/BKUCommonGUI/src/main/java/at/gv/egiz/stal/impl/ByteArrayHashDataInput.java new file mode 100644 index 00000000..b9416845 --- /dev/null +++ b/mocca-1.2.11/BKUCommonGUI/src/main/java/at/gv/egiz/stal/impl/ByteArrayHashDataInput.java @@ -0,0 +1,107 @@ +/* +* Copyright 2008 Federal Chancellery Austria and +* Graz University of Technology +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +package at.gv.egiz.stal.impl; + +import at.gv.egiz.stal.HashDataInput; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * + * @author clemens + */ +public class ByteArrayHashDataInput implements HashDataInput { + + private static final Log log = LogFactory.getLog(ByteArrayHashDataInput.class); + + protected byte[] hashData; + protected String id; + protected String mimeType; + protected String encoding; + protected String filename; + + public ByteArrayHashDataInput(byte[] hashData, String id, String mimeType, String encoding, String filename) { + if (hashData == null) { + throw new NullPointerException("HashDataInput not provided."); + } + this.hashData = hashData; + this.id = id; + this.mimeType = mimeType; + this.encoding = encoding; + this.filename = filename; + } + + /** + * caches the hashdata input's stream + * @param hdi to be cached + */ + public ByteArrayHashDataInput(HashDataInput hdi) { + if (hdi == null) { + throw new NullPointerException("HashDataInput not provided."); + } + InputStream is = hdi.getHashDataInput(); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + try { + byte[] buffer = new byte[1024]; + for (int i = is.read(buffer); i > -1; i = is.read(buffer)) { + baos.write(buffer, 0, i); + } + this.hashData = baos.toByteArray(); + } catch (IOException ex) { + log.error("Failed to cache provided HashDataInput: " + ex.getMessage(), ex); + this.hashData = new byte[0]; + } + this.id = hdi.getReferenceId(); + this.mimeType = hdi.getMimeType(); + this.encoding = hdi.getEncoding(); + } + + @Override + public String getReferenceId() { + return id; + } + + @Override + public String getMimeType() { + return mimeType; + } + + @Override + public InputStream getHashDataInput() { + return new ByteArrayInputStream(hashData); + } + + /** + * may be null + * @return + */ + @Override + public String getEncoding() { + return encoding; + } + + @Override + public String getFilename() { + return filename; + } + + +} -- cgit v1.2.3