[jboss-cvs] jboss-seam/examples/icefaces/src/org/jboss/seam/example/booking ...
Gavin King
gavin.king at jboss.com
Mon Nov 20 00:19:01 EST 2006
User: gavin
Date: 06/11/20 00:19:01
Added: examples/icefaces/src/org/jboss/seam/example/booking
Booking.java BookingList.java
BookingListAction.java ChangePassword.java
ChangePasswordAction.java Hotel.java
HotelBooking.java HotelBookingAction.java
HotelSearching.java HotelSearchingAction.java
LoggedIn.java LoggedInInterceptor.java Login.java
LoginAction.java Logout.java LogoutAction.java
Register.java RegisterAction.java User.java
Log:
add icefaces example to cvs, thanks to icesoft
Revision Changes Path
1.1 date: 2006/11/20 05:19:01; author: gavin; state: Exp;jboss-seam/examples/icefaces/src/org/jboss/seam/example/booking/Booking.java
Index: Booking.java
===================================================================
//$Id: Booking.java,v 1.1 2006/11/20 05:19:01 gavin Exp $
package org.jboss.seam.example.booking;
import java.io.Serializable;
import java.text.DateFormat;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import org.hibernate.validator.Length;
import org.hibernate.validator.NotNull;
import org.hibernate.validator.Pattern;
import org.jboss.seam.annotations.Name;
@Entity
@Name("booking")
public class Booking implements Serializable
{
private Long id;
private User user;
private Hotel hotel;
private Date checkinDate;
private Date checkoutDate;
private String creditCard;
private String creditCardName;
private int creditCardExpiryMonth;
private int creditCardExpiryYear;
private boolean smoking;
private int beds;
public Booking() {}
public Booking(Hotel hotel, User user)
{
this.hotel = hotel;
this.user = user;
}
@Id @GeneratedValue
public Long getId()
{
return id;
}
public void setId(Long id)
{
this.id = id;
}
@NotNull
@Basic @Temporal(TemporalType.DATE)
public Date getCheckinDate()
{
return checkinDate;
}
public void setCheckinDate(Date datetime)
{
this.checkinDate = datetime;
}
@ManyToOne @NotNull
public Hotel getHotel()
{
return hotel;
}
public void setHotel(Hotel hotel)
{
this.hotel = hotel;
}
@ManyToOne @NotNull
public User getUser()
{
return user;
}
public void setUser(User user)
{
this.user = user;
}
@Basic @Temporal(TemporalType.DATE)
@NotNull
public Date getCheckoutDate()
{
return checkoutDate;
}
public void setCheckoutDate(Date checkoutDate)
{
this.checkoutDate = checkoutDate;
}
@NotNull(message="Credit card number is required")
@Length(min=16, max=16, message="Credit card number must 16 digits long")
@Pattern(regex="^\\d*$", message="Credit card number must be numeric")
public String getCreditCard()
{
return creditCard;
}
public void setCreditCard(String creditCard)
{
this.creditCard = creditCard;
}
@Transient
public String getDescription()
{
DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM);
return hotel.getName() +
", " + df.format( getCheckinDate() ) +
" to " + df.format( getCheckoutDate() );
}
public boolean isSmoking()
{
return smoking;
}
public void setSmoking(boolean smoking)
{
this.smoking = smoking;
}
public int getBeds()
{
return beds;
}
public void setBeds(int beds)
{
this.beds = beds;
}
@NotNull(message="Credit card name is required")
@Length(min=3, max=70, message="Credit card name is required")
public String getCreditCardName()
{
return creditCardName;
}
public void setCreditCardName(String creditCardName)
{
this.creditCardName = creditCardName;
}
public int getCreditCardExpiryMonth()
{
return creditCardExpiryMonth;
}
public void setCreditCardExpiryMonth(int creditCardExpiryMonth)
{
this.creditCardExpiryMonth = creditCardExpiryMonth;
}
public int getCreditCardExpiryYear()
{
return creditCardExpiryYear;
}
public void setCreditCardExpiryYear(int creditCardExpiryYear)
{
this.creditCardExpiryYear = creditCardExpiryYear;
}
@Override
public String toString()
{
return "Booking(" + user + ","+ hotel + ")";
}
}
1.1 date: 2006/11/20 05:19:01; author: gavin; state: Exp;jboss-seam/examples/icefaces/src/org/jboss/seam/example/booking/BookingList.java
Index: BookingList.java
===================================================================
//$Id: BookingList.java,v 1.1 2006/11/20 05:19:01 gavin Exp $
package org.jboss.seam.example.booking;
import javax.ejb.Local;
@Local
public interface BookingList
{
public void getBookings();
public String cancel();
public void destroy();
}
1.1 date: 2006/11/20 05:19:01; author: gavin; state: Exp;jboss-seam/examples/icefaces/src/org/jboss/seam/example/booking/BookingListAction.java
Index: BookingListAction.java
===================================================================
//$Id: BookingListAction.java,v 1.1 2006/11/20 05:19:01 gavin Exp $
package org.jboss.seam.example.booking;
import static javax.ejb.TransactionAttributeType.REQUIRES_NEW;
import static org.jboss.seam.ScopeType.SESSION;
import java.io.Serializable;
import java.util.List;
import javax.ejb.Remove;
import javax.ejb.Stateful;
import javax.ejb.TransactionAttribute;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.Destroy;
import org.jboss.seam.annotations.Factory;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Observer;
import org.jboss.seam.annotations.Out;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.datamodel.DataModel;
import org.jboss.seam.annotations.datamodel.DataModelSelection;
import org.jboss.seam.core.FacesMessages;
import org.jboss.seam.log.Log;
@Stateful
@Scope(SESSION)
@Name("bookingList")
@LoggedIn
@TransactionAttribute(REQUIRES_NEW)
public class BookingListAction implements BookingList, Serializable
{
@PersistenceContext
private EntityManager em;
@In
private User user;
@DataModel
private List<Booking> bookings;
@DataModelSelection
@Out(required=false)
private Booking booking;
@Logger
private Log log;
@Factory
@Observer("bookingConfirmed")
public void getBookings()
{
bookings = em.createQuery("select b from Booking b where b.user.username = :username order by b.checkinDate")
.setParameter("username", user.getUsername())
.getResultList();
}
public String cancel()
{
log.info("Cancel booking: #0 for #{user.username}", booking.getId());
Booking cancelled = em.find(Booking.class, booking.getId());
if (cancelled!=null) em.remove( cancelled );
getBookings();
FacesMessages.instance().add("Booking cancelled for confirmation number #{booking.id}");
return "main";
}
@Destroy @Remove
public void destroy() {}
}
1.1 date: 2006/11/20 05:19:01; author: gavin; state: Exp;jboss-seam/examples/icefaces/src/org/jboss/seam/example/booking/ChangePassword.java
Index: ChangePassword.java
===================================================================
//$Id: ChangePassword.java,v 1.1 2006/11/20 05:19:01 gavin Exp $
package org.jboss.seam.example.booking;
import javax.ejb.Local;
@Local
public interface ChangePassword
{
public String changePassword();
public String cancel();
public String getVerify();
public void setVerify(String verify);
public void destroy();
}
1.1 date: 2006/11/20 05:19:01; author: gavin; state: Exp;jboss-seam/examples/icefaces/src/org/jboss/seam/example/booking/ChangePasswordAction.java
Index: ChangePasswordAction.java
===================================================================
//$Id: ChangePasswordAction.java,v 1.1 2006/11/20 05:19:01 gavin Exp $
package org.jboss.seam.example.booking;
import static org.jboss.seam.ScopeType.EVENT;
import javax.ejb.Remove;
import javax.ejb.Stateful;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.jboss.seam.annotations.Destroy;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Out;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.core.FacesMessages;
@Stateful
@Scope(EVENT)
@Name("changePassword")
@LoggedIn
public class ChangePasswordAction implements ChangePassword
{
@In @Out
private User user;
@PersistenceContext
private EntityManager em;
private String verify;
public String changePassword()
{
if ( user.getPassword().equals(verify) )
{
user = em.merge(user);
FacesMessages.instance().add("Password updated");
return "main";
}
else
{
FacesMessages.instance().add("verify", "Re-enter new password");
revertUser();
verify=null;
return null;
}
}
public String cancel()
{
revertUser();
return "main";
}
private void revertUser()
{
user = em.find(User.class, user.getUsername());
}
public String getVerify()
{
return verify;
}
public void setVerify(String verify)
{
this.verify = verify;
}
@Destroy @Remove
public void destroy() {}
}
1.1 date: 2006/11/20 05:19:01; author: gavin; state: Exp;jboss-seam/examples/icefaces/src/org/jboss/seam/example/booking/Hotel.java
Index: Hotel.java
===================================================================
//$Id: Hotel.java,v 1.1 2006/11/20 05:19:01 gavin Exp $
package org.jboss.seam.example.booking;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import org.hibernate.validator.Length;
import org.hibernate.validator.NotNull;
import org.jboss.seam.annotations.Name;
@Entity
@Name("hotel")
public class Hotel implements Serializable
{
private Long id;
private String name;
private String address;
private String city;
private String state;
private String zip;
private String country;
@Id @GeneratedValue
public Long getId()
{
return id;
}
public void setId(Long id)
{
this.id = id;
}
@Length(max=50) @NotNull
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
@Length(max=100) @NotNull
public String getAddress()
{
return address;
}
public void setAddress(String address)
{
this.address = address;
}
@Length(max=40) @NotNull
public String getCity()
{
return city;
}
public void setCity(String city)
{
this.city = city;
}
@Length(min=4, max=6) @NotNull
public String getZip()
{
return zip;
}
public void setZip(String zip)
{
this.zip = zip;
}
@Length(min=2, max=10) @NotNull
public String getState()
{
return state;
}
public void setState(String state)
{
this.state = state;
}
@Length(min=2, max=40) @NotNull
public String getCountry()
{
return country;
}
public void setCountry(String country)
{
this.country = country;
}
@Override
public String toString()
{
return "Hotel(" + name + "," + address + "," + city + "," + zip + ")";
}
}
1.1 date: 2006/11/20 05:19:01; author: gavin; state: Exp;jboss-seam/examples/icefaces/src/org/jboss/seam/example/booking/HotelBooking.java
Index: HotelBooking.java
===================================================================
//$Id: HotelBooking.java,v 1.1 2006/11/20 05:19:01 gavin Exp $
package org.jboss.seam.example.booking;
import javax.ejb.Local;
@Local
public interface HotelBooking
{
public String selectHotel(Hotel selectedHotel);
public String bookHotel();
public String setBookingDetails();
public String confirm();
public String cancel();
public void destroy();
}
1.1 date: 2006/11/20 05:19:01; author: gavin; state: Exp;jboss-seam/examples/icefaces/src/org/jboss/seam/example/booking/HotelBookingAction.java
Index: HotelBookingAction.java
===================================================================
//$Id: HotelBookingAction.java,v 1.1 2006/11/20 05:19:01 gavin Exp $
package org.jboss.seam.example.booking;
import static javax.persistence.PersistenceContextType.EXTENDED;
import java.util.Calendar;
import javax.ejb.Remove;
import javax.ejb.Stateful;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.jboss.seam.annotations.Begin;
import org.jboss.seam.annotations.Destroy;
import org.jboss.seam.annotations.End;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Out;
import org.jboss.seam.core.Events;
import org.jboss.seam.core.FacesMessages;
import org.jboss.seam.log.Log;
@Stateful
@Name("hotelBooking")
@LoggedIn
public class HotelBookingAction implements HotelBooking
{
@PersistenceContext(type=EXTENDED)
private EntityManager em;
@In
private User user;
@In(required=false) @Out
private Hotel hotel;
@In(required=false)
@Out(required=false)
private Booking booking;
@In(create=true)
private FacesMessages facesMessages;
@In(create=true)
private Events events;
@Logger
private Log log;
@Begin
public String selectHotel(Hotel selectedHotel)
{
hotel = em.merge(selectedHotel);
return "hotel";
}
public String bookHotel()
{
booking = new Booking(hotel, user);
Calendar calendar = Calendar.getInstance();
booking.setCheckinDate( calendar.getTime() );
calendar.add(Calendar.DAY_OF_MONTH, 1);
booking.setCheckoutDate( calendar.getTime() );
return "book";
}
public String setBookingDetails()
{
if (booking==null || hotel==null) return "main";
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, -1);
if ( booking.getCheckinDate().before( calendar.getTime() ) )
{
facesMessages.add("Check in date must be a future date");
return null;
}
else if ( !booking.getCheckinDate().before( booking.getCheckoutDate() ) )
{
facesMessages.add("Check out date must be later than check in date");
return null;
}
else
{
return "confirm";
}
}
@End
public String confirm()
{
if (booking==null || hotel==null) return "main";
em.persist(booking);
facesMessages.add("Thank you, #{user.name}, your confimation number for #{hotel.name} is #{booking.id}");
log.info("New booking: #{booking.id} for #{user.username}");
events.raiseEvent("bookingConfirmed");
return "confirmed";
}
@End
public String cancel()
{
System.out.println("Cancelling hotel booking. ");
return "main";
}
@Destroy @Remove
public void destroy() {}
}
1.1 date: 2006/11/20 05:19:01; author: gavin; state: Exp;jboss-seam/examples/icefaces/src/org/jboss/seam/example/booking/HotelSearching.java
Index: HotelSearching.java
===================================================================
//$Id: HotelSearching.java,v 1.1 2006/11/20 05:19:01 gavin Exp $
package org.jboss.seam.example.booking;
import javax.ejb.Local;
import javax.faces.event.ValueChangeEvent;
@Local
public interface HotelSearching
{
public int getPageSize();
public void setPageSize(int pageSize);
public String getSearchString();
public void setSearchString(String searchString);
public void handleSearchStringChange(ValueChangeEvent e);
public String find();
public String nextPage();
public boolean isNextPageAvailable();
public void destroy();
}
1.1 date: 2006/11/20 05:19:01; author: gavin; state: Exp;jboss-seam/examples/icefaces/src/org/jboss/seam/example/booking/HotelSearchingAction.java
Index: HotelSearchingAction.java
===================================================================
//$Id: HotelSearchingAction.java,v 1.1 2006/11/20 05:19:01 gavin Exp $
package org.jboss.seam.example.booking;
import java.util.List;
import javax.ejb.Remove;
import javax.ejb.Stateful;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Destroy;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.datamodel.DataModel;
import javax.faces.event.ValueChangeEvent;
@Stateful
@Name("hotelSearch")
@Scope(ScopeType.SESSION)
@LoggedIn
public class HotelSearchingAction implements HotelSearching
{
@PersistenceContext
private EntityManager em;
private String searchString;
private int pageSize = 10;
private int page;
@DataModel
private List<Hotel> hotels;
public String find()
{
page = 0;
queryHotels();
return "main";
}
public String nextPage()
{
page++;
queryHotels();
return "main";
}
private void queryHotels()
{
String searchPattern = searchString==null ? "%" : '%' + searchString.toLowerCase().replace('*', '%') + '%';
hotels = em.createQuery("select h from Hotel h where lower(h.name) like :search or lower(h.city) like :search or lower(h.zip) like :search or lower(h.address) like :search")
.setParameter("search", searchPattern)
.setMaxResults(pageSize)
.setFirstResult( page * pageSize )
.getResultList();
}
public boolean isNextPageAvailable()
{
return hotels!=null && hotels.size()==pageSize;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public String getSearchString()
{
return searchString;
}
public void setSearchString(String searchString)
{
this.searchString = searchString;
}
public void handleSearchStringChange(ValueChangeEvent e) {
page = 0;
searchString = String.valueOf(e.getNewValue());
queryHotels();
}
@Destroy @Remove
public void destroy() {}
}
1.1 date: 2006/11/20 05:19:01; author: gavin; state: Exp;jboss-seam/examples/icefaces/src/org/jboss/seam/example/booking/LoggedIn.java
Index: LoggedIn.java
===================================================================
//$Id: LoggedIn.java,v 1.1 2006/11/20 05:19:01 gavin Exp $
package org.jboss.seam.example.booking;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import javax.interceptor.Interceptors;
@Target(TYPE)
@Retention(RUNTIME)
@Documented
@Interceptors(LoggedInInterceptor.class)
public @interface LoggedIn {}
1.1 date: 2006/11/20 05:19:01; author: gavin; state: Exp;jboss-seam/examples/icefaces/src/org/jboss/seam/example/booking/LoggedInInterceptor.java
Index: LoggedInInterceptor.java
===================================================================
//$Id: LoggedInInterceptor.java,v 1.1 2006/11/20 05:19:01 gavin Exp $
package org.jboss.seam.example.booking;
import java.lang.reflect.Method;
import javax.interceptor.AroundInvoke;
import javax.interceptor.InvocationContext;
import javax.faces.event.PhaseId;
import org.jboss.seam.annotations.Interceptor;
import org.jboss.seam.contexts.Contexts;
import org.jboss.seam.contexts.Lifecycle;
import org.jboss.seam.interceptors.BijectionInterceptor;
import org.jboss.seam.interceptors.BusinessProcessInterceptor;
import org.jboss.seam.interceptors.ConversationInterceptor;
import org.jboss.seam.interceptors.RemoveInterceptor;
import org.jboss.seam.interceptors.ValidationInterceptor;
@Interceptor(around={BijectionInterceptor.class, ValidationInterceptor.class,
ConversationInterceptor.class, BusinessProcessInterceptor.class},
within=RemoveInterceptor.class)
public class LoggedInInterceptor
{
@AroundInvoke
public Object checkLoggedIn(InvocationContext invocation) throws Exception
{
boolean isLoggedIn = Contexts.getSessionContext().get("loggedIn")!=null;
if ( Lifecycle.getPhaseId()==PhaseId.INVOKE_APPLICATION )
{
if (isLoggedIn)
{
return invocation.proceed();
}
else
{
return "login";
}
}
else
{
if ( isLoggedIn )
{
return invocation.proceed();
}
else
{
Method method = invocation.getMethod();
if ( method.getReturnType().equals(void.class) )
{
return null;
}
else
{
return method.invoke( invocation.getTarget(), invocation.getParameters() );
}
}
}
}
}
1.1 date: 2006/11/20 05:19:01; author: gavin; state: Exp;jboss-seam/examples/icefaces/src/org/jboss/seam/example/booking/Login.java
Index: Login.java
===================================================================
//$Id: Login.java,v 1.1 2006/11/20 05:19:01 gavin Exp $
package org.jboss.seam.example.booking;
import javax.ejb.Local;
@Local
public interface Login
{
public String login();
}
1.1 date: 2006/11/20 05:19:01; author: gavin; state: Exp;jboss-seam/examples/icefaces/src/org/jboss/seam/example/booking/LoginAction.java
Index: LoginAction.java
===================================================================
//$Id: LoginAction.java,v 1.1 2006/11/20 05:19:01 gavin Exp $
package org.jboss.seam.example.booking;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Out;
import org.jboss.seam.contexts.Contexts;
import org.jboss.seam.core.FacesMessages;
@Stateless
@Name("login")
public class LoginAction implements Login
{
@In @Out
private User user;
@PersistenceContext
private EntityManager em;
public String login()
{
List<User> results = em.createQuery("select u from User u where u.username=:username and u.password=:password")
.setParameter("username", user.getUsername())
.setParameter("password", user.getPassword())
.getResultList();
if ( results.size()==0 )
{
FacesMessages.instance().add("Invalid login");
return "login";
}
else
{
user = results.get(0);
Contexts.getSessionContext().set("loggedIn", true);
FacesMessages.instance().add("Welcome, #{user.name}");
return "main";
}
}
}
1.1 date: 2006/11/20 05:19:01; author: gavin; state: Exp;jboss-seam/examples/icefaces/src/org/jboss/seam/example/booking/Logout.java
Index: Logout.java
===================================================================
//$Id: Logout.java,v 1.1 2006/11/20 05:19:01 gavin Exp $
package org.jboss.seam.example.booking;
import javax.ejb.Local;
@Local
public interface Logout
{
public String logout();
}
1.1 date: 2006/11/20 05:19:01; author: gavin; state: Exp;jboss-seam/examples/icefaces/src/org/jboss/seam/example/booking/LogoutAction.java
Index: LogoutAction.java
===================================================================
//$Id: LogoutAction.java,v 1.1 2006/11/20 05:19:01 gavin Exp $
package org.jboss.seam.example.booking;
import javax.ejb.Stateless;
import org.jboss.seam.Seam;
import org.jboss.seam.annotations.Name;
@Stateless
@LoggedIn
@Name("logout")
public class LogoutAction implements Logout
{
public String logout()
{
Seam.invalidateSession();
return "login";
}
}
1.1 date: 2006/11/20 05:19:01; author: gavin; state: Exp;jboss-seam/examples/icefaces/src/org/jboss/seam/example/booking/Register.java
Index: Register.java
===================================================================
//$Id: Register.java,v 1.1 2006/11/20 05:19:01 gavin Exp $
package org.jboss.seam.example.booking;
import javax.ejb.Local;
@Local
public interface Register
{
public String register();
public String getVerify();
public void setVerify(String verify);
public void destroy();
}
1.1 date: 2006/11/20 05:19:01; author: gavin; state: Exp;jboss-seam/examples/icefaces/src/org/jboss/seam/example/booking/RegisterAction.java
Index: RegisterAction.java
===================================================================
//$Id: RegisterAction.java,v 1.1 2006/11/20 05:19:01 gavin Exp $
package org.jboss.seam.example.booking;
import static org.jboss.seam.ScopeType.EVENT;
import java.util.List;
import javax.ejb.Remove;
import javax.ejb.Stateful;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.jboss.seam.annotations.Destroy;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.core.FacesMessages;
@Stateful
@Scope(EVENT)
@Name("register")
public class RegisterAction implements Register
{
@In
private User user;
@PersistenceContext
private EntityManager em;
@In(create=true)
private transient FacesMessages facesMessages;
private String verify;
public String register()
{
if ( user.getPassword().equals(verify) )
{
List existing = em.createQuery("select u.username from User u where u.username=:username")
.setParameter("username", user.getUsername())
.getResultList();
if (existing.size()==0)
{
em.persist(user);
facesMessages.add("Successfully registered as #{user.username}");
return "login";
}
else
{
facesMessages.add("Username #{user.username} already exists");
return null;
}
}
else
{
facesMessages.add("verify", "Re-enter your password");
verify=null;
return null;
}
}
public String getVerify()
{
return verify;
}
public void setVerify(String verify)
{
this.verify = verify;
}
@Destroy @Remove
public void destroy() {}
}
1.1 date: 2006/11/20 05:19:01; author: gavin; state: Exp;jboss-seam/examples/icefaces/src/org/jboss/seam/example/booking/User.java
Index: User.java
===================================================================
//$Id: User.java,v 1.1 2006/11/20 05:19:01 gavin Exp $
package org.jboss.seam.example.booking;
import static org.jboss.seam.ScopeType.SESSION;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.validator.Length;
import org.hibernate.validator.NotNull;
import org.hibernate.validator.Pattern;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
@Entity
@Name("user")
@Scope(SESSION)
@Table(name="Customer")
public class User implements Serializable
{
private String username;
private String password;
private String name;
public User(String name, String password, String username)
{
this.name = name;
this.password = password;
this.username = username;
}
public User() {}
@NotNull
@Length(max=100)
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
@NotNull
@Length(min=5, max=15)
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password = password;
}
@Id
@Length(min=5, max=15)
@Pattern(regex="^\\w*$", message="not a valid username")
public String getUsername()
{
return username;
}
public void setUsername(String username)
{
this.username = username;
}
@Override
public String toString()
{
return "User(" + username + ")";
}
}
More information about the jboss-cvs-commits
mailing list