package com.commafeed.backend.model; import java.util.Date; import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.ManyToMany; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.persistence.Transient; import org.hibernate.annotations.Index; import com.google.common.collect.Sets; @Entity @Table(name = "FEEDS") @SuppressWarnings("serial") public class Feed extends AbstractModel { /** * The url of the feed */ @Column(length = 2048, nullable = false) private String url; @Column(length = 40, nullable = false) @Index(name = "urlHash_index") private String urlHash; @Transient private String title; /** * The url of the website, extracted from the feed */ @Column(length = 2048) private String link; @Temporal(TemporalType.TIMESTAMP) @Index(name = "lastupdated_index") private Date lastUpdated; @Column(length = 1024) private String message; private int errorCount; @Temporal(TemporalType.TIMESTAMP) @Index(name = "disableduntil_index") private Date disabledUntil; @Column(length = 64) private String lastModifiedHeader; @Column(length = 128) private String etagHeader; @ManyToMany(mappedBy = "feeds") private Set entries = Sets.newHashSet(); @OneToMany(mappedBy = "feed") private Set subscriptions; public Feed() { } public Feed(String url) { this.url = url; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public Date getLastUpdated() { return lastUpdated; } public void setLastUpdated(Date lastUpdated) { this.lastUpdated = lastUpdated; } public Set getEntries() { return entries; } public void setEntries(Set entries) { this.entries = entries; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public Set getSubscriptions() { return subscriptions; } public void setSubscriptions(Set subscriptions) { this.subscriptions = subscriptions; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getLink() { return link; } public void setLink(String link) { this.link = link; } public int getErrorCount() { return errorCount; } public void setErrorCount(int errorCount) { this.errorCount = errorCount; } public Date getDisabledUntil() { return disabledUntil; } public void setDisabledUntil(Date disabledUntil) { this.disabledUntil = disabledUntil; } public String getUrlHash() { return urlHash; } public void setUrlHash(String urlHash) { this.urlHash = urlHash; } public String getLastModifiedHeader() { return lastModifiedHeader; } public void setLastModifiedHeader(String lastModifiedHeader) { this.lastModifiedHeader = lastModifiedHeader; } public String getEtagHeader() { return etagHeader; } public void setEtagHeader(String etagHeader) { this.etagHeader = etagHeader; } }