diskCacheV111.util.FileCorruptedCacheException.java Source code

Java tutorial

Introduction

Here is the source code for diskCacheV111.util.FileCorruptedCacheException.java

Source

/* dCache - http://www.dcache.org/
 *
 * Copyright (C) 2007-2013 Deutsches Elektronen-Synchrotron
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package diskCacheV111.util;

import com.google.common.base.Optional;

import java.util.Set;

import org.dcache.util.Checksum;

/**
 * Signals that the file size or checksum of a file does not match the expected
 * checksum or file size.
 *
 * Note that expected and actual file size or checksum stored in the exception
 * are not preserved by cells message passing.
 */
public class FileCorruptedCacheException extends CacheException {
    private static final long serialVersionUID = 6022529795888425409L;

    private final Optional<Set<Checksum>> _expectedChecksums;
    private final Optional<Set<Checksum>> _actualChecksums;
    private final Optional<Long> _expectedSize;
    private final Optional<Long> _actualSize;

    public FileCorruptedCacheException(String message) {
        super(FILE_CORRUPTED, message);
        _expectedChecksums = Optional.absent();
        _actualChecksums = Optional.absent();
        _expectedSize = Optional.absent();
        _actualSize = Optional.absent();
    }

    public FileCorruptedCacheException(String message, Throwable cause) {
        super(FILE_CORRUPTED, message, cause);
        _expectedChecksums = Optional.absent();
        _actualChecksums = Optional.absent();
        _expectedSize = Optional.absent();
        _actualSize = Optional.absent();
    }

    public FileCorruptedCacheException(Set<Checksum> expectedChecksums, Set<Checksum> actualChecksums) {
        super(FILE_CORRUPTED,
                "Checksum mismatch (expected=" + expectedChecksums + ", actual=" + actualChecksums + ")");
        _expectedChecksums = Optional.of(expectedChecksums);
        _actualChecksums = Optional.of(actualChecksums);
        _expectedSize = Optional.absent();
        _actualSize = Optional.absent();
    }

    public FileCorruptedCacheException(long expectedSize, long actualSize) {
        super(FILE_CORRUPTED, "File size mismatch (expected=" + expectedSize + ", actual=" + actualSize + ")");
        _expectedChecksums = Optional.absent();
        _actualChecksums = Optional.absent();
        _expectedSize = Optional.of(expectedSize);
        _actualSize = Optional.of(actualSize);
    }

    public Optional<Set<Checksum>> getExpectedChecksums() {
        return _expectedChecksums;
    }

    public Optional<Set<Checksum>> getActualChecksums() {
        return _actualChecksums;
    }

    public Optional<Long> getExpectedSize() {
        return _expectedSize;
    }

    public Optional<Long> getActualSize() {
        return _actualSize;
    }
}