1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-05 02:39:23 +02:00

FormatPlugin refactoring: string id for all plugins

This commit is contained in:
Nikolay Pultsin 2012-02-23 17:14:34 +01:00
parent 4e58f8e1fe
commit da41e4aa33
6 changed files with 22 additions and 17 deletions

View file

@ -26,7 +26,16 @@ import org.geometerplus.fbreader.bookmodel.BookModel;
import org.geometerplus.fbreader.library.Book; import org.geometerplus.fbreader.library.Book;
public abstract class FormatPlugin { public abstract class FormatPlugin {
public abstract String supportedFileType(); private final String myFileType;
protected FormatPlugin(String fileType) {
myFileType = fileType;
}
public final String supportedFileType() {
return myFileType;
}
public abstract boolean readMetaInfo(Book book); public abstract boolean readMetaInfo(Book book);
public abstract boolean readLanguageAndEncoding(Book book); public abstract boolean readLanguageAndEncoding(Book book);
public abstract boolean readModel(BookModel model); public abstract boolean readModel(BookModel model);

View file

@ -22,6 +22,10 @@ package org.geometerplus.fbreader.formats;
import org.geometerplus.fbreader.library.Book; import org.geometerplus.fbreader.library.Book;
public abstract class JavaFormatPlugin extends FormatPlugin { public abstract class JavaFormatPlugin extends FormatPlugin {
protected JavaFormatPlugin(String fileType) {
super(fileType);
}
@Override @Override
public boolean readLanguageAndEncoding(Book book) { public boolean readLanguageAndEncoding(Book book) {
return true; return true;

View file

@ -29,18 +29,13 @@ import org.geometerplus.fbreader.library.Book;
public class NativeFormatPlugin extends FormatPlugin { public class NativeFormatPlugin extends FormatPlugin {
private static Object ourCoversLock = new Object(); private static Object ourCoversLock = new Object();
// Stores native C++ pointer value
// No free method because all plugins' instances are freed by // No free method because all plugins' instances are freed by
// PluginCollection::deleteInstance method (C++) // PluginCollection::deleteInstance method (C++)
protected final long myNativePointer;
public NativeFormatPlugin(long ptr) { public NativeFormatPlugin(String fileType) {
myNativePointer = ptr; super(fileType);
} }
@Override
public native String supportedFileType();
@Override @Override
public native boolean readMetaInfo(Book book); public native boolean readMetaInfo(Book book);

View file

@ -26,9 +26,8 @@ import org.geometerplus.zlibrary.core.filesystem.ZLFile;
import org.geometerplus.zlibrary.core.image.ZLImage; import org.geometerplus.zlibrary.core.image.ZLImage;
public class FB2Plugin extends JavaFormatPlugin { public class FB2Plugin extends JavaFormatPlugin {
@Override public FB2Plugin() {
public String supportedFileType() { super("fb2");
return "fb2";
} }
@Override @Override

View file

@ -26,9 +26,8 @@ import org.geometerplus.zlibrary.core.filesystem.*;
import org.geometerplus.zlibrary.core.image.ZLImage; import org.geometerplus.zlibrary.core.image.ZLImage;
public class OEBPlugin extends JavaFormatPlugin { public class OEBPlugin extends JavaFormatPlugin {
@Override public OEBPlugin() {
public String supportedFileType() { super("ePub");
return "ePub";
} }
private ZLFile getOpfFile(ZLFile oebFile) { private ZLFile getOpfFile(ZLFile oebFile) {

View file

@ -33,9 +33,8 @@ import org.geometerplus.fbreader.bookmodel.BookModel;
import org.geometerplus.fbreader.formats.JavaFormatPlugin; import org.geometerplus.fbreader.formats.JavaFormatPlugin;
public class MobipocketPlugin extends JavaFormatPlugin { public class MobipocketPlugin extends JavaFormatPlugin {
@Override public MobipocketPlugin() {
public String supportedFileType() { super("Mobipocket");
return "Mobipocket";
} }
@Override @Override