package org.thdl.lex; import org.thdl.users.ThdlUserRepository; import java.util.*; import java.io.*; import org.dlese.dpc.oai.harvester.*; import org.dlese.dpc.datamgr.*; import org.dlese.dpc.index.*; import org.dlese.dpc.oai.harvester.structs.ScheduledHarvest; import org.openarchives.oai.x20.oaiDc.DcDocument; import org.openarchives.oai.x20.oaiDc.OaiDcType; /** * Description of the Class * * @author travis * @created December 15, 2003 */ public class LexSourceRepository { //attributes private static LexSourceRepository instance; private ScheduledHarvestManager harvestManager; private ScheduledHarvest harvest; private String oaiServer; private String oaiMetadataPrefix; private String oaiHome; private String oaiLocalCopy; private int oaiRefreshDelay; /** * Sets the oaiServer attribute of the LexSourceRepository object * * @param oaiServer The new oaiServer value */ public void setOaiServer( String oaiServer ) { this.oaiServer = oaiServer; } /** * Sets the oaiMetadataPrefix attribute of the LexSourceRepository object * * @param oaiMetadataPrefix The new oaiMetadataPrefix value */ public void setOaiMetadataPrefix( String oaiMetadataPrefix ) { this.oaiMetadataPrefix = oaiMetadataPrefix; } /** * Sets the oaiHome attribute of the LexSourceRepository object * * @param oaiHome The new oaiHome value */ public void setOaiHome( String oaiHome ) { this.oaiHome = oaiHome; } /** * Sets the oaiLocalCopy attribute of the LexSourceRepository object * * @param oaiLocalCopy The new oaiLocalCopy value */ public void setOaiLocalCopy( String oaiLocalCopy ) { this.oaiLocalCopy = oaiLocalCopy; } /** * Sets the oaiRefreshDelay attribute of the LexSourceRepository object * * @param oaiRefreshDelay The new oaiRefreshDelay value */ public void setOaiRefreshDelay( int oaiRefreshDelay ) { this.oaiRefreshDelay = oaiRefreshDelay; } /** * Gets the oaiServer attribute of the LexSourceRepository object * * @return The oaiServer value */ public String getOaiServer() { return oaiServer; } /** * Gets the oaiMetadataPrefix attribute of the LexSourceRepository object * * @return The oaiMetadataPrefix value */ public String getOaiMetadataPrefix() { return oaiMetadataPrefix; } /** * Gets the oaiHome attribute of the LexSourceRepository object * * @return The oaiHome value */ public String getOaiHome() { return oaiHome; } /** * Gets the oaiLocalCopy attribute of the LexSourceRepository object * * @return The oaiLocalCopy value */ public String getOaiLocalCopy() { return oaiLocalCopy; } /** * Gets the oaiRefreshDelay attribute of the LexSourceRepository object * * @return The oaiRefreshDelay value */ public int getOaiRefreshDelay() { return oaiRefreshDelay; } /** * Sets the harvest attribute of the LexSourceRepository object * * @param harvest The new harvest value */ public void setHarvest( ScheduledHarvest harvest ) { this.harvest = harvest; } /** * Gets the harvest attribute of the LexSourceRepository object * * @return The harvest value */ public ScheduledHarvest getHarvest() { return harvest; } /** * Sets the harvestManager attribute of the LexSourceRepository object * * @param harvestManager The new harvestManager value */ public void setHarvestManager( ScheduledHarvestManager harvestManager ) { this.harvestManager = harvestManager; } /** * Gets the harvestManager attribute of the LexSourceRepository object * * @return The harvestManager value */ public ScheduledHarvestManager getHarvestManager() { return harvestManager; } //accessors /** * Gets the instance attribute of the LexSourceRepository class * * @return The instance value * @exception Exception Description of the Exception */ public static LexSourceRepository getInstance() throws Exception { if ( null == instance ) { instance = new LexSourceRepository(); } return instance; } /** * Description of the Method * * @exception LexRepositoryException Description of the Exception */ public void refreshSources() throws LexRepositoryException { /* try { getHarvest(). } catch ( Hexception h ) { throw new LexRepositoryException( h ); } catch ( OAIErrorException h ) { throw new LexRepositoryException( h ); } */ } /** * Description of the Method * * @return Description of the Return Value * @exception LexRepositoryException Description of the Exception */ public String[] xmlTesting() throws LexRepositoryException { String[] sa = null; try { File file = new File( "/Users/travis/webapps/lex/dlese-oai/datastore.lib.virginia.edu/tibet/spt/SPT--OAI.php/oai_dc", "oai%3Alib.virginia.edu%3Athdl-267.xml" ); DcDocument dcd = DcDocument.Factory.parse( file ); OaiDcType oaiDc = dcd.getDc(); sa = new String[oaiDc.getTitleArray().length]; for ( int i = 0; i < sa.length; i++ ) { sa[i] = oaiDc.getTitleArray()[i].toString(); } } catch ( Exception e ) { throw new LexRepositoryException( e ); } return sa; } //constructors /** *Constructor for the LexSourceRepository object * * @exception Exception Description of the Exception */ private LexSourceRepository() throws Exception { /* SimpleDataStore dataStore = new SimpleDataStore( "/Users/travis/webapps/lex/dlese-oai/scheduled-harvester", true ); File initialHarvestDir = new File( "/Users/travis/webapps/lex/dlese-oai/datastore.lib.virginia.edu" ); SimpleLuceneIndex harvestLogIndex = new SimpleLuceneIndex( "/Users/travis/webapps/lex/dlese-oai/lucene-index" ); ScheduledHarvestManager manager = new ScheduledHarvestManager( dataStore, initialHarvestDir, harvestLogIndex ); setHarvestManager( manager ); String repositoryName = "SPT"; String setSpec = ""; String baseURL = "http://datastore.lib.virginia.edu/tibet/spt/SPT--OAI.php"; String metadataPrefix = "oai_dc"; int seconds = 1000 * 1; String harvestingInterval = Integer.toString( seconds ); String intervalGranularity = "YYYY -MM-DDThh:mm:ssZ"; String enabledDisabled = "enabled"; ScheduledHarvest harvest = new ScheduledHarvest( repositoryName, setSpec, baseURL, metadataPrefix, harvestingInterval, intervalGranularity, enabledDisabled ); setHarvest( harvest ); getHarvestManager().addScheduledHarvest( getHarvest() ); */ } //main /** * The main program for the LexSourceRepository class * * @param args The command line arguments */ public static void main( String[] args ) { } }