001/**
002 * The contents of this file are subject to the license and copyright
003 * detailed in the LICENSE and NOTICE files at the root of the source
004 * tree.
005 *
006 */
007package org.fcrepo.migration.handlers;
008
009import org.fcrepo.migration.DatastreamVersion;
010import org.fcrepo.migration.ObjectInfo;
011import org.fcrepo.migration.ObjectProperties;
012import org.fcrepo.migration.ObjectProperty;
013import org.fcrepo.migration.StreamingFedoraObjectHandler;
014
015/**
016 * A simple StreamingFedoraObjectHandler implementation that simply outputs information
017 * to the console.  This is likely only useful for debugging or testing other
018 * code.
019 * @author mdurbin
020 */
021public class ConsoleLoggingStreamingFedoraObjectHandler implements StreamingFedoraObjectHandler {
022
023    private long start;
024
025    @Override
026    public void beginObject(final ObjectInfo object) {
027        start = System.currentTimeMillis();
028        System.out.println(object.getPid());
029    }
030
031    @Override
032    public void processObjectProperties(final ObjectProperties properties) {
033        System.out.println("  Properties");
034        for (final ObjectProperty p : properties.listProperties()) {
035            System.out.println("    " + p.getName() + " = " + p.getValue());
036        }
037    }
038
039    @Override
040    public void processDatastreamVersion(final DatastreamVersion dsVersion) {
041        System.out.println("  " + dsVersion.getDatastreamInfo().getDatastreamId() + " version "
042                + dsVersion.getVersionId());
043    }
044
045    @Override
046    public void completeObject(final ObjectInfo object) {
047        System.out.println(object.getPid() + " parsed in " + (System.currentTimeMillis() - start) + "ms.");
048    }
049
050    @Override
051    public void abortObject(final ObjectInfo object) {
052        System.out.println(object.getPid() + " failed to parse in " + (System.currentTimeMillis() - start) + "ms.");
053    }
054}