package com.instructure.canvasapi.model; import android.os.Parcel; import android.os.Parcelable; import java.io.Serializable; /** * Created by Brady Larson * * Copyright (c) 2014 Instructure. All rights reserved. */ public class RubricCriterionRating implements Parcelable, Serializable , Comparable<RubricCriterionRating>{ public static final long serialVersionUID = 1L; private String id; private String criterionId; private String description; private double points; private String comments; private boolean isGrade; private boolean isFreeFormComment; private double maxPoints; /////////////////////////////////////////////////////////////////////////// // Getters and Setters /////////////////////////////////////////////////////////////////////////// public String getId() { return id == null ? criterionId : id; } public void setId(String id) { this.id = id; } public String getCriterionId() { return criterionId; } public void setCriterionId(String criterionId) { this.criterionId = criterionId; } public String getRatingDescription() { return description; } public void setRatingDescription(String ratingDescription) { this.description = ratingDescription; } public double getPoints() { return points; } public void setPoints(double points) { this.points = points; } public double getMaxPoints() { return maxPoints; } public void setMaxPoints(double points) { this.maxPoints = points; } public String getComments() { return comments; } public void setComments(String comments) { this.comments = comments; } public boolean isGrade() { return isGrade; } public void setGrade(boolean grade) { isGrade = grade; } public void setIsFreeFormComment(boolean isFreeFormComment){ this.isFreeFormComment = isFreeFormComment; } public boolean isFreeFormComment(){ return this.isFreeFormComment; } /////////////////////////////////////////////////////////////////////////// // Overrides /////////////////////////////////////////////////////////////////////////// @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; RubricCriterionRating rating = (RubricCriterionRating) o; if (id != null ? !id.equals(rating.id) : rating.id != null) return false; return true; } @Override public int hashCode() { return id != null ? id.hashCode() : 0; } /////////////////////////////////////////////////////////////////////////// // Constructors /////////////////////////////////////////////////////////////////////////// public RubricCriterionRating() {} public RubricCriterionRating(String criterionId) { setGrade(false); setCriterionId(criterionId); } public RubricCriterionRating(RubricCriterion rubricCriterion) { setGrade(false); setCriterionId(rubricCriterion.getId()); } /////////////////////////////////////////////////////////////////////////// // Helpers /////////////////////////////////////////////////////////////////////////// public boolean isComment() { return getComments() != null && !getComments().equals(""); } /////////////////////////////////////////////////////////////////////////// // Overrides /////////////////////////////////////////////////////////////////////////// @Override public int compareTo(RubricCriterionRating rubricCriterionRating) { return this.getId().compareTo(rubricCriterionRating.getId()); } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(this.id); dest.writeString(this.criterionId); dest.writeString(this.description); dest.writeDouble(this.points); dest.writeString(this.comments); dest.writeByte(isGrade ? (byte) 1 : (byte) 0); dest.writeByte(isFreeFormComment ? (byte) 1 : (byte) 0); dest.writeDouble(this.maxPoints); } private RubricCriterionRating(Parcel in) { this.id = in.readString(); this.criterionId = in.readString(); this.description = in.readString(); this.points = in.readDouble(); this.comments = in.readString(); this.isGrade = in.readByte() != 0; this.isFreeFormComment = in.readByte() != 0; this.maxPoints = in.readDouble(); } public static Creator<RubricCriterionRating> CREATOR = new Creator<RubricCriterionRating>() { public RubricCriterionRating createFromParcel(Parcel source) { return new RubricCriterionRating(source); } public RubricCriterionRating[] newArray(int size) { return new RubricCriterionRating[size]; } }; }