org.fcrepo.server.journal.helpers
Class JournalHelper

java.lang.Object
  extended by org.fcrepo.server.journal.helpers.JournalHelper
All Implemented Interfaces:
JournalConstants

public class JournalHelper
extends Object
implements JournalConstants

A collection of utility methods for use in the Journal classes.

Author:
Jim Blake

Field Summary
 
Fields inherited from interface org.fcrepo.server.journal.JournalConstants
ARGUMENT_NAME_ALT_IDS, ARGUMENT_NAME_CHECKSUM, ARGUMENT_NAME_CHECKSUM_TYPE, ARGUMENT_NAME_CONTEXT, ARGUMENT_NAME_CONTROL_GROUP, ARGUMENT_NAME_DATATYPE, ARGUMENT_NAME_DISSEMINATOR_ID, ARGUMENT_NAME_DISSEMINATOR_LABEL, ARGUMENT_NAME_DISSEMINATOR_STATE, ARGUMENT_NAME_DS_CONTENT, ARGUMENT_NAME_DS_ID, ARGUMENT_NAME_DS_LABEL, ARGUMENT_NAME_DS_LOCATION, ARGUMENT_NAME_DS_STATE, ARGUMENT_NAME_ENCODING, ARGUMENT_NAME_END_DATE, ARGUMENT_NAME_FORCE, ARGUMENT_NAME_FORMAT, ARGUMENT_NAME_FORMAT_URI, ARGUMENT_NAME_IN, ARGUMENT_NAME_IS_LITERAL, ARGUMENT_NAME_LABEL, ARGUMENT_NAME_LAST_MODIFIED_DATE, ARGUMENT_NAME_LOCATION, ARGUMENT_NAME_LOG_MESSAGE, ARGUMENT_NAME_MIME_TYPE, ARGUMENT_NAME_NAMESPACE, ARGUMENT_NAME_NEW_PID, ARGUMENT_NAME_NUM_PIDS, ARGUMENT_NAME_OBJECT, ARGUMENT_NAME_OWNERID, ARGUMENT_NAME_PID, ARGUMENT_NAME_RELATIONSHIP, ARGUMENT_NAME_SERIALIZATION, ARGUMENT_NAME_START_DATE, ARGUMENT_NAME_STATE, ARGUMENT_NAME_VERSION_DATE, ARGUMENT_NAME_VERSIONABLE, ARGUMENT_TYPE_BINDING_MAP, ARGUMENT_TYPE_BOOLEAN, ARGUMENT_TYPE_DATE, ARGUMENT_TYPE_INTEGER, ARGUMENT_TYPE_NULL, ARGUMENT_TYPE_STREAM, ARGUMENT_TYPE_STRING, ARGUMENT_TYPE_STRINGARRAY, CONTEXT_MAPNAME_ACTION, CONTEXT_MAPNAME_ENVIRONMENT, CONTEXT_MAPNAME_RECOVERY, CONTEXT_MAPNAME_RESOURCE, CONTEXT_MAPNAME_SUBJECT, DEFAULT_AGE_LIMIT, DEFAULT_FILENAME_PREFIX, DEFAULT_SIZE_LIMIT, DOCUMENT_ENCODING, DOCUMENT_VERSION, FORMAT_JOURNAL_FILENAME_TIMESTAMP, METHOD_ADD_DATASTREAM, METHOD_ADD_DISSEMINATOR, METHOD_ADD_RELATIONSHIP, METHOD_GET_NEXT_PID, METHOD_INGEST, METHOD_MODIFY_DATASTREAM_BY_REFERENCE, METHOD_MODIFY_DATASTREAM_BY_VALUE, METHOD_MODIFY_DISSEMINATOR, METHOD_MODIFY_OBJECT, METHOD_PURGE_DATASTREAM, METHOD_PURGE_DISSEMINATOR, METHOD_PURGE_OBJECT, METHOD_PURGE_RELATIONSHIP, METHOD_PUT_TEMP_STREAM, METHOD_SET_DATASTREAM_STATE, METHOD_SET_DATASTREAM_VERSIONABLE, METHOD_SET_DISSEMINATOR_STATE, PARAMETER_IGNORE_HASH, PARAMETER_JOURNAL_FILE_AGE_LIMIT, PARAMETER_JOURNAL_FILE_SIZE_LIMIT, PARAMETER_JOURNAL_FILENAME_PREFIX, PARAMETER_JOURNAL_MODE, PARAMETER_JOURNAL_READER_CLASSNAME, PARAMETER_JOURNAL_RECOVERY_LOG_CLASSNAME, PARAMETER_JOURNAL_WRITER_CLASSNAME, PARAMETER_RECOVERY_LOG_FILENAME, PARAMETER_RECOVERY_LOG_LEVEL, PASSWORD_CIPHER_TYPE, QNAME_ATTR_BIND_KEY_NAME, QNAME_ATTR_BIND_LABEL, QNAME_ATTR_CLIENT_IP, QNAME_ATTR_DATASTREAM_ID, QNAME_ATTR_DS_BIND_MAP_ID, QNAME_ATTR_DS_BIND_MAP_LABEL, QNAME_ATTR_DS_BIND_MECHANISM_PID, QNAME_ATTR_LOGIN_ID, QNAME_ATTR_METHOD, QNAME_ATTR_NAME, QNAME_ATTR_PASSWORD_TYPE, QNAME_ATTR_REPOSITORY_HASH, QNAME_ATTR_SEQ_NO, QNAME_ATTR_STATE, QNAME_ATTR_TIMESTAMP, QNAME_ATTR_TYPE, QNAME_ATTR_USERID, QNAME_TAG_ARGUMENT, QNAME_TAG_ARRAYELEMENT, QNAME_TAG_CONTEXT, QNAME_TAG_DS_BINDING, QNAME_TAG_DS_BINDING_MAP, QNAME_TAG_JOURNAL, QNAME_TAG_JOURNAL_ENTRY, QNAME_TAG_MULTI_VALUE_MAP, QNAME_TAG_MULTI_VALUE_MAP_KEY, QNAME_TAG_MULTI_VALUE_MAP_VALUE, QNAME_TAG_NOOP, QNAME_TAG_NOW, QNAME_TAG_PASSWORD, SYSTEM_PROPERTY_PREFIX, TIMESTAMP_FORMAT, VALUE_FALSE, VALUE_JOURNAL_MODE_NORMAL, VALUE_JOURNAL_MODE_RECOVER, VALUE_RECOVERY_LOG_LEVEL_HIGH, VALUE_RECOVERY_LOG_LEVEL_LOW, VALUE_RECOVERY_LOG_LEVEL_MEDIUM, VALUE_TRUE
 
Method Summary
static String captureStackTrace(Throwable e)
          Capture the full stack trace of an Exception, and return it in a String.
static File copyToTempFile(InputStream serialization)
          Copy an input stream to a temporary file, so we can hand an input stream to the delegate and have another input stream for the journal.
static Object createInstanceAccordingToParameter(String parameterName, Class<?>[] argClasses, Object[] args, Map<String,String> parameters)
          Look in the system parameters and create an instance of the named class.
static Object createInstanceFromClassname(String className, Class<?>[] argClasses, Object[] args)
          Create an instance of the named class.
static File createTempFile()
          Create a temporary file.
static String createTimestampedFilename(String filenamePrefix, Date date)
          Create the name for a Journal file or a log file, based on the prefix and the current date.
static String formatDate(Date date)
          Format a date for the journal or the logger.
static boolean isTempFile(File file)
          Is this file one that we created as a temp file?
static Date parseDate(String date)
          Parse a date from the journal.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

copyToTempFile

public static File copyToTempFile(InputStream serialization)
                           throws IOException,
                                  FileNotFoundException
Copy an input stream to a temporary file, so we can hand an input stream to the delegate and have another input stream for the journal.

Throws:
IOException
FileNotFoundException

createTempFile

public static File createTempFile()
                           throws IOException
Create a temporary file. The "File" object that we return is really an instance of "JournalTempFile", so we can detect it later in isTempFile().

Throws:
IOException

isTempFile

public static boolean isTempFile(File file)
Is this file one that we created as a temp file?


captureStackTrace

public static String captureStackTrace(Throwable e)
Capture the full stack trace of an Exception, and return it in a String.


createInstanceAccordingToParameter

public static Object createInstanceAccordingToParameter(String parameterName,
                                                        Class<?>[] argClasses,
                                                        Object[] args,
                                                        Map<String,String> parameters)
                                                 throws JournalException
Look in the system parameters and create an instance of the named class.

Parameters:
parameterName - The name of the system parameter that contains the classname
argClasses - What types of arguments are required by the constructor?
args - Arguments to provide to the instance constructor.
parameters - The system parameters
Returns:
the new instance created
Throws:
JournalException

createInstanceFromClassname

public static Object createInstanceFromClassname(String className,
                                                 Class<?>[] argClasses,
                                                 Object[] args)
                                          throws JournalException
Create an instance of the named class.

Parameters:
className - The classname of the desired instance
argClasses - What types of arguments are required by the constructor?
args - Arguments to provide to the instance constructor.
Returns:
the new instance created
Throws:
JournalException

formatDate

public static String formatDate(Date date)
Format a date for the journal or the logger.


parseDate

public static Date parseDate(String date)
                      throws JournalException
Parse a date from the journal.

Throws:
JournalException

createTimestampedFilename

public static String createTimestampedFilename(String filenamePrefix,
                                               Date date)
Create the name for a Journal file or a log file, based on the prefix and the current date.



Copyright © 2011 DuraSpace. All Rights Reserved.