2.17.2: 2011-06-17

net.sf.basedb.core
Class News

java.lang.Object
  extended by net.sf.basedb.core.BasicItem<NewsData>
      extended by net.sf.basedb.core.News
All Implemented Interfaces:
AccessControlled, Controlled, Identifiable, Nameable, Registered, Removable, Validatable

public class News
extends BasicItem<NewsData>
implements Nameable, Removable, Validatable, Registered

This class represents news items.

Version:
2.0
Author:
Nicklas
Last modified
$Date: 2009-04-06 14:52:39 +0200 (Mon, 06 Apr 2009) $

Nested Class Summary
private static class News.QueryRuntimeFilterImpl
           
 
Field Summary
private static QueryRuntimeFilter RUNTIME_FILTER
          This filter limits the returned news items to those where todays date falls between the start and end dates unless the logged in user has generic read permission.
static Item TYPE
          The type of item represented by this class.
 
Fields inherited from interface net.sf.basedb.core.Nameable
MAX_DESCRIPTION_LENGTH, MAX_NAME_LENGTH
 
Constructor Summary
News(NewsData newsData)
           
 
Method Summary
static News getById(DbControl dc, int id)
          Get a News item when you know the ID.
 String getDescription()
          Get the description for the item.
 Date getEndDate()
          Get the end date and time for this news item to be published.
 Date getEntryDate()
          Get the date that the item was registered in the database.
 String getName()
          Get the name of the item.
static News getNew(DbControl dc, Date startDate, Date newsDate)
          Create a new News item.
 Date getNewsDate()
          Get the date that is shown in listings.
static ItemQuery<News> getQuery()
          Get a query configured to retrieve news.
 Date getStartDate()
          Get the start date and time for this news item to be published.
 Item getType()
          Get the type of item represented by the object.
(package private)  void initPermissions(int granted, int denied)
          Read permission is granted if today is between the start and end date.
 boolean isRemoved()
          Check if the removed flag is set for this item.
 void setDescription(String description)
          Set the description for the item.
 void setEndDate(Date endDate)
          Set the end date and time for this item to be published.
 void setName(String name)
          Set the name of the item.
 void setNewsDate(Date newsDate)
          Set the date that is shown in listings.
 void setRemoved(boolean removed)
          Set the removed flag for this item.
 void setStartDate(Date startDate)
          Set the start date and time for this item to be published.
(package private)  void validate()
          Check that startDate is before newsDate is before endDate.
 
Methods inherited from class net.sf.basedb.core.BasicItem
addUsingItems, addUsingItems, checkPermission, equals, getData, getDbControl, getId, getPermissions, getPluginPermissions, getSessionControl, getUsingItems, getVersion, hashCode, hasPermission, isDetached, isInDatabase, isUsed, onAfterCommit, onAfterInsert, onBeforeCommit, onRollback, setDbControl, setProjectDefaults, toString, toTransferable
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface net.sf.basedb.core.Identifiable
getId, getVersion
 
Methods inherited from interface net.sf.basedb.core.AccessControlled
checkPermission, getPermissions, hasPermission
 

Field Detail

TYPE

public static final Item TYPE
The type of item represented by this class.

See Also:
Item.NEWS, getType()

RUNTIME_FILTER

private static final QueryRuntimeFilter RUNTIME_FILTER
This filter limits the returned news items to those where todays date falls between the start and end dates unless the logged in user has generic read permission.

Constructor Detail

News

News(NewsData newsData)
Method Detail

getNew

public static News getNew(DbControl dc,
                          Date startDate,
                          Date newsDate)
                   throws BaseException
Create a new News item.

Parameters:
dc - The DbControl which will be used for permission checking and database access
startDate - The first day this news item should be shown
newsDate - The date appearing in listings of news
Returns:
The new News item
Throws:
BaseException - If there is an error

getById

public static News getById(DbControl dc,
                           int id)
                    throws ItemNotFoundException,
                           PermissionDeniedException,
                           BaseException
Get a News item when you know the ID.

Parameters:
dc - The DbControl which will be used for permission checking and database access.
id - The ID of the item to load
Returns:
The News item
Throws:
ItemNotFoundException - If an item with the specified ID is not found
PermissionDeniedException - If the logged in user doesn't have Permission.READ permission to the item
BaseException - If there is another error

getQuery

public static ItemQuery<News> getQuery()
Get a query configured to retrieve news. If the logged in user doesn't have generic permission to all news, or if no user is logged in, only news which have a start date before today and an end date after today are returned.

Returns:
An ItemQuery object

getType

public Item getType()
Description copied from interface: Identifiable
Get the type of item represented by the object. The returned value is one of the values defined in the Item enumeration.

Specified by:
getType in interface Identifiable
Returns:
A value indicating the type of item

getName

public String getName()
Description copied from interface: Nameable
Get the name of the item.

Specified by:
getName in interface Nameable
Returns:
A String with the name of the item

setName

public void setName(String name)
             throws PermissionDeniedException,
                    InvalidDataException
Description copied from interface: Nameable
Set the name of the item. The name cannot be null and mustn't be longer than the value specified by the Nameable.MAX_NAME_LENGTH constant.

Specified by:
setName in interface Nameable
Parameters:
name - The new name for the item
Throws:
PermissionDeniedException - If the logged in user doesn't have write permission
InvalidDataException - If the name is null or longer than specified by the Nameable.MAX_NAME_LENGTH constant

getDescription

public String getDescription()
Description copied from interface: Nameable
Get the description for the item.

Specified by:
getDescription in interface Nameable
Returns:
A String with a description of the item

setDescription

public void setDescription(String description)
                    throws PermissionDeniedException,
                           InvalidDataException
Description copied from interface: Nameable
Set the description for the item. The description can be null but mustn't be longer than the value specified by the Nameable.MAX_DESCRIPTION_LENGTH constant.

Specified by:
setDescription in interface Nameable
Parameters:
description - The new description for the item
Throws:
PermissionDeniedException - If the logged in user doesn't have write permission
InvalidDataException - If the description longer than specified by the Nameable.MAX_DESCRIPTION_LENGTH constant

isRemoved

public boolean isRemoved()
Description copied from interface: Removable
Check if the removed flag is set for this item.

Specified by:
isRemoved in interface Removable
Returns:
TRUE if the item is flagged as removed, FALSE otherwise

setRemoved

public void setRemoved(boolean removed)
                throws PermissionDeniedException
Description copied from interface: Removable
Set the removed flag for this item.

Specified by:
setRemoved in interface Removable
Parameters:
removed - TRUE if the item should be flagged as removed, FALSE otherwise
Throws:
PermissionDeniedException - If the logged in user doesn't have Permission.DELETE permission for setting the flag to TRUE or Permission.WRITE permission for setting the flag to FALSE

getEntryDate

public Date getEntryDate()
Description copied from interface: Registered
Get the date that the item was registered in the database.

Specified by:
getEntryDate in interface Registered
Returns:
A date or null if this is not known

validate

void validate()
        throws InvalidDataException,
               BaseException
Check that startDate is before newsDate is before endDate.

Overrides:
validate in class BasicItem<NewsData>
Throws:
BaseException - If there is an error
InvalidDataException
See Also:
Validatable, Core API overview - Data validation, Coding rules and guidelines for item classes

initPermissions

void initPermissions(int granted,
                     int denied)
               throws BaseException
Read permission is granted if today is between the start and end date.

Overrides:
initPermissions in class BasicItem<NewsData>
Parameters:
granted - Permissions that have been granted by the subclass
denied - Permissions that have been denied by the subclass
Throws:
BaseException - If the permissions couldn't be initialised

getStartDate

public Date getStartDate()
Get the start date and time for this news item to be published.

Returns:
The date and time

setStartDate

public void setStartDate(Date startDate)
                  throws PermissionDeniedException,
                         InvalidDataException
Set the start date and time for this item to be published.

Parameters:
startDate - The new date and time
Throws:
PermissionDeniedException - If the logged in user doesn't have Permission.WRITE permission
InvalidDataException - If the date is null

getNewsDate

public Date getNewsDate()
Get the date that is shown in listings.

Returns:
The date and time

setNewsDate

public void setNewsDate(Date newsDate)
                 throws PermissionDeniedException,
                        InvalidDataException
Set the date that is shown in listings.

Parameters:
newsDate - The new date and time
Throws:
PermissionDeniedException - If the logged in user doesn't have Permission.WRITE permission
InvalidDataException - If the date is null

getEndDate

public Date getEndDate()
Get the end date and time for this news item to be published. If this value is null, the new item is published forever.

Returns:
The date and time

setEndDate

public void setEndDate(Date endDate)
                throws PermissionDeniedException
Set the end date and time for this item to be published.

Parameters:
endDate - The new date and time, or null to publish this new item forever
Throws:
PermissionDeniedException - If the logged in user doesn't have Permission.WRITE permission

2.17.2: 2011-06-17