package ua.kpi.ecampus.model.pojo;
import android.os.Parcel;
import android.os.Parcelable;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import ua.kpi.ecampus.model.Recipient;
import java.util.ArrayList;
import java.util.List;
/**
* Represents Bulletin entity.
* <p>
* Created by Administrator on 02.02.2016.
*/
public class Bulletin implements Parcelable {
@SerializedName("id")
@Expose
private String id;
@SerializedName("subject")
@Expose
private String subject;
@SerializedName("text")
@Expose
private String text;
@SerializedName("creatorId")
@Expose
private String creatorId;
@SerializedName("creatorName")
@Expose
private String creatorName;
@SerializedName("profileId")
@Expose
private int profileId;
@SerializedName("profileName")
@Expose
private String profileName;
@SerializedName("subdivisionId")
@Expose
private int subdivisionId;
@SerializedName("subdivisionName")
@Expose
private String subdivisionName;
@SerializedName("dateCreate")
@Expose
private String dateCreate;
@SerializedName("dateStart")
@Expose
private String dateStart;
@SerializedName("dateStop")
@Expose
private String dateStop;
@SerializedName("actuality")
@Expose
private boolean actuality;
@SerializedName("recipient")
@Expose
private List<Recipient> recipientList = new ArrayList<>();
public Bulletin(String userId, String subject, String text, String
dateCreate, String dateStart, String dateStop, boolean actuality,
List<Recipient> recipients) {
this.creatorId = userId;
this.subject = subject;
this.text = text;
this.dateCreate = dateCreate;
this.dateStart = dateStart;
this.dateStop = dateStop;
this.actuality = actuality;
this.recipientList = recipients;
}
public Bulletin(String id, String theme, String author, String dateCreate) {
this.id = id;
this.subject = theme;
this.creatorName = author;
this.dateCreate = dateCreate;
}
private Bulletin(Parcel in) {
id = in.readString();
subject = in.readString();
text = in.readString();
creatorName = in.readString();
subdivisionName = in.readString();
dateCreate = in.readString();
dateStart = in.readString();
dateStop = in.readString();
actuality = in.readByte() != 0;
}
/**
* @return The id
*/
public String getId() {
return id;
}
/**
* @param id The id
*/
public void setId(String id) {
this.id = id;
}
/**
* @return The subject
*/
public String getSubject() {
return subject;
}
/**
* @param subject The subject
*/
public void setSubject(String subject) {
this.subject = subject;
}
/**
* @return The text
*/
public String getText() {
return text;
}
/**
* @param text The text
*/
public void setText(String text) {
this.text = text;
}
/**
* @return The creatorName
*/
public String getCreatorName() {
return creatorName;
}
/**
* @param creatorName The creatorName
*/
public void setCreatorName(String creatorName) {
this.creatorName = creatorName;
}
/**
* @return The profileName
*/
public String getProfileName() {
return profileName;
}
/**
* @param profileName The profileName
*/
public void setProfileName(String profileName) {
this.profileName = profileName;
}
/**
* @return The subdivisionName
*/
public String getSubdivisionName() {
return subdivisionName;
}
/**
* @param subdivisionName The subdivisionName
*/
public void setSubdivisionName(String subdivisionName) {
this.subdivisionName = subdivisionName;
}
/**
* @return The dateCreate
*/
public String getDateCreate() {
return dateCreate;
}
/**
* @param dateCreate The dateCreate
*/
public void setDateCreate(String dateCreate) {
this.dateCreate = dateCreate;
}
/**
* @return The dateStart
*/
public String getDateStart() {
return dateStart;
}
/**
* @param dateStart The dateStart
*/
public void setDateStart(String dateStart) {
this.dateStart = dateStart;
}
/**
* @return The dateStop
*/
public String getDateStop() {
return dateStop;
}
/**
* @param dateStop The dateStop
*/
public void setDateStop(String dateStop) {
this.dateStop = dateStop;
}
/**
* @return The actuality
*/
public boolean getActuality() {
return actuality;
}
/**
* @param actuality The actuality
*/
public void setActuality(boolean actuality) {
this.actuality = actuality;
}
/**
* Describe the kinds of special objects contained in this Parcelable's
* marshalled representation.
*
* @return
*/
@Override
public int describeContents() {
return 0;
}
/**
* Flatten this object in to a Parcel.
*
* @param dest
* @param flags
*/
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(id);
dest.writeString(subject);
dest.writeString(text);
dest.writeString(creatorName);
dest.writeString(subdivisionName);
dest.writeString(dateCreate);
dest.writeString(dateStart);
dest.writeString(dateStop);
dest.writeByte((byte) (actuality ? 1 : 0));
}
/**
* Must have a non-null static field called CREATOR of a type that
* implements the Parcelable.Creator interface
*/
public static final Parcelable.Creator<Bulletin> CREATOR
= new Parcelable.Creator<Bulletin>() {
public Bulletin createFromParcel(Parcel in) {
return new Bulletin(in);
}
public Bulletin[] newArray(int size) {
return new Bulletin[size];
}
};
public int getProfileId() {
return profileId;
}
public void setProfileId(int profileId) {
this.profileId = profileId;
}
public int getSubdivisionId() {
return subdivisionId;
}
public void setSubdivisionId(int subdivisionId) {
this.subdivisionId = subdivisionId;
}
public String getCreatorId() {
return creatorId;
}
public void setCreatorId(String creatorId) {
this.creatorId = creatorId;
}
public List<Recipient> getRecipientList() {
return recipientList;
}
public void setRecipientList(List<Recipient> recipientList) {
this.recipientList = recipientList;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Bulletin bulletin = (Bulletin) o;
return !(id != null ? !id.equals(bulletin.id) : bulletin.id != null);
}
@Override
public int hashCode() {
return id != null ? id.hashCode() : 0;
}
}