Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Following is the code that I came up with (after suggestions from Ajinkya and Alex):</p> <p>Customized Annotation:</p> <pre><code>import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import javax.validation.Constraint; import javax.validation.Payload; @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Constraint(validatedBy=HomePageEmptyMessageValidator.class) public @interface HomePageEmptyMessage { String message() default ""; Class&lt;?&gt;[] groups() default {}; Class&lt;? extends Payload&gt;[] payload() default {}; } </code></pre> <p>Customized Validator:</p> <pre><code>import javax.validation.ConstraintValidator; import javax.validation.ConstraintValidatorContext; public class HomePageEmptyMessageValidator implements ConstraintValidator&lt;HomePageEmptyMessage, EmergencyMessages&gt; { @Override public void initialize(HomePageEmptyMessage homePageEmptyMessage) { } @Override public boolean isValid(EmergencyMessages emergencyMessages, ConstraintValidatorContext context) { if (emergencyMessages == null) { return false; } Integer messageEnabled = emergencyMessages.getMessagesEnabled(); if (messageEnabled != null) { if (messageEnabled == 1) { String homePageMessage = emergencyMessages.getHomePageMessage(); if (Util.isNullOrEmpty(homePageMessage)) { return false; } else { return true; } } else { return true; } } return false; } } </code></pre> <p>Usage of customized annotation in the code:</p> <pre><code>@Entity @Table(name="emergency_messages") @HomePageEmptyMessage(message="Home page annoucement cannot be empty if the Display Announcement is set to Yes") public class EmergencyMessages implements Serializable { private static final long serialVersionUID = -7870767517772161300L; @Id @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name="id", nullable=false) private Integer id; @Column(name="home_page_message") private String homePageMessage; @Range(min=0, max=1, message="Please select one of the display announcement value") @Column(name="messages_enabled") private Integer messagesEnabled; } </code></pre> <p>I hope it helps someone.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload