/**
* Licensed under the Artistic License; you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://displaytag.sourceforge.net/license.html
*
* THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
package org.displaytag.sample;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
/**
* Just a test class that returns columns of data that are useful for testing out the ListTag class and ListColumn
* class.
* @author epesh
* @author Fabrizio Giustina
* @version $Revision$ ($Author$)
*/
public class ListObject implements Serializable
{
/**
* Stable serialVersionUID.
*/
private static final long serialVersionUID = 42L;
/**
* random number generator.
*/
private static Random random = new Random();
/**
* id.
*/
private int id = -1;
/**
* name.
*/
private String name;
/**
* email.
*/
private String email;
/**
* date.
*/
private Date date;
/**
* money.
*/
private double money;
/**
* description.
*/
private String description;
/**
* long description.
*/
private String longDescription;
/**
* status.
*/
private String status;
/**
* url.
*/
private String url;
/**
* sub list used to test nested tables.
*/
private List subList;
/**
* Constructor for ListObject.
*/
public ListObject()
{
this.id = random.nextInt(99998) + 1;
this.money = (random.nextInt(999998) + 1) / 100;
String firstName = RandomSampleUtil.getRandomWord();
String lastName = RandomSampleUtil.getRandomWord();
this.name = StringUtils.capitalize(firstName) + ' ' + StringUtils.capitalize(lastName);
this.email = firstName + '-' + lastName + '@' + RandomSampleUtil.getRandomWord() + ".com"; //$NON-NLS-1$
this.date = RandomSampleUtil.getRandomDate();
this.description = RandomSampleUtil.getRandomWord() + ' ' //
+ RandomSampleUtil.getRandomWord()
+ "..."; //$NON-NLS-1$
this.longDescription = RandomSampleUtil.getRandomSentence(10);
this.status = RandomSampleUtil.getRandomWord().toUpperCase();
// added sublist for testing of nested tables
this.subList = new ArrayList();
this.subList.add(new SubListItem());
this.subList.add(new SubListItem());
this.subList.add(new SubListItem());
this.url = "http://www." + lastName + ".org/"; //$NON-NLS-1$ //$NON-NLS-2$
}
/**
* getter for id.
* @return int id
*/
public int getId()
{
return this.id;
}
/**
* setter for id.
* @param value int id
*/
public void setId(int value)
{
this.id = value;
}
/**
* getter for name.
* @return String name
*/
public String getName()
{
return this.name;
}
/**
* getter for email.
* @return String email
*/
public String getEmail()
{
return this.email;
}
/**
* setter for email.
* @param value String email
*/
public void setEmail(String value)
{
this.email = value;
}
/**
* getter for date.
* @return Date
*/
public Date getDate()
{
return (Date) this.date.clone();
}
/**
* getter for money.
* @return double money
*/
public double getMoney()
{
return this.money;
}
/**
* getter for description.
* @return String description
*/
public String getDescription()
{
return this.description;
}
/**
* getter for long description.
* @return String long description
*/
public String getLongDescription()
{
return this.longDescription;
}
/**
* getter for status.
* @return String status
*/
public String getStatus()
{
return this.status;
}
/**
* getter for url.
* @return String url
*/
public String getUrl()
{
return this.url;
}
/**
* test for null values.
* @return null
*/
public String getNullValue()
{
return null;
}
/**
* Returns a simple string representation of the object.
* @return String simple representation of the object
*/
public String toString()
{
return "ListObject(" + this.id + ")"; //$NON-NLS-1$ //$NON-NLS-2$
}
/**
* Returns a detailed string representation of the object.
* @return String detailed representation of the object
*/
public String toDetailedString()
{
return "ID: " //$NON-NLS-1$
+ this.id
+ "\n" //$NON-NLS-1$
+ "Name: " //$NON-NLS-1$
+ this.name
+ "\n" //$NON-NLS-1$
+ "Email: " //$NON-NLS-1$
+ this.email
+ "\n" //$NON-NLS-1$
+ "Date: " //$NON-NLS-1$
+ this.date
+ "\n" //$NON-NLS-1$
+ "Money: " //$NON-NLS-1$
+ this.money
+ "\n" //$NON-NLS-1$
+ "Description: " //$NON-NLS-1$
+ this.description
+ "\n" //$NON-NLS-1$
+ "Status: " //$NON-NLS-1$
+ this.status
+ "\n" //$NON-NLS-1$
+ "URL: " //$NON-NLS-1$
+ this.url
+ "\n"; //$NON-NLS-1$
}
/**
* Returns the subList.
* @return List
*/
public List getSubList()
{
return this.subList;
}
/**
* Inner class used in testing nested tables.
* @author Fabrizio Giustina
*/
public static class SubListItem implements Serializable
{
/**
* Stable serialVersionUID.
*/
private static final long serialVersionUID = 42L;
/**
* name.
*/
private String itemName;
/**
* email.
*/
private String itemEmail;
/**
* Constructor for SubListItem.
*/
public SubListItem()
{
this.itemName = RandomSampleUtil.getRandomWord();
this.itemEmail = RandomSampleUtil.getRandomEmail();
}
/**
* getter for name.
* @return String name
*/
public String getName()
{
return this.itemName;
}
/**
* getter for email.
* @return String
*/
public String getEmail()
{
return this.itemEmail;
}
/**
* @see java.lang.Object#toString()
*/
public String toString()
{
return new ToStringBuilder(this, ToStringStyle.SIMPLE_STYLE) //
.append("name", this.itemName) //$NON-NLS-1$
.append("email", this.itemEmail) //$NON-NLS-1$
.toString();
}
}
}