javax.ejb.ScheduleExpression Maven / Gradle / Ivy
Go to download
This artifact provides a single jar that contains all classes required to use remote Jakarta Enterprise Beans and Jakarta Messaging, including
all dependencies. It is intended for use by those not using maven, maven users should just import the Jakarta Enterprise Beans and
Jakarta Messaging BOM's instead (shaded JAR's cause lots of problems with maven, as it is very easy to inadvertently end up
with different versions on classes on the class path).
package javax.ejb;
import java.io.Serializable;
import java.util.Date;
/**
* A calendar-based timeout expression for an enterprise bean timer. See EJB specification for the full timer expression syntax.
*
* Each expression attribute has two overloaded setter methods, one that takes a String and one that takes an int. The int version is merely a convenience method for setting the attribute in the common case that the value is a simple integer.
*
* E.g.
*
* scheduleExpression.second(10)
*
* is semantically equivalent to
*
* scheduleExpression.second("10")
*
* None of the ScheduleExpression methods are required to be called. The defaults are :
*
* { second , minute , hour } : "0"
*
*
* { dayOfMonth, month, dayOfWeek, year } : "*"
*
*
* timezone : default JVM time zone
*
*
* startDate : no start date
*
*
* endDate : no end date
*
*
* @author Carlo de Wolf
* @version $Revision$
* @since 3.1
*/
public class ScheduleExpression implements Serializable
{
private static final long serialVersionUID = 1L;
private String dayOfMonth = "*";
private String dayOfWeek = "*";
private Date end;
private String hour = "0";
private String minute = "0";
private String month = "*";
private String second = "0";
private Date start;
private String timezone = "";
private String year = "*";
public ScheduleExpression dayOfMonth(int d)
{
this.dayOfMonth = Integer.toString(d);
return this;
}
public ScheduleExpression dayOfMonth(String d)
{
this.dayOfMonth = d;
return this;
}
public ScheduleExpression dayOfWeek(int d)
{
this.dayOfWeek = Integer.toString(d);
return this;
}
public ScheduleExpression dayOfWeek(String d)
{
this.dayOfWeek = d;
return this;
}
public ScheduleExpression end(Date e)
{
this.end = e;
return this;
}
public String getDayOfMonth()
{
return dayOfMonth;
}
public String getDayOfWeek()
{
return dayOfWeek;
}
public Date getEnd()
{
return end;
}
public String getHour()
{
return hour ;
}
public String getMinute()
{
return minute ;
}
public String getMonth()
{
return month ;
}
public String getSecond()
{
return second ;
}
public Date getStart()
{
return start;
}
public String getTimezone()
{
// As per EJB3.1 spec:
// [97] Note that annotation java.lang.String attributes use the empty string "" as a default,
// so the expression @Schedule(timezone="", ...) will result in a null value from the
// corresponding ScheduleExpression.getTimezone() method.
if (timezone != null && timezone.isEmpty())
{
return null;
}
return timezone;
}
public String getYear()
{
return year ;
}
public ScheduleExpression hour(int h)
{
this.hour = Integer.toString(h);
return this;
}
public ScheduleExpression hour(String h)
{
this.hour = h;
return this;
}
public ScheduleExpression minute(int m)
{
this.minute = Integer.toString(m);
return this;
}
public ScheduleExpression minute(String m)
{
this.minute = m;
return this;
}
public ScheduleExpression month(int m)
{
this.month = Integer.toString(m);
return this;
}
public ScheduleExpression month(String m)
{
this.month = m;
return this;
}
public ScheduleExpression second(int s)
{
this.second = Integer.toString(s);
return this;
}
public ScheduleExpression second(String s)
{
this.second = s;
return this;
}
public ScheduleExpression start(Date s)
{
this.start = s;
return this;
}
public ScheduleExpression timezone(String s)
{
this.timezone = s;
return this;
}
public ScheduleExpression year(int y)
{
this.year = Integer.toString(y);
return this;
}
public ScheduleExpression year(String y)
{
this.year = y;
return this;
}
@Override
public String toString()
{
StringBuilder sb = new StringBuilder("ScheduleExpression[");
sb.append("second=");
sb.append(this.second);
sb.append(" minute=");
sb.append(this.minute);
sb.append(" hour=");
sb.append(this.hour);
sb.append(" dayOfWeek=");
sb.append(this.dayOfWeek);
sb.append(" dayOfMonth=");
sb.append(this.dayOfMonth);
sb.append(" month=");
sb.append(this.month);
sb.append(" year=");
sb.append(this.year);
sb.append(" start=");
sb.append(this.start);
sb.append(" end=");
sb.append(this.end);
sb.append(" timezone=");
sb.append(this.timezone);
sb.append("]");
return sb.toString();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy