package com.ctriposs.tsdb.storage;
import java.io.File;
import com.ctriposs.tsdb.InternalKey;
public class FileMeta implements Comparable<FileMeta> {
private final File file;
private final InternalKey smallest;
private final InternalKey largest;
private final long fileNumber;
public FileMeta(long fileNumber,File file, InternalKey smallest, InternalKey largest) {
this.file = file;
this.smallest = smallest;
this.largest = largest;
this.fileNumber = fileNumber;
}
public InternalKey getSmallest() {
return smallest;
}
public InternalKey getLargest() {
return largest;
}
public File getFile(){
return file;
}
public long getFileNumber(){
return fileNumber;
}
public boolean contains(InternalKey key) {
return key.compareTo(smallest) >= 0 && key.compareTo(largest) <= 0;
}
@Override
public String toString(){
final StringBuilder sb = new StringBuilder();
sb.append("FileMeta");
sb.append("{name=").append(file.getName());
sb.append(", fileSize=").append(file.length());
sb.append(", fileNumber=").append(fileNumber);
sb.append(", smallest=").append(smallest);
sb.append(", largest=").append(largest);
sb.append('}');
return sb.toString();
}
@Override
public int compareTo(FileMeta o) {
int diff = (int) (o.fileNumber-fileNumber);
return -diff;
}
}