001    package org.springframework.richclient.samples.showcase.exceptionhandling;
002    
003    import java.util.ArrayList;
004    import java.util.List;
005    
006    import org.hibernate.validator.InvalidStateException;
007    import org.hibernate.validator.InvalidValue;
008    import org.springframework.richclient.command.ActionCommand;
009    import org.springframework.richclient.exceptionhandling.HibernateValidatorDialogExceptionHandler;
010    
011    /**
012     * Throws an {@link InvalidStateException} with several {@link InvalidValue}s
013     * to show the {@link HibernateValidatorDialogExceptionHandler}.
014     *
015     * @author Jan Hoskens
016     *
017     */
018    public class HibernateExceptionHandlerCommand extends ActionCommand {
019    
020            /**
021             * Dummy bean for invalidValues.
022             */
023            public static class MyBean {
024    
025            }
026    
027            @Override
028            protected void doExecuteCommand() {
029                    List<InvalidValue> invalidExceptions = new ArrayList<InvalidValue>(5);
030                    MyBean myBean = new MyBean();
031                    invalidExceptions.add(new InvalidValue("first invalid message", MyBean.class, "firstProperty",
032                                    "first invalid value", myBean));
033                    invalidExceptions.add(new InvalidValue("second invalid message", MyBean.class, "secondProperty",
034                                    "second invalid value", myBean));
035                    invalidExceptions.add(new InvalidValue("third invalid message", MyBean.class, "thirdProperty",
036                                    "third invalid value", myBean));
037                    invalidExceptions.add(new InvalidValue("fourth invalid message", MyBean.class, "fourthProperty",
038                                    "fourth invalid value", myBean));
039                    invalidExceptions.add(new InvalidValue("fifth invalid message", MyBean.class, "fifthProperty",
040                                    "fifth invalid value", myBean));
041                    throw new InvalidStateException(invalidExceptions.toArray(new InvalidValue[] {}));
042            }
043    }