//# 0 errors, 26 messages
//#
/*
    //#CalendarModel.java:1:1: class: org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel
    //#CalendarModel.java:1:1: method: org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel.org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel__static_init
 * Licensed to the Apache Software Foundation (ASF) under one or more
 *  contributor license agreements.  The ASF licenses this file to You
 * under the Apache 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://www.apache.org/licenses/LICENSE-2.0
 *
 * 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.  For additional information regarding
 * copyright in this work, please see the NOTICE file in the top level
 * directory of this distribution.
 */

package org.apache.roller.weblogger.ui.core.tags.calendar;
import java.util.Calendar;
import java.util.Date;

/**
 * Model interface for the CalendarTag. The CalendarTag will set a day,
 * then use the computeUrl method to get the URLs it needs.
 */
public interface CalendarModel {
    public Calendar getCalendar();
    
    public void setDay( String month ) throws Exception;
    
    public Date getDay();
    
    public Date getNextMonth();

    public Date getPrevMonth();
    
    public String computePrevMonthUrl();
    
    public String computeTodayMonthUrl();
    
    public String computeNextMonthUrl();

    /**
     * Get the earliest month in which there could possibly be data.  For a weblog this
     * is the beginning of the month containing the creation date.
     */
    //public Date getInitialMonth();
    
    /**
     * Create URL for use on edit-weblog page, preserves the request
     * parameters used by the tabbed-menu tag for navigation.
     *
     * @param day      Day for URL
     * @param monthURL True to return month URL (6-char date)
     * @param valid    Always return a URL, never return null
     * @return         URL for day, or null if no weblog entry on that day
     */
    public String computeUrl( java.util.Date day, boolean monthURL, boolean valid );
    
    /**
     * Get calendar cell content or null if none.
     *
     * @param day Day for URL
     * @param valid Always return a URL, never return null
     * @return Calendar cell content or null if none.
     */
    public String getContent( java.util.Date day );
}

    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel]
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel__static_init): __Dispatch_Table.computeNextMonthUrl()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel__static_init): __Dispatch_Table.computePrevMonthUrl()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel__static_init): __Dispatch_Table.computeTodayMonthUrl()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel__static_init): __Dispatch_Table.computeUrl(Ljava/util/Date;ZZ)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel__static_init): __Dispatch_Table.getCalendar()Ljava/util/Calendar;
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel__static_init): __Dispatch_Table.getContent(Ljava/util/Date;)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel__static_init): __Dispatch_Table.getDay()Ljava/util/Date;
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel__static_init): __Dispatch_Table.getNextMonth()Ljava/util/Date;
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel__static_init): __Dispatch_Table.getPrevMonth()Ljava/util/Date;
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel__static_init): __Dispatch_Table.setDay(Ljava/lang/String;)V
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel__static_init): __Dispatch_Table.computeNextMonthUrl()Ljava/lang/String; == &computeNextMonthUrl
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel__static_init): __Dispatch_Table.computePrevMonthUrl()Ljava/lang/String; == &computePrevMonthUrl
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel__static_init): __Dispatch_Table.computeTodayMonthUrl()Ljava/lang/String; == &computeTodayMonthUrl
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel__static_init): __Dispatch_Table.computeUrl(Ljava/util/Date;ZZ)Ljava/lang/String; == &computeUrl
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel__static_init): __Dispatch_Table.getCalendar()Ljava/util/Calendar; == &getCalendar
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel__static_init): __Dispatch_Table.getContent(Ljava/util/Date;)Ljava/lang/String; == &getContent
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel__static_init): __Dispatch_Table.getDay()Ljava/util/Date; == &getDay
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel__static_init): __Dispatch_Table.getNextMonth()Ljava/util/Date; == &getNextMonth
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel__static_init): __Dispatch_Table.getPrevMonth()Ljava/util/Date; == &getPrevMonth
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel__static_init): __Dispatch_Table.setDay(Ljava/lang/String;)V == &setDay
    //#CalendarModel.java:: end of method: org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel.org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel__static_init
    //#CalendarModel.java:: end of class: org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel
