001/*
002 *  Copyright 2014 Anyware Services
003 *
004 *  Licensed under the Apache License, Version 2.0 (the "License");
005 *  you may not use this file except in compliance with the License.
006 *  You may obtain a copy of the License at
007 *
008 *      http://www.apache.org/licenses/LICENSE-2.0
009 *
010 *  Unless required by applicable law or agreed to in writing, software
011 *  distributed under the License is distributed on an "AS IS" BASIS,
012 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 *  See the License for the specific language governing permissions and
014 *  limitations under the License.
015 */
016package org.ametys.plugins.explorer.calendars;
017
018import java.util.Date;
019import java.util.List;
020
021import org.ametys.core.user.UserIdentity;
022
023/**
024 * Modifiable Calendar Event Interface
025 */
026public interface ModifiableCalendarEvent extends CalendarEvent
027{
028    /**
029     * Set the title of the event
030     * @param title the title
031     */
032    public void setTitle(String title);
033    
034    /**
035     * Set the description of the event
036     * @param desc the description
037     */
038    public void setDescription(String desc);
039    
040    /**
041     * Set the location of the event
042     * @param location the location
043     */
044    public void setLocation(String location);
045    
046    /**
047     * Set this event's keywords.
048     * @param keywords the keywords.
049     */
050    public void setKeywords(String[] keywords);
051    
052    /**
053     * Set the startDate of the event
054     * @param startDate the start date
055     */
056    public void setStartDate(Date startDate);
057
058    /**
059     * Set the endDate of the event
060     * @param endDate the end date
061     */
062    public void setEndDate(Date endDate);
063
064    /**
065     * Set if the event last all the day
066     * @param fullDay is a fullday event
067     */
068    public void setFullDay(Boolean fullDay);
069    
070    /**
071     * Set the creator
072     * @param user The creator
073     */
074    public void setCreator(UserIdentity user);
075    
076    /**
077     * Set the creation date
078     * @param date The creation date
079     */
080    public void setCreationDate(Date date);
081    
082    /**
083     * Set the last contributor
084     * @param user The last contributor
085     */
086    public void setLastContributor(UserIdentity user);
087    
088    /**
089     * Set the last modified date
090     * @param date The last modified date
091     */
092    public void setLastModified(Date date);
093    
094    /**
095     * Set the last validator of the event
096     * @param user the last validator of the event
097    */
098    public void setLastValidator(UserIdentity user);
099    /**
100     * Set the last validation date of the event
101     * @param date the last validation date of the event
102     */
103    public void setLastValidated(Date date);
104    /**
105     * Set the recurrence type.
106     * @param recurrenceType the recurrence type
107     */
108    public void setRecurrenceType(String recurrenceType);
109    /**
110     * Set the end date of the frequency.
111     * @param untilDate the end date of the recurrence
112     */
113    public void setRepeatUntil(Date untilDate);
114    /**
115     * Set the list of excluded event date.
116     * @param excludedOccurrences excluded date
117     */
118    public void setExcludedOccurrences(List<Date> excludedOccurrences);
119    
120    /**
121     * Set the oragniser
122     * @param user The oragniser
123     */
124    public void setOrganiser(UserIdentity user);
125    
126}