Effective time plugin
Certain PolicyPeriod properties that denote effective dates and expiration dates are treated as
datetime properties with millisecond resolution. You can set the effective time (the clock time
on that day) along with the effective date. You can choose to have all effective dates always be the same time on
any day, such as midnight or 12:01 AM on that day. However, you can also choose to use more complex rules, and
even vary the rules based on the type of job or the jurisdiction if rules vary by state. PolicyCenter provides a
plugin interface that lets you set the effective time of day for various jobs. Modify the built-in version or
implement your own implementation of the IEffectiveTimePlugin plugin.
After a job starts, PolicyCenter calls this plugin to set the default effective and expiration times on the job’s
associated PolicyPeriod entity. The return value from each of this interface’s methods is a
Date object with its time component (HH:mm:ss) set to the desired time. The
day component of the Date is ignored. As a convenience, you can return null to
set the time component to midnight.
The plugin is called at varying points during job setup, according to the type of job. The main reason for this difference is to allow you to customize the user interface to allow effective/expiration time settings to be manually overridden. The following table compares the types of jobs, at what time the application calls the plugin, and why.
|
What time PolicyCenter calls the Effective Time plugin |
For which job types |
Description |
|---|---|---|
|
Before job is created |
Policy Change, Cancellation. These are jobs that mainly affect a period’s
|
The only place where |
|
After job is created |
Submission, Reinstatement, Rewrite, and Renewal. These are jobs that mainly affect a period’s
|
The effective/expiration time settings on |
|
Never |
Issuance, Audit |
This plugin is not called for the Issuance job because it is logically seen as a
continuation/completion of a Submission job. Consequently, its |
Each method is responsible for determining either an effective time or expiration time for a date given the date
and the job type. The methods for determining expiration time also take an effectiveDateTime
parameter, for cases in which the expiration time depends on the period’s PeriodStart. Each
method takes a PolicyPeriod entity parameter. Use this parameter to access other information,
such as state, line of business, or detecting other contractual periods on this policy. Finally, each method has a
strongly-typed job parameter, which can be used to access information specific to the associated job type.
The following table lists the required methods and their purpose. Each method returns a
java.util.Date object.
|
Method |
Description |
|---|---|
|
getCancellationEffectiveTime |
Gets effective time for a cancellation job. |
| getConversionRenewalEffectiveTime | Gets a renewal policy period's effective date for an imported legacy policy. |
| getConversionRenewalExpirationTime | Gets a renewal policy period's expiration date for an imported legacy policy. Includes an argument for the renewal policy period's effective date, as returned by getConversionRenewalEffectiveDate. |
|
getPolicyChangeEffectiveTime |
Gets effective time for a policy change job. |
|
getReinstatementEffectiveTime |
Gets effective time for a reinstatement job. |
|
getReinstatementExpirationTime |
Gets expiration time for a reinstatement job. Includes an argument for the reinstated policy period's effective date, as returned by getReinstatementEffectiveTime. |
|
getRenewalEffectiveTime |
Gets effective time for a renewal job. |
|
getRenewalExpirationTime |
Gets expiration time for a renewal job. Includes an argument the renewal policy period's effective date, as returned by getRenewalEffectiveTime. |
|
getRewriteEffectiveTime |
Gets effective time for a rewrite job. |
|
getRewriteExpirationTime |
Gets expiration time for a rewrite job. Includes an argument for the rewritten policy period's effective date, as returned by getRewriteEffectiveTime. |
| getRewriteNewAccountEffectiveTime | Gets a policy period's effective date for a policy that was rewritten to a new account. |
| getRewriteNewAccountExpirationTime | Gets a policy period's expiration date for a policy that was rewritten to a new account. Includes an argument for the policy period's effective date, as returned by getRewriteNewAccountEffectiveTime. |
|
getSubmissionEffectiveTime |
Gets effective time for a submission job. |
|
getSubmissionExpirationTime |
Gets expiration time for a submission job. Includes an argument for the policy period's effective date, as returned by getSubmissionEffectiveTime. |
PolicyCenter includes a built-in implementation of this interface with default behavior. The following table lists effective times for a new job and the key values on the PolicyPeriod entity for that job after PolicyCenter calls this plugin. The shaded cells are the effective times set explicitly by this plugin and the other cells indicate unchanged values or dependence on other properties.
Job |
Value of PeriodStart |
Value of PeriodEnd |
Value of EditEffectiveDate |
Value of CancellationDate |
|---|---|---|---|---|
Submission |
12:01 AM (changed by plugin) |
12:01 AM (changed by plugin) |
Same as this period's |
|
Policy Change |
Unchanged |
Unchanged |
12:01 AM |
Unchanged |
Cancellation |
Unchanged |
Unchanged |
If canceled flat, same as canceled period's |
Same as this period's |
Reinstatement |
Unchanged |
Same as based-on period's |
Same as based-on period's |
|
Rewrite |
Same as based-on period's |
If new-term rewrite, 12:01 AM. Otherwise, such as full-term or remainder-of-term
rewrite, same as based-on period's |
Same as this period's |
|
Renewal |
Same as previous period's |
12:01 AM (changed by plugin) |
Same as this period's |
|
