/*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* (the "License"); you may not use this file except in compliance with the License.
* You may obtain a copy of the License at .
*
* Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
* WARRANTY OF ANY KIND, either express or implied. See the License for the specific
* language governing rights and limitations under the License.
*
* The Original Code is the Venice Web Communities System.
*
* The Initial Developer of the Original Code is Eric J. Bowersox ,
* for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
* Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
*
* Contributor(s):
*/
package com.silverwrist.venice.servlets;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.silverwrist.venice.core.ConferenceContext;
public class TopicSortHolder
{
/*--------------------------------------------------------------------------------
* Internal class for holding view and sort options
*--------------------------------------------------------------------------------
*/
static class SortHolderItem
{
int view_opt;
int sort_opt;
SortHolderItem(int view_opt, int sort_opt)
{
this.view_opt = view_opt;
this.sort_opt = sort_opt;
} // end constructor
int getViewOption()
{
return view_opt;
} // end getViewOption
void setViewOption(int val)
{
view_opt = val;
} // end setViewOption
int getSortOption()
{
return sort_opt;
} // end getSortOption
void setSortOption(int val)
{
sort_opt = val;
} // end setSortOption
} // end class SortHolderItem
/*--------------------------------------------------------------------------------
* Static data members
*--------------------------------------------------------------------------------
*/
protected static final String ATTRIBUTE = "conf.display.topic.sort";
protected static final int DEFAULT_VIEW = ConferenceContext.DISPLAY_ACTIVE;
protected static final int DEFAULT_SORT = ConferenceContext.SORT_NUMBER;
/*--------------------------------------------------------------------------------
* Attributes
*--------------------------------------------------------------------------------
*/
private Hashtable hash = new Hashtable();
/*--------------------------------------------------------------------------------
* Constructor
*--------------------------------------------------------------------------------
*/
protected TopicSortHolder()
{ // this does nothing
} // end constructor
/*--------------------------------------------------------------------------------
* Internal functions
*--------------------------------------------------------------------------------
*/
private SortHolderItem getItem(int confid)
{
Integer the_confid = new Integer(confid);
SortHolderItem item = (SortHolderItem)(hash.get(the_confid));
if (item==null)
{ // create a new item...
item = new SortHolderItem(DEFAULT_VIEW,DEFAULT_SORT);
hash.put(the_confid,item);
} // end if
return item;
} // end getItem
/*--------------------------------------------------------------------------------
* External static operations
*--------------------------------------------------------------------------------
*/
public static TopicSortHolder retrieve(HttpSession session)
{
Object tmp = session.getAttribute(ATTRIBUTE);
if (tmp!=null)
return (TopicSortHolder)tmp;
TopicSortHolder rc = new TopicSortHolder();
session.setAttribute(ATTRIBUTE,rc);
return rc;
} // end retrieve
/*--------------------------------------------------------------------------------
* External operations
*--------------------------------------------------------------------------------
*/
public int getViewOption(int confid)
{
return getItem(confid).getViewOption();
} // end getViewOption
public void setViewOption(int confid, int opt)
{
getItem(confid).setViewOption(opt);
} // end setViewOption
public int getSortOption(int confid)
{
return getItem(confid).getSortOption();
} // end getSortOption
public void setSortOption(int confid, int opt)
{
getItem(confid).setSortOption(opt);
} // end setSortOption
} // end class TopicSortHolder