Hi Guys,

I've got a series of rules that compile fine but no rules seem to fire. The
following is the rule file

/**************************
Working times rules
***************************/

package au.com.codeprotechnology.online.ejb3.logic.crm

import au.com.codeprotechnology.online.bi.exception.ValidationError
import au.com.codeprotechnology.online.persistence.ejb.crm.WorkingTimes
import
au.com.codeprotechnology.online.ejb3.logic.constants.WorkingTimesConstants
import java.util.Calendar

rule "Invalid day of week"

   when
       obj : WorkingTimes(val : primaryKey -> (val.getDayId() == null ||
val.getDayId().intValue() < Calendar.SUNDAY || val.getDayId().intValue() >
Calendar.SATURDAY))
   then
       obj.addValidationError(new ValidationError(
WorkingTimesConstants.MSG_KEY_INVALID_DAY_OF_WEEK,
WorkingTimesConstants.MSG_INVALID_DAY_OF_WEEK));

end

rule "Invalid start hour"

   when
       obj : WorkingTimes(val : startHour -> (val.intValue() <
WorkingTimesConstants.MIN_HOUR || val.intValue() >
WorkingTimesConstants.MAX_HOUR))
   then
       obj.addValidationError(new ValidationError(
WorkingTimesConstants.MSG_KEY_INVALID_START_HOUR,
WorkingTimesConstants.MSG_INVALID_START_HOUR));

end

rule "Invalid start min"

   when
       obj : WorkingTimes(val : startMin -> (val.intValue() <
WorkingTimesConstants.MIN_MINUTE || val.intValue() >
WorkingTimesConstants.MAX_MINUTE))
   then
       obj.addValidationError(new ValidationError(
WorkingTimesConstants.MSG_KEY_INVALID_START_MIN,
WorkingTimesConstants.MSG_INVALID_START_MIN));

end

rule "Invalid stop hour"

   when
       obj : WorkingTimes(val : stopHour -> (val.intValue() <
WorkingTimesConstants.MIN_HOUR || val.intValue() >
WorkingTimesConstants.MAX_HOUR))
   then
       obj.addValidationError(new ValidationError(
WorkingTimesConstants.MSG_KEY_INVALID_STOP_HOUR,
WorkingTimesConstants.MSG_INVALID_STOP_HOUR));


end

rule "Invalid stop min"

   when
       obj : WorkingTimes(val : stopMin -> (val.intValue() <
WorkingTimesConstants.MIN_MINUTE || val.intValue() >
WorkingTimesConstants.MAX_MINUTE))
   then
       obj.addValidationError(new ValidationError(
WorkingTimesConstants.MSG_KEY_INVALID_STOP_MIN,
WorkingTimesConstants.MSG_INVALID_STOP_MIN));

end

And this is the object I'm trying to assert

package au.com.codeprotechnology.online.persistence.ejb.crm;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;

import au.com.codeprotechnology.online.persistence.AbstractPersistenceBean;

@Entity
@Table(name = "WORKING_TIMES")
public class WorkingTimes extends AbstractPersistenceBean implements
Serializable {

   private static final long serialVersionUID = -4972337627878376131L;
   private WorkingTimesPK primaryKey;
   private Integer startHour;
   private Integer stopMin;
   private Integer stopHour;
   private Integer startMin;


   public WorkingTimes() {
       this.primaryKey = new WorkingTimesPK();
   }

   @EmbeddedId
   public WorkingTimesPK getPrimaryKey() {
       return primaryKey;
   }

   public void setPrimaryKey(WorkingTimesPK primaryKey) {
       this.primaryKey = primaryKey;
   }

   @Column(name = "START_HOUR")
   public Integer getStartHour() {
       return startHour;
   }

   public void setStartHour(Integer startHour) {
       this.startHour = startHour;
   }

   @Column(name = "START_MIN")
   public Integer getStartMin() {
       return startMin;
   }

   public void setStartMin(Integer startMin) {
       this.startMin = startMin;
   }

   @Column(name = "STOP_HOUR")
   public Integer getStopHour() {
       return stopHour;
   }

   public void setStopHour(Integer stopHour) {
       this.stopHour = stopHour;
   }

   @Column(name = "STOP_MIN")
   public Integer getStopMin() {
       return stopMin;
   }

   public void setStopMin(Integer stopMin) {
       this.stopMin = stopMin;
   }

   @Embeddable
   public static class WorkingTimesPK implements Serializable {

       private static final long serialVersionUID = -567654057787556805L;
       private Long supplierId;
       private Integer dayId;

       @Column(name = "DAY_ID")
       public Integer getDayId() {
           return dayId;
       }

       public void setDayId(Integer dayId) {
           this.dayId = dayId;
       }

       @Column(name = "PREF_ID")
       public Long getSupplierId() {
           return supplierId;
       }

       public void setSupplierId(Long supplierId) {
           this.supplierId = supplierId;
       }
   }

   /**
    * Not Implemented
    */

   @Transient
   public Long getId() {
       return null;
   }

   public void setId(Long id) {

   }
}

I've got stacks of similar rules and entity beans and it all works fine but
this one doesn't seem to want to play. Does anybody have any ideas as to
what is missing?
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to