All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.sakaiproject.signup.restful.SignupTimeslotItem Maven / Gradle / Ivy

/**
 * Copyright (c) 2007-2014 The Apereo Foundation
 *
 * Licensed under the Educational Community License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *             http://opensource.org/licenses/ecl2
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*
* Licensed to The Apereo Foundation under one or more contributor license
* agreements. See the NOTICE file distributed with this work for
* additional information regarding copyright ownership.
*
* The Apereo Foundation licenses this file to you under the Educational 
* Community License, Version 2.0 (the "License"); you may not use this file 
* except in compliance with the License. You may obtain a copy of the 
* License at:
*
* http://opensource.org/licenses/ecl2.txt
* 
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.sakaiproject.signup.restful;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 

* This class holds the information of sign-up time slot. It's a wrapper class * for RESTful case. *

*/ public class SignupTimeslotItem { private Long id; private Date startTime; private Date endTime; private boolean locked; private boolean canceled; private int maxNoOfAttendees; private boolean displayAttendees;// TODO : this should be moved to // meeting class private List attendees; private List waitingList; private boolean signedUp; private boolean onWaitList; /** * a constants maximum number for attendees */ public static final int UNLIMITED = Integer.MAX_VALUE; /** * constructor * */ public SignupTimeslotItem() { attendees = new ArrayList(); waitingList = new ArrayList(); } /** * get the sequence Id, which is generated by DB * * @return the sequence Id */ public Long getId() { return id; } /** * this is a setter * * @param id * the sequence Id */ public void setId(Long id) { this.id = id; } /** * get the starting time of the time slot * * @return the starting time of the time slot */ public Date getStartTime() { return startTime; } /** * this is a setter * * @param startTime * the starting time of the time slot */ public void setStartTime(Date startTime) { this.startTime = startTime; } /** * get the end time when the time slot ends * * @return the end time */ public Date getEndTime() { return endTime; } /** * this is a setter * * @param endTime * a end time */ public void setEndTime(Date endTime) { this.endTime = endTime; } /** * check if this time slot is cancelled * * @return true if this time slot is cancelled */ public boolean isCanceled() { return canceled; } /** * this is a setter * * @param cancel * a boolean value */ public void setCanceled(boolean cancel) { this.canceled = cancel; } /** * check if the time slot is locked * * @return true if the time slot is locked */ public boolean isLocked() { return locked; } /** * this is a setter * * @param locked * a boolean value */ public void setLocked(boolean locked) { this.locked = locked; } /** * get a list of SignupParticipant objects, who have signed up in the time * slot * * @return a list of SignupParticipant objects */ public List getAttendees() { return attendees; } /** * this is a setter * * @param attendees * a list of SignupParticipant objects */ public void setAttendees(List attendees) { this.attendees = attendees; } /** * get a list of SignupParticipant objects, who are on the waiting list in * the time slot * * @return a list of SignupParticipant objects */ public List getWaitingList() { return waitingList; } /** * this is a setter * * @param waitingList * a list of SignupParticipant objects, who are on the waiting * list in the time slot */ public void setWaitingList(List waitingList) { this.waitingList = waitingList; } /** * check if the name of Attendee should be display to public * * @return true if the name of Attendee should be display to public */ public boolean isDisplayAttendees() { return displayAttendees; } /** * this is a setter * * @param showAttendees * a boolean value */ public void setDisplayAttendees(boolean showAttendees) { this.displayAttendees = showAttendees; } /** * check if current time slot is available for adding more people * * @return true if current time slot is available for adding more people */ public boolean isAvailable() { if (attendees == null) return true; return (attendees.size() < maxNoOfAttendees); } /** * check to see if current user is signed up * * @return a boolean value */ public boolean isSignedUp() { return signedUp; } public void setSignedUp(boolean signedUp) { this.signedUp = signedUp; } /** * Check to see if current user is on the waiting list * * @return */ public boolean isOnWaitList() { return onWaitList; } public void setOnWaitList(boolean onWaitList) { this.onWaitList = onWaitList; } /** * get the maximum number of attendees, which is allowed in the time slot * * @return the maximum number of attendees */ public int getMaxNoOfAttendees() { return maxNoOfAttendees; } /** * this is a setter * * @param noOfAttendees * the maximum allowed number of attendees */ public void setMaxNoOfAttendees(int noOfAttendees) { this.maxNoOfAttendees = noOfAttendees; } /** * check if the time slot allows unlimited attendee to join * * @return true if the time slot allows unlimited attendee to join */ public boolean isUnlimitedAttendee() { return (maxNoOfAttendees == UNLIMITED); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy