package de.danoeh.antennapod.core.feed;
import android.database.Cursor;
import de.danoeh.antennapod.core.storage.PodDBAdapter;
public abstract class Chapter extends FeedComponent {
/** Defines starting point in milliseconds. */
protected long start;
protected String title;
protected String link;
public Chapter() {
}
public Chapter(long start) {
super();
this.start = start;
}
public Chapter(long start, String title, FeedItem item, String link) {
super();
this.start = start;
this.title = title;
this.link = link;
}
public static Chapter fromCursor(Cursor cursor, FeedItem item) {
int indexTitle = cursor.getColumnIndex(PodDBAdapter.KEY_TITLE);
int indexStart = cursor.getColumnIndex(PodDBAdapter.KEY_START);
int indexLink = cursor.getColumnIndex(PodDBAdapter.KEY_LINK);
int indexChapterType = cursor.getColumnIndex(PodDBAdapter.KEY_CHAPTER_TYPE);
String title = cursor.getString(indexTitle);
long start = cursor.getLong(indexStart);
String link = cursor.getString(indexLink);
int chapterType = cursor.getInt(indexChapterType);
Chapter chapter = null;
switch (chapterType) {
case SimpleChapter.CHAPTERTYPE_SIMPLECHAPTER:
chapter = new SimpleChapter(start, title, item, link);
break;
case ID3Chapter.CHAPTERTYPE_ID3CHAPTER:
chapter = new ID3Chapter(start, title, item, link);
break;
case VorbisCommentChapter.CHAPTERTYPE_VORBISCOMMENT_CHAPTER:
chapter = new VorbisCommentChapter(start, title, item, link);
break;
}
return chapter;
}
public abstract int getChapterType();
public long getStart() {
return start;
}
public String getTitle() {
return title;
}
public String getLink() {
return link;
}
public void setStart(long start) {
this.start = start;
}
public void setTitle(String title) {
this.title = title;
}
public void setLink(String link) {
this.link = link;
}
@Override
public String getHumanReadableIdentifier() {
return title;
}
}