blob: cf4dd8a8c4c4110f86a9bbfbfc2c82c379c5a7f6 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jst.javaee.ejb;
import java.util.List;
import javax.xml.datatype.XMLGregorianCalendar;
import org.eclipse.jst.javaee.core.Description;
import org.eclipse.jst.javaee.core.JavaEEObject;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Timer Type</b></em>'.
* <!-- end-user-doc -->
*
* <!-- begin-model-doc -->
*
*
* The timerType specifies an enterprise bean timer. Each
* timer is automatically created by the container upon
* deployment. Timer callbacks occur based on the
* schedule attributes. All callbacks are made to the
* timeout-method associated with the timer.
*
* A timer can have an optional start and/or end date. If
* a start date is specified, it takes precedence over the
* associated timer schedule such that any matching
* expirations prior to the start time will not occur.
* Likewise, no matching expirations will occur after any
* end date. Start/End dates are specified using the
* XML Schema dateTime type, which follows the ISO-8601
* standard for date(and optional time-within-the-day)
* representation.
*
* An optional flag can be used to control whether
* this timer has persistent(true) delivery semantics or
* non-persistent(false) delivery semantics. If not specified,
* the value defaults to persistent(true).
*
* A time zone can optionally be associated with a timer.
* If specified, the timer's schedule is evaluated in the context
* of that time zone, regardless of the default time zone in which
* the container is executing. Time zones are specified as an
* ID string. The set of required time zone IDs is defined by
* the Zone Name(TZ) column of the public domain zoneinfo database.
*
* An optional info string can be assigned to the timer and
* retrieved at runtime through the Timer.getInfo() method.
*
* The timerType can only be specified on stateless session
* beans, singleton session beans, and message-driven beans.
*
* @since Java EE 6, EJB 3.1
*
* <!-- end-model-doc -->
*
* <p>
* The following features are supported:
* <ul>
* <li>{@link org.eclipse.jst.javaee.ejb.TimerType#getDescription <em>Description</em>}</li>
* <li>{@link org.eclipse.jst.javaee.ejb.TimerType#getSchedule <em>Schedule</em>}</li>
* <li>{@link org.eclipse.jst.javaee.ejb.TimerType#getStart <em>Start</em>}</li>
* <li>{@link org.eclipse.jst.javaee.ejb.TimerType#getEnd <em>End</em>}</li>
* <li>{@link org.eclipse.jst.javaee.ejb.TimerType#getTimeoutMethod <em>Timeout Method</em>}</li>
* <li>{@link org.eclipse.jst.javaee.ejb.TimerType#isPersistent <em>Persistent</em>}</li>
* <li>{@link org.eclipse.jst.javaee.ejb.TimerType#getTimezone <em>Timezone</em>}</li>
* <li>{@link org.eclipse.jst.javaee.ejb.TimerType#getInfo <em>Info</em>}</li>
* <li>{@link org.eclipse.jst.javaee.ejb.TimerType#getId <em>Id</em>}</li>
* </ul>
* </p>
*
* @see org.eclipse.jst.javaee.ejb.internal.metadata.EjbPackage#getTimerType()
* @extends JavaEEObject
* @generated
*/
public interface TimerType extends JavaEEObject {
/**
* Returns the value of the '<em><b>Description</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.jst.javaee.core.Description}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Description</em>' containment reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Description</em>' containment reference list.
* @see org.eclipse.jst.javaee.ejb.internal.metadata.EjbPackage#getTimerType_Description()
* @generated
*/
List<Description> getDescription();
/**
* Returns the value of the '<em><b>Schedule</b></em>' containment reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Schedule</em>' containment reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Schedule</em>' containment reference.
* @see #setSchedule(TimerScheduleType)
* @see org.eclipse.jst.javaee.ejb.internal.metadata.EjbPackage#getTimerType_Schedule()
* @generated
*/
TimerScheduleType getSchedule();
/**
* Sets the value of the '{@link org.eclipse.jst.javaee.ejb.TimerType#getSchedule <em>Schedule</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Schedule</em>' containment reference.
* @see #getSchedule()
* @generated
*/
void setSchedule(TimerScheduleType value);
/**
* Returns the value of the '<em><b>Start</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Start</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Start</em>' attribute.
* @see #setStart(XMLGregorianCalendar)
* @see org.eclipse.jst.javaee.ejb.internal.metadata.EjbPackage#getTimerType_Start()
* @generated
*/
XMLGregorianCalendar getStart();
/**
* Sets the value of the '{@link org.eclipse.jst.javaee.ejb.TimerType#getStart <em>Start</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Start</em>' attribute.
* @see #getStart()
* @generated
*/
void setStart(XMLGregorianCalendar value);
/**
* Returns the value of the '<em><b>End</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>End</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>End</em>' attribute.
* @see #setEnd(XMLGregorianCalendar)
* @see org.eclipse.jst.javaee.ejb.internal.metadata.EjbPackage#getTimerType_End()
* @generated
*/
XMLGregorianCalendar getEnd();
/**
* Sets the value of the '{@link org.eclipse.jst.javaee.ejb.TimerType#getEnd <em>End</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>End</em>' attribute.
* @see #getEnd()
* @generated
*/
void setEnd(XMLGregorianCalendar value);
/**
* Returns the value of the '<em><b>Timeout Method</b></em>' containment reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Timeout Method</em>' containment reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Timeout Method</em>' containment reference.
* @see #setTimeoutMethod(NamedMethodType)
* @see org.eclipse.jst.javaee.ejb.internal.metadata.EjbPackage#getTimerType_TimeoutMethod()
* @generated
*/
NamedMethodType getTimeoutMethod();
/**
* Sets the value of the '{@link org.eclipse.jst.javaee.ejb.TimerType#getTimeoutMethod <em>Timeout Method</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Timeout Method</em>' containment reference.
* @see #getTimeoutMethod()
* @generated
*/
void setTimeoutMethod(NamedMethodType value);
/**
* Returns the value of the '<em><b>Persistent</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Persistent</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Persistent</em>' attribute.
* @see #isSetPersistent()
* @see #unsetPersistent()
* @see #setPersistent(boolean)
* @see org.eclipse.jst.javaee.ejb.internal.metadata.EjbPackage#getTimerType_Persistent()
* @generated
*/
boolean isPersistent();
/**
* Sets the value of the '{@link org.eclipse.jst.javaee.ejb.TimerType#isPersistent <em>Persistent</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Persistent</em>' attribute.
* @see #isSetPersistent()
* @see #unsetPersistent()
* @see #isPersistent()
* @generated
*/
void setPersistent(boolean value);
/**
* Unsets the value of the '{@link org.eclipse.jst.javaee.ejb.TimerType#isPersistent <em>Persistent</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isSetPersistent()
* @see #isPersistent()
* @see #setPersistent(boolean)
* @generated
*/
void unsetPersistent();
/**
* Returns whether the value of the '{@link org.eclipse.jst.javaee.ejb.TimerType#isPersistent <em>Persistent</em>}' attribute is set.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return whether the value of the '<em>Persistent</em>' attribute is set.
* @see #unsetPersistent()
* @see #isPersistent()
* @see #setPersistent(boolean)
* @generated
*/
boolean isSetPersistent();
/**
* Returns the value of the '<em><b>Timezone</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Timezone</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Timezone</em>' attribute.
* @see #setTimezone(String)
* @see org.eclipse.jst.javaee.ejb.internal.metadata.EjbPackage#getTimerType_Timezone()
* @generated
*/
String getTimezone();
/**
* Sets the value of the '{@link org.eclipse.jst.javaee.ejb.TimerType#getTimezone <em>Timezone</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Timezone</em>' attribute.
* @see #getTimezone()
* @generated
*/
void setTimezone(String value);
/**
* Returns the value of the '<em><b>Info</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Info</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Info</em>' attribute.
* @see #setInfo(String)
* @see org.eclipse.jst.javaee.ejb.internal.metadata.EjbPackage#getTimerType_Info()
* @generated
*/
String getInfo();
/**
* Sets the value of the '{@link org.eclipse.jst.javaee.ejb.TimerType#getInfo <em>Info</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Info</em>' attribute.
* @see #getInfo()
* @generated
*/
void setInfo(String value);
/**
* Returns the value of the '<em><b>Id</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Id</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Id</em>' attribute.
* @see #setId(String)
* @see org.eclipse.jst.javaee.ejb.internal.metadata.EjbPackage#getTimerType_Id()
* @generated
*/
String getId();
/**
* Sets the value of the '{@link org.eclipse.jst.javaee.ejb.TimerType#getId <em>Id</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Id</em>' attribute.
* @see #getId()
* @generated
*/
void setId(String value);
} // TimerType