package de.luhmer.owncloudnewsreader.database.generator;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Property;
import de.greenrobot.daogenerator.Schema;
public class Version6 extends SchemaVersion {
/**
* Constructor
*
* @param current
*/
public Version6(boolean current) {
super(current);
Schema schema = getSchema();
addEntitysToSchema(schema);
}
/**
* {@inheritDoc}
*/
@Override
public int getVersionNumber() {
return 6;
}
@SuppressWarnings("unused") // id properties (folderId, etc.) need to be in database
private static void addEntitysToSchema(Schema schema) {
/* Folder */
Entity folder = schema.addEntity("Folder");
Property folderId = folder.addIdProperty().notNull().getProperty();
folder.addStringProperty("label").notNull();
/* Feed */
Entity feed = schema.addEntity("Feed");
Property feedId = feed.addIdProperty().notNull().getProperty();
Property folderIdProperty = feed.addLongProperty("folderId").index().getProperty();
feed.addStringProperty("feedTitle").notNull();
feed.addStringProperty("faviconUrl");
feed.addStringProperty("link");
feed.addStringProperty("avgColour");
/* RSS Item */
Entity rssItem = schema.addEntity("RssItem");
Property rssItemId = rssItem.addIdProperty().notNull().getProperty();
Property rssItemFeedId = rssItem.addLongProperty("feedId").notNull().index().getProperty();
rssItem.addStringProperty("link");
rssItem.addStringProperty("title");
rssItem.addStringProperty("body");
rssItem.addBooleanProperty("read");
rssItem.addBooleanProperty("starred");
rssItem.addStringProperty("author").notNull();
rssItem.addStringProperty("guid").notNull();
rssItem.addStringProperty("guidHash").notNull();
rssItem.addStringProperty("fingerprint").notNull();
rssItem.addBooleanProperty("read_temp");
rssItem.addBooleanProperty("starred_temp");
rssItem.addDateProperty("lastModified");
rssItem.addDateProperty("pubDate");
rssItem.addStringProperty("enclosureLink");
rssItem.addStringProperty("enclosureMime");
feed.addToOne(folder, folderIdProperty);
folder.addToMany(feed, folderIdProperty);
feed.addToMany(rssItem, rssItemFeedId);
rssItem.addToOne(feed, rssItemFeedId);
Entity rssItemView = schema.addEntity("CurrentRssItemView");
rssItemView.addIdProperty().notNull();
rssItemView.addLongProperty("rssItemId").notNull();
rssItem.implementsInterface("HasId<Long>");
}
}