/*
* Copyright 2011 mapsforge.org
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.muxe.advancedtouristmap.sourcefiles;
import java.io.File;
import java.util.Date;
import android.util.Log;
/**
* Abstract class to model a SourceFile
*
* @author Max Dörfler
*/
public abstract class SourceFile {
// TODO: needed?
public enum SourceFileType {
MAP, ROUTING, ADDRESS, POI
}
private String filename;
private String path;
private String md5;
private String description;
private long filesize;
private Date created;
public SourceFile() {
this.description = "";
}
public abstract SourceFileType getType();
public String getFilename() {
return this.filename;
}
public void setFilename(String filename) {
this.filename = filename;
}
public String getPath() {
return this.path;
}
public void setPath(String path) {
this.path = path;
}
public String getMd5() {
return this.md5;
}
public void setMd5(String md5) {
this.md5 = md5;
}
public long getFilesize() {
return this.filesize;
}
public void setFilesize(long filesize) {
this.filesize = filesize;
}
public Date getCreated() {
return this.created;
}
public void setCreated(Date created) {
this.created = created;
}
public void setDescription(String description) {
this.description = description;
}
public String getDescription() {
return this.description;
}
public String getRelativePath() {
return this.path + File.separator + this.filename;
}
public boolean isValid(String basepath, boolean checkMD5) {
// check if all fields are set and not null
if (this.filename == null || this.created == null || this.description == null
|| this.filesize <= 0 || this.md5 == null || this.path == null) {
Log.d("FileManager", "Some field(s) wasn't/weren't set");
return false;
}
// check if file exists
String fullpath = basepath + File.separator + this.getRelativePath();
Log.d("FileManager", "Check if " + fullpath + " is valid");
try {
File file = new File(fullpath);
if (!file.isFile()) {
Log.d("FileManager", "File " + fullpath + " is no file");
return false;
}
} catch (Exception e) {
Log.d("FileManager", "File " + fullpath + " doesn't exist");
return false;
}
if (checkMD5) {
return checkMD5();
}
return true;
}
private boolean checkMD5() {
// TODO: implement
return true;
}
}