package docar.archive.document; import java.net.URL; /** *
* "파일"은 "문서"의 구성요소이다. * * - 문서는 하나 이상의 파일을 포함할 수 있다. * - 각각의 파일은 문서의 다른 버전을 표현한다. * - 파일은 문서의 물리적인 형태를 의미한다. ** * @author "Sunny Kwak" */ public class File { private URL location; private String checksum; private long size; private FileVersion fileVersion; /** * '파일' 생성자. * * @param location 파일의 위치 * @param checksum 파일 식별을 위한 지문(finger print) * @param size 파일 크기. * @param fileVersion 파일 버전. * @throws IllegalArgumentException 필수 항목이 누락된 경우, 예외 처리 */ public File(URL location, String checksum, long size, FileVersion fileVersion) { if(location == null) { throw new IllegalArgumentException("location arguement is missing"); } if(checksum == null || checksum.isEmpty()) { throw new IllegalArgumentException("checksum argument is missing"); } if(size < 1) { throw new IllegalArgumentException("Invalid fie size. Input file = " + location); } if(fileVersion == null) { throw new IllegalArgumentException("fileVersion argument is missing"); } this.location = location; this.checksum = checksum; this.size = size; this.fileVersion = fileVersion; } public URL getLocation() { return location; } public String getChecksum() { return checksum; } public long getSize() { return size; } public FileVersion getFileVersion() { return fileVersion; } }