Implemented FileState serialization/deserialization.

This commit is contained in:
didfet
2015-03-18 16:27:01 +01:00
parent 7a7dfcb2c2
commit a2edfd8a2f
5 changed files with 55 additions and 8 deletions

1
.gitignore vendored
View File

@@ -1,3 +1,4 @@
/target/ /target/
/bin/ /bin/
/testFileReader1.txt /testFileReader1.txt
/state2.json

View File

@@ -124,7 +124,7 @@
<dependency> <dependency>
<groupId>com.fasterxml.jackson.core</groupId> <groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId> <artifactId>jackson-databind</artifactId>
<version>2.3.0</version> <version>2.1.5</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>junit</groupId> <groupId>junit</groupId>

View File

@@ -21,21 +21,36 @@ import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.RandomAccessFile; import java.io.RandomAccessFile;
import org.apache.commons.lang.builder.ToStringBuilder;
import com.fasterxml.jackson.annotation.JsonIgnore;
public class FileState { public class FileState {
@JsonIgnore
private File file; private File file;
private String directory; private String directory;
private String fileName;
@JsonIgnore
private long lastModified; private long lastModified;
@JsonIgnore
private long size; private long size;
@JsonIgnore
private boolean deleted = false; private boolean deleted = false;
private long signature; private long signature;
private int signatureLength; private int signatureLength;
@JsonIgnore
private boolean changed = false; private boolean changed = false;
@JsonIgnore
private RandomAccessFile randomAccessFile; private RandomAccessFile randomAccessFile;
private long pointer = 0; private long pointer = 0;
@JsonIgnore
private FileState oldFileState; private FileState oldFileState;
private String fileName; @JsonIgnore
private Event fields; private Event fields;
public FileState() {
}
public FileState(File file) throws IOException { public FileState(File file) throws IOException {
this.file = file; this.file = file;
directory = file.getCanonicalFile().getParent(); directory = file.getCanonicalFile().getParent();
@@ -44,6 +59,10 @@ public class FileState {
lastModified = file.lastModified(); lastModified = file.lastModified();
size = file.length(); size = file.length();
} }
private void setFileFromDirectoryAndName() {
this.file = new File(directory + File.pathSeparator + fileName);
}
public File getFile() { public File getFile() {
return file; return file;
@@ -61,6 +80,24 @@ public class FileState {
return directory; return directory;
} }
public void setDirectory(String directory) {
this.directory = directory;
if(fileName != null && directory != null) {
setFileFromDirectoryAndName();
}
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
if(fileName != null && directory != null) {
setFileFromDirectoryAndName();
}
}
public boolean isDeleted() { public boolean isDeleted() {
return deleted; return deleted;
} }
@@ -113,10 +150,6 @@ public class FileState {
this.oldFileState = oldFileState; this.oldFileState = oldFileState;
} }
public String getFileName() {
return fileName;
}
public Event getFields() { public Event getFields() {
return fields; return fields;
} }
@@ -125,4 +158,15 @@ public class FileState {
this.fields = fields; this.fields = fields;
} }
@Override
public String toString() {
return new ToStringBuilder(this).
append("fileName", fileName).
append("directory", directory).
append("pointer", pointer).
append("signature", signature).
append("signatureLength", signatureLength).
toString();
}
} }

View File

@@ -16,10 +16,8 @@ import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder; import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options; import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException; import org.apache.commons.cli.ParseException;
import org.apache.log4j.Appender;
import org.apache.log4j.BasicConfigurator; import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Level; import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.spi.RootLogger; import org.apache.log4j.spi.RootLogger;
/* /*

View File

@@ -0,0 +1,4 @@
[
{"fileName":"file1","directory":"/directory1","pointer":12345,"signature":654321,"signatureLength":135},
{"fileName":"file2","directory":"/directory2","pointer":23456,"signature":7654,"signatureLength":246}
]