All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.duracloud.sync.mgmt.SyncSummary Maven / Gradle / Ivy

There is a newer version: 8.1.0
Show newest version
/*
 * The contents of this file are subject to the license and copyright
 * detailed in the LICENSE and NOTICE files at the root of the source
 * tree and available online at
 *
 *     http://duracloud.org/license/
 */
package org.duracloud.sync.mgmt;

import java.io.File;
import java.util.Date;

import org.duracloud.sync.endpoint.SyncResultType;
import org.joda.time.Period;
import org.joda.time.format.PeriodFormatter;
import org.joda.time.format.PeriodFormatterBuilder;

/**
 * A class that describes a completed sync operation.
 *
 * @author Daniel Bernstein
 */
public class SyncSummary {
    public static enum Status {
        SUCCESS, FAILURE
    }

    private String filename;
    private String absolutePath;
    private long length;
    private Date start;
    private Date stop;
    private String message;
    private SyncResultType type;

    public SyncSummary(File file,
                       Date start,
                       Date stop,
                       SyncResultType type,
                       String message) {
        super();
        this.filename = file.getName();
        this.absolutePath = file.getAbsolutePath();
        this.length = file.length();
        this.type = type;
        this.start = start;
        this.stop = stop;
        this.message = message;
    }

    public String getDurationAsString() {
        long duration = this.stop.getTime() - this.start.getTime();
        PeriodFormatter daysHoursMinutes = new PeriodFormatterBuilder()
            .appendDays()
            .appendSuffix(" day", " days")
            .appendSeparator(" ")
            .appendMinutes()
            .appendSuffix(" min", " min")
            .appendSeparator(" ")
            .appendSeconds()
            .appendSuffix(" sec", " secs")
            .toFormatter();

        Period period = new Period(duration);

        return daysHoursMinutes.print(period);
    }

    public Date getStart() {
        return start;
    }

    public Date getStop() {
        return stop;
    }

    public String getMessage() {
        return message;
    }

    public String getFilename() {
        return filename;
    }

    public String getAbsolutePath() {
        return absolutePath;
    }

    public long getLength() {
        return length;
    }

    public SyncResultType getType() {
        return type;
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy