package com.instructure.canvasapi.model; import android.os.Parcel; import com.instructure.canvasapi.utilities.APIHelpers; import java.io.Serializable; import java.util.ArrayList; import java.util.Date; /** * Created by Brady Larson on 7/22/13. * * Copyright (c) 2014 Instructure. All rights reserved. */ public class LockInfo extends CanvasComparable<LockInfo> implements Serializable{ private static final long serialVersionUID = 1L; private ArrayList<String> modulePrerequisiteNames = new ArrayList<String>(); private String lockedModuleName; private LockedModule context_module; private String unlock_at; /////////////////////////////////////////////////////////////////////////// // Getters and Setters /////////////////////////////////////////////////////////////////////////// //During parsing, GSON will try. Which means sometimes we get 'empty' objects //They're non-null, but don't have any information. public boolean isEmpty(){ return lockedModuleName == null && context_module == null && (modulePrerequisiteNames == null || modulePrerequisiteNames.size() == 0) && unlock_at == null; } public String getLockedModuleName() { if(context_module != null) { return context_module.getName(); } else { return ""; } } public void setLockedModuleName(String lockedModuleName) { this.lockedModuleName = lockedModuleName; } public ArrayList<String> getModulePrerequisiteNames() { return modulePrerequisiteNames; } public void setModulePrerequisiteNames(ArrayList<String> modulePrerequisiteNames) { this.modulePrerequisiteNames = modulePrerequisiteNames; } public Date getUnlockedAt() { if(context_module != null) { return context_module.getUnlock_at(); } else if(unlock_at != null){ return APIHelpers.stringToDate(unlock_at); } else { return null; } } public LockedModule getContext_module() { return context_module; } public void setContext_module(LockedModule context_module) { this.context_module = context_module; } /////////////////////////////////////////////////////////////////////////// // Required Overrides /////////////////////////////////////////////////////////////////////////// @Override public Date getComparisonDate() { return null; } @Override public String getComparisonString() { return getLockedModuleName(); } /////////////////////////////////////////////////////////////////////////// // Constructors /////////////////////////////////////////////////////////////////////////// public LockInfo() {} @Override public void writeToParcel(Parcel dest, int flags) { dest.writeList(this.modulePrerequisiteNames); dest.writeString(this.lockedModuleName); dest.writeParcelable(this.context_module, flags); dest.writeString(this.unlock_at); } private LockInfo(Parcel in) { in.readList(this.getModulePrerequisiteNames(), String.class.getClassLoader()); this.lockedModuleName = in.readString(); this.context_module = in.readParcelable(LockedModule.class.getClassLoader()); this.unlock_at = in.readString(); } public static Creator<LockInfo> CREATOR = new Creator<LockInfo>() { public LockInfo createFromParcel(Parcel source) { return new LockInfo(source); } public LockInfo[] newArray(int size) { return new LockInfo[size]; } }; }