Regain 2.1.0-STABLE API

net.sf.regain.crawler.document
Class RawDocument

java.lang.Object
  extended by net.sf.regain.crawler.document.RawDocument

public class RawDocument
extends Object

Enthält alle Rohdaten eines Dokuments.

Falls der Inhalt des Dokuments zur besseren Bearbeitung in Form eines Strings gebraucht wird, dann wird dieser zum spätest möglichen Zeitpunkt erstellt.

Author:
Til Schneider, www.murfman.de

Field Summary
private static Profiler FILE_LOADING_PROFILER
          Der Profiler der das Laden vom Dateisystem misst.
private static Profiler HTTP_LOADING_PROFILER
          Der Profiler der das Laden via HTTP misst.
(package private)  AccountPasswordEntry mAccountPasswordEntry
          account-password entry for the url in processing.
private  byte[] mContent
          Der Inhalt des Dokuments.
private  File mContentAsFile
          Die Datei, in der sich der Inhalt des Dokuments befindet.
private  boolean mContentAsFileIsTemporary
          Ist die Datei mContentAsFile tempor�r.
private  String mContentAsString
          Der Inhalt des Dokuments als String.
private static int mHttpTimeoutSecs
          Der Timeout für HTTP-Downloads.
(package private)  Date mLastModifiedDate
          Last modified date.
private  HashMap<String,String> mLinks
          HashMap links containing the URL as key and the linktext as value.
private static org.apache.log4j.Logger mLog
          The logger for this class
private  String mMimeType
          The mimetype of the document.
private  String mSourceLinkText
          Der Text des Links in dem die URL gefunden wurde.
private  String mSourceUrl
          Die URL jenen Dokuments, in dem die URL dieses Dokuments gefunden wurde.
private  String mUrl
          Die URL des Dokuments.
 
Constructor Summary
RawDocument(String url, String sourceUrl, String sourceLinkText, AccountPasswordEntry accountPasswordEntry)
          Erzeugt eine neue RawDocument-Instanz.
 
Method Summary
 void addLink(String url, String linkText)
          Adds a single link to the Hashmap of links
 void dispose()
          Gibt alle genutzten System-Ressourcen, wie temporäre Dateien, wieder frei.
 byte[] getContent()
          Gibt den Inhalt des Dokuments zurück.
 File getContentAsFile()
          Gibt den Datei des Dokuments zurück.
 File getContentAsFile(boolean forceTempFile)
          Gibt den Datei des Dokuments zurück.
 InputStream getContentAsStream()
          Gets the content of the document as stream.
 String getContentAsString()
          Gibt den Inhalt des Dokuments als String zurück.
 Date getLastModified()
          Gibt zurück, wann das Dokument zuletzt geändert wurde.
 int getLength()
          Return the lentgth of the document (in bytes).
 HashMap<String,String> getLinks()
          Gets the links
 String getMimeType()
          Gets the mimetype of this document.
 String getSourceLinkText()
          Gibt den Text des Links zurück in dem die URL gefunden wurde.
 String getSourceUrl()
          Gibt die URL jenen Dokuments zurück, in dem die URL dieses Dokuments gefunden wurde.
 String getUrl()
          Gibt die URL des Dokuments zurück.
 boolean hasLinks()
          Gets the information wether the document contains links
private  byte[] loadContent(String url)
          Load content from URL for http/https documents.
private  byte[] loadIMAPMessage(String url)
          Loads a mime message from an IMAP server.
private  byte[] loadSmbFile(String url)
          Loads the content from a smb file
static void setHttpTimeoutSecs(int httpTimeoutSecs)
          Setzt den Timeout für HTTP-Downloads.
 void setMimeType(String mMimeType)
          Sets the mimetype of this document.
 String toString()
          Gets the String representation of this class.
 void writeToFile(File file)
          Schreibt den Inhalt des Dokuments in eine Datei.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

mLog

private static org.apache.log4j.Logger mLog
The logger for this class


HTTP_LOADING_PROFILER

private static final Profiler HTTP_LOADING_PROFILER
Der Profiler der das Laden via HTTP misst.


FILE_LOADING_PROFILER

private static final Profiler FILE_LOADING_PROFILER
Der Profiler der das Laden vom Dateisystem misst.


mHttpTimeoutSecs

private static int mHttpTimeoutSecs
Der Timeout für HTTP-Downloads. Dieser Wert bestimmt die maximale Zeit in Sekunden, die ein HTTP-Download insgesamt dauern darf.


mUrl

private String mUrl
Die URL des Dokuments.


mSourceUrl

private String mSourceUrl
Die URL jenen Dokuments, in dem die URL dieses Dokuments gefunden wurde.


mSourceLinkText

private String mSourceLinkText
Der Text des Links in dem die URL gefunden wurde. Ist null, falls die URL nicht in einem Link (also einem a-Tag) gefunden wurde oder wenn aus sonstigen Gruenden kein Link-Text vorhanden ist.


mContent

private byte[] mContent
Der Inhalt des Dokuments. Ist null, wenn sich das Dokument in einer Datei befindet und noch nicht angefragt wurde.


mContentAsString

private String mContentAsString
Der Inhalt des Dokuments als String. Ist null, bis er zum ersten mal angefragt wurde.


mContentAsFile

private File mContentAsFile
Die Datei, in der sich der Inhalt des Dokuments befindet. Ist null, wenn das Dokument über HTTP bezogen wird und noch nicht angefragt wurde.


mContentAsFileIsTemporary

private boolean mContentAsFileIsTemporary
Ist die Datei mContentAsFile tempor�r. Wenn true, dann wird die Datei am Ende gel�scht.

See Also:
dispose()

mMimeType

private String mMimeType
The mimetype of the document. This value will be set through file extension mapping or by using the *nix-file command (java version)


mLinks

private HashMap<String,String> mLinks
HashMap links containing the URL as key and the linktext as value.


mAccountPasswordEntry

AccountPasswordEntry mAccountPasswordEntry
account-password entry for the url in processing.


mLastModifiedDate

Date mLastModifiedDate
Last modified date. Will be changed by protocolls which can determine this date correctly.

Constructor Detail

RawDocument

public RawDocument(String url,
                   String sourceUrl,
                   String sourceLinkText,
                   AccountPasswordEntry accountPasswordEntry)
            throws RegainException
Erzeugt eine neue RawDocument-Instanz.

Parameters:
url - Die URL des Dokuments.
sourceUrl - Die URL jenen Dokuments, in dem die URL dieses Dokuments gefunden wurde.
sourceLinkText - Der Text des Links in dem die URL gefunden wurde. Ist null, falls die URL nicht in einem Link (also einem a-Tag) gefunden wurde oder wenn aus sonstigen Gründen kein Link-Text vorhanden ist.
Throws:
RegainException - Wenn das Dokument nicht geladen werden konnte.
Method Detail

setHttpTimeoutSecs

public static void setHttpTimeoutSecs(int httpTimeoutSecs)
Setzt den Timeout für HTTP-Downloads.

Dieser Wert bestimmt die maximale Zeit, die ein HTTP-Download insgesamt dauern darf.

Parameters:
httpTimeoutSecs - Der neue Timeout.

loadIMAPMessage

private byte[] loadIMAPMessage(String url)
                        throws RegainException
Loads a mime message from an IMAP server.

Parameters:
url - the URL of the mime message
Returns:
content of the message
Throws:
RegainException - if loading fails

loadSmbFile

private byte[] loadSmbFile(String url)
                    throws RegainException
Loads the content from a smb file

Parameters:
url - The URL
Returns:
content of the document
Throws:
RegainException - if loading fails

loadContent

private byte[] loadContent(String url)
                    throws RegainException
Load content from URL for http/https documents.

Parameters:
url - The URL.
Returns:
content of document.
Throws:
RegainException - if loading was erroneous

getLength

public int getLength()
Return the lentgth of the document (in bytes).

Returns:
int length of document.

getLastModified

public Date getLastModified()
Gibt zurück, wann das Dokument zuletzt geändert wurde.

Wenn die letzte Änderung nicht ermittelt werden kann (z.B. bei HTTP-Dokumenten), dann wird null zurückgegeben.

Returns:
Wann das Dokument zuletzt geändert wurde.

getUrl

public String getUrl()
Gibt die URL des Dokuments zurück.

Returns:
Die URL des Dokuments.

getSourceUrl

public String getSourceUrl()
Gibt die URL jenen Dokuments zurück, in dem die URL dieses Dokuments gefunden wurde.

Returns:
Die URL jenen Dokuments, in dem die URL dieses Dokuments gefunden wurde.

getSourceLinkText

public String getSourceLinkText()
Gibt den Text des Links zurück in dem die URL gefunden wurde.

Ist null, falls die URL nicht in einem Link (also einem a-Tag) gefunden wurde oder wenn aus sonstigen Gr�nden kein Link-Text vorhanden ist.

Returns:
Der Text des Links zurück in dem die URL gefunden wurde.

getContent

public byte[] getContent()
                  throws RegainException
Gibt den Inhalt des Dokuments zurück.

Returns:
Der Inhalt des Dokuments.
Throws:
RegainException - Wenn das Dokument nicht geladen werden konnte.

getContentAsString

public String getContentAsString()
                          throws RegainException
Gibt den Inhalt des Dokuments als String zurück.

Dieser String wird erst bei der ersten Abfrage erzeugt und dann gecached.

Returns:
Der Inhalt des Dokuments als String.
Throws:
RegainException - Wenn das Dokument nicht geladen werden konnte.

getContentAsStream

public InputStream getContentAsStream()
                               throws RegainException
Gets the content of the document as stream. The stream must be closed by the caller.

Returns:
The content of the document as stream.
Throws:
RegainException - If creating the stream failed.

writeToFile

public void writeToFile(File file)
                 throws RegainException
Schreibt den Inhalt des Dokuments in eine Datei.

Parameters:
file - Die Datei in die geschrieben werden soll.
Throws:
RegainException - Wenn das Schreiben fehl schlug.

getContentAsFile

public File getContentAsFile()
                      throws RegainException
Gibt den Datei des Dokuments zurück. Falls das Dokument nicht als Datei existiert, wird eine tempor�re Datei erzeugt.

Returns:
Die Datei des Dokuments.
Throws:
RegainException - Wenn entweder keine tempor�re Datei erstellt werden konnte oder wenn nicht in die tempor�re Datei geschrieben werden konnte.

getContentAsFile

public File getContentAsFile(boolean forceTempFile)
                      throws RegainException
Gibt den Datei des Dokuments zurück. Falls das Dokument nicht als Datei existiert, wird eine temporäre Datei erzeugt.

Parameters:
forceTempFile - gibt an, ob erzwungen werden soll, dass eine temporäre Datei erzeugt wird. Auf diese Weise kann man sicher sein, dass die Datei von niemandem geöffnet ist.
Returns:
Die Datei des Dokuments.
Throws:
RegainException - Wenn entweder keine temporäre Datei erstellt werden konnte oder wenn nicht in die temporäre Datei geschrieben werden konnte.

dispose

public void dispose()
Gibt alle genutzten System-Ressourcen, wie temporäre Dateien, wieder frei.

Ressourcen der VM, wie z.B. Arrays, werden nicht freigegeben. Das soll der GarbageCollector erledigen.


toString

public String toString()
Gets the String representation of this class.

Overrides:
toString in class Object
Returns:
The String representation of this class.

getMimeType

public String getMimeType()
Gets the mimetype of this document.

Returns:
The mimetype

setMimeType

public void setMimeType(String mMimeType)
Sets the mimetype of this document.


hasLinks

public boolean hasLinks()
Gets the information wether the document contains links

Returns:
true if the document contains at least one link

addLink

public void addLink(String url,
                    String linkText)
Adds a single link to the Hashmap of links


getLinks

public HashMap<String,String> getLinks()
Gets the links

Returns:
Hashmap of links. key is the URL, value the link text

Regain 2.1.0-STABLE API

Regain 2.1.0-STABLE, Copyright (C) 2004-2010 Til Schneider, www.murfman.de, Thomas Tesche, www.clustersystems.info