de.osci.osci12.messageparts
Class Attachment

java.lang.Object
  |
  +--de.osci.osci12.messageparts.MessagePart
        |
        +--de.osci.osci12.messageparts.Attachment

public class Attachment
extends MessagePart

Attachment

Die Attachment-Klasse repräsentiert einen Anhang einer OSCI-Nachricht. Attachments werden in Content-Objekten referenziert. Sie haben neben der RefID, die dem referenzierenden Content-Eintrag entspricht, noch einen Namen (z.B. der Dateiname), mit dem der MIME-Boundary-Abschnitt selbst bezeichnet wird. Dieser muß innerhalb der Nachricht eindeutig sein.

Copyright: Copyright (c) 2003

Organisation: bremen online services GmbH & Co. KG

See Also:
Content, ContentContainer

Field Summary
 java.lang.String boundary
          Trenner-String für die MIME-Abschnitte der Nachrichten.
 byte[] digestValue
           
 boolean encrypt
          Setzt den Status ob das Attachment verschlüsselt eingestellt werden soll
 java.io.InputStream ins
          InputStream des Attachments
 long length
          die länge des Attachments in Bytes
 
Constructor Summary
Attachment(java.io.InputStream ins, java.lang.String refId, javax.crypto.SecretKey secretKey, boolean encrypt)
          Erzeugt ein neues Attachment-Objekt aus dem InputStream.
 
Method Summary
 java.lang.String getContentType()
          Diese Methode liefert den Content der Binärdaten im Mime Format
 byte[] getDigestValue()
          Liefert den Digest-Wert.
 byte[] getEncryptedDigestValue()
           
 long getLength()
          Diese Methode liefert die Länge des Attachments in Byte
 java.io.InputStream getStream()
          Liefert den InputStream der Daten zurück, wenn das Attachment einer empfangenen Nachricht entnommen wurde.
 boolean isEncrypted()
           
 void makeTempFile()
          Diese Methode ließt die Daten aus dem InputStream und verschlüsselt sie und ermittelt den Digest des Attachments.
 void setContentType(java.lang.String contentType)
          Diese Methode setzt den Content-Type (Http-Content-Type) der Binärdaten
 void writeXML(java.io.OutputStream out)
          Interne Methode, wird von Anwendungen normalerweise nicht aufgerufen.
 
Methods inherited from class de.osci.osci12.messageparts.MessagePart
addTransformerForSignature, getDigestMethodAlgorithm, getRefID, getTransformerForSignature, setDigestMethodAlgorithm, setRefID, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

length

public long length
die länge des Attachments in Bytes


ins

public java.io.InputStream ins
InputStream des Attachments


encrypt

public boolean encrypt
Setzt den Status ob das Attachment verschlüsselt eingestellt werden soll


digestValue

public byte[] digestValue

boundary

public java.lang.String boundary
Trenner-String für die MIME-Abschnitte der Nachrichten. Wird beim Hinzufügen eines Attachments zu einer OSCI-Nachricht automatisch auf deren Trenner gestetzt und sollte deshalb nicht von Anwendungen geändert werden.

Constructor Detail

Attachment

public Attachment(java.io.InputStream ins,
                  java.lang.String refId,
                  javax.crypto.SecretKey secretKey,
                  boolean encrypt)
Erzeugt ein neues Attachment-Objekt aus dem InputStream. Der geheime Schlüssel wird auf jeden Fall für eine temporäre Verschlüsselung benötigt.

Parameters:
ins - der InputStream, aus dem die Daten gelesen und an die Nachricht angehängt wird.
secretKey -
encrypt -
Method Detail

getLength

public long getLength()
Diese Methode liefert die Länge des Attachments in Byte

Returns:
Länge des Attachments

getStream

public java.io.InputStream getStream()
                              throws java.io.IOException
Liefert den InputStream der Daten zurück, wenn das Attachment einer empfangenen Nachricht entnommen wurde.

Returns:
den InputStream der Anhangsdaten, oder null, wenn die Nachricht nicht empfangen (d.h. mit Hilfe eine Konstruktors erzeugt wurde).
java.io.IOException

getContentType

public java.lang.String getContentType()
Diese Methode liefert den Content der Binärdaten im Mime Format

Returns:
Content-Type der Binärdaten

setContentType

public void setContentType(java.lang.String contentType)
Diese Methode setzt den Content-Type (Http-Content-Type) der Binärdaten

Parameters:
contentType - Content der Binärdaten sollte ein gültiges Mime-Format sein (z.B. 'text/html' oder 'image/gif')

makeTempFile

public void makeTempFile()
                  throws java.io.IOException,
                         java.security.NoSuchAlgorithmException,
                         javax.crypto.NoSuchPaddingException,
                         java.security.InvalidKeyException
Diese Methode ließt die Daten aus dem InputStream und verschlüsselt sie und ermittelt den Digest des Attachments. Das Verschlüsselte Ergebnis wird in einen OSCIDataSource geschriben.

Throws:
java.io.IOException
java.security.NoSuchAlgorithmException
javax.crypto.NoSuchPaddingException
java.security.InvalidKeyException

getDigestValue

public byte[] getDigestValue()
Liefert den Digest-Wert.

Overrides:
getDigestValue in class MessagePart
Returns:
Digest des Attachments

writeXML

public void writeXML(java.io.OutputStream out)
              throws java.io.IOException
Interne Methode, wird von Anwendungen normalerweise nicht aufgerufen. Sie serialisiert das MIME-Boundary des Attachment.

Specified by:
writeXML in class MessagePart
Parameters:
out - Outputstream in den das Ergebnis serialisiert wird
Throws:
java.io.IOException

isEncrypted

public boolean isEncrypted()

getEncryptedDigestValue

public byte[] getEncryptedDigestValue()