com.googlecode.fascinator.redbox.plugins.handle
Class HandleTransformer

java.lang.Object
  extended by com.googlecode.fascinator.redbox.plugins.handle.HandleTransformer
All Implemented Interfaces:
com.googlecode.fascinator.api.Plugin, com.googlecode.fascinator.api.transformer.Transformer

public class HandleTransformer
extends Object
implements com.googlecode.fascinator.api.transformer.Transformer

Create and store handles against a particular name authority. Most of the handle code is a direct implementation of the examples provided at: http://www.handle.net/

Download the system and it will be bundled with all source, including samples on handle creation: src.java/net/handle/apps/simple/HDLCreate.java

Configuration

Keep in mind that each data source can provide an overriding values.

Option Description Required Default
id Id of the transformer Yes handle
namingAuthority Your registered Handle naming authority (or prefix). Yes N/A
privateKeyPath The path to a binary private key on disk. This is created as part of your Handle Server installation. Yes N/A
passPhrase Pass phrase to unlock the private key (if it requires such). No N/A
template The template to evaluate in creating Handle suffixes. Supports placeholder values:
  • [[OID]] - The Object ID being transformed
  • [[INC]] - An auto-incrementing number (if configured)
No pid:[[OID]]
urlTemplate Similar to above, but this template decides how to build the URL this Handle will resolve to. If none is provided, the Handle will not resolve. Supports placeholder values:
  • [[OID]] - The Object ID being transformed
  • [[HANDLE]] - The Handle value (this requires a two step creation process).
No N/A
updateUrl Boolean flag used to force an update on URLs in Handles. For performance reasons it is advised that this should only be set to 'true' if the template for resolvable URLs has changed. No false
source The source payload where description data can be found. The special value of '.tfpackage' can be used to find whichever payload contains the Facsinator package (eg. ReDBox Collections). No metadata.json
description Instructs the Transformer on how to build a description String from the source metadata. Has two child nodes:
  • seperator - A basic String to use in between value. Defaults to an empty String ("").
  • paths - A List of JSON paths (each being a List of Strings) into the metadata in order of how they should be used in the description. Has no default values, but if none are provided, or if none of those provided are not found in the source, no Handle will be generated.
No N/A
output The path to store the resulting Handle in the source metadata. Has two child nodes:
  • path - A JSON Path (List of String) where the field will be.
  • field - The final field name to store the Handle in.
No Combination of both values defaults to "metadata" > "dc:identifier"
useIncrements Boolean flag to decide if auto-incrementing numbers are in use. No false
incrementingFile If the above flag is set, this File is used to store/read the current value of the sequence. Yes (if 'useIncrements' is set) N/A
publishedDomain The publicly accessible domain you will use to publish your Handles. Technically you can point this to your local Handle server, but it is strongly advised that the default Handle Network domain should be used. No hdl.handle.net

There is also some related configuration in the Curation Manager that this Transformer looks for under "curation" > "pidProperty". This value decides on the metadata property where the Handle should be stored for the Curation Manager to find it.

Author:
Greg Pendlebury

Constructor Summary
HandleTransformer()
          Constructor
 
Method Summary
 String getId()
          Get Transformer ID
 String getName()
          Get Transformer Name
 com.googlecode.fascinator.api.PluginDescription getPluginDetails()
          Gets a PluginDescription object relating to this plugin.
 void init(File jsonFile)
          Init method from file
 void init(String jsonString)
          Init method from String
 void shutdown()
          Shut down the transformer plugin
 com.googlecode.fascinator.api.storage.DigitalObject transform(com.googlecode.fascinator.api.storage.DigitalObject in, String jsonConfig)
          Transform method
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HandleTransformer

public HandleTransformer()
Constructor

Method Detail

init

public void init(File jsonFile)
          throws com.googlecode.fascinator.api.PluginException
Init method from file

Specified by:
init in interface com.googlecode.fascinator.api.Plugin
Parameters:
jsonFile -
Throws:
IOException
com.googlecode.fascinator.api.PluginException

init

public void init(String jsonString)
          throws com.googlecode.fascinator.api.PluginException
Init method from String

Specified by:
init in interface com.googlecode.fascinator.api.Plugin
Parameters:
jsonString -
Throws:
IOException
com.googlecode.fascinator.api.PluginException

transform

public com.googlecode.fascinator.api.storage.DigitalObject transform(com.googlecode.fascinator.api.storage.DigitalObject in,
                                                                     String jsonConfig)
                                                              throws com.googlecode.fascinator.api.transformer.TransformerException
Transform method

Specified by:
transform in interface com.googlecode.fascinator.api.transformer.Transformer
Parameters:
object - : DigitalObject to be transformed
jsonConfig - : String containing configuration for this item
Returns:
DigitalObject The object after being transformed
Throws:
com.googlecode.fascinator.api.transformer.TransformerException

getId

public String getId()
Get Transformer ID

Specified by:
getId in interface com.googlecode.fascinator.api.Plugin
Returns:
id

getName

public String getName()
Get Transformer Name

Specified by:
getName in interface com.googlecode.fascinator.api.Plugin
Returns:
name

getPluginDetails

public com.googlecode.fascinator.api.PluginDescription getPluginDetails()
Gets a PluginDescription object relating to this plugin.

Specified by:
getPluginDetails in interface com.googlecode.fascinator.api.Plugin
Returns:
a PluginDescription

shutdown

public void shutdown()
              throws com.googlecode.fascinator.api.PluginException
Shut down the transformer plugin

Specified by:
shutdown in interface com.googlecode.fascinator.api.Plugin
Throws:
com.googlecode.fascinator.api.PluginException


Copyright © 2010-2012. All Rights Reserved.