package org.apereo.cas.ticket; /** * This is {@link TicketDefinitionProperties}. Ticket definition describes additional Properties and misc settings * that may be associated with a given ticket to be used by registries. Each CAS module on start up * has the ability to register/alter ticket metadata that may be requires for its own specific functionality. * Given each CAS module may decide to create many forms of tickets, this facility is specifically provided * to dynamically register ticket types and associated properties so modules that deal with registry functionality * wouldn't have to statically link to all modules and APIs. * * Ticket definition properties are intended to be treated as generally as possible, so common settings * can be shared across all modules that may have similar needs. When adding additional properties, be careful * to not tie the setting to a specific technology or terminology, and opt for generality as much as possible. * * @author Misagh Moayyed * @see TicketCatalog * @since 5.1.0 */ public interface TicketDefinitionProperties { /** * Generically describes if this ticket is linked to all ticket entities * such that for normal CRUD operations, cascades may be required. * * @return true /false */ boolean isCascade(); /** * Sets cascade ticket. * * @param cascadeTicket the cascade ticket */ void setCascade(boolean cascadeTicket); /** * Generic cache/storage name this ticket may want to associate with itself * in cases where persistence is handled by an underlying cache, etc. * * @return the cache name */ String getStorageName(); /** * Sets store name. * * @param storageName the cache name */ void setStorageName(String storageName); /** * Describes how long may this ticket definition * exist in the underlying storage unit. For cache-based storage * services, this may translate to idle/max time-to-live, etc. * @return the long */ long getStorageTimeout(); /** * Sets cache timeout. * * @param timeout the cache timeout */ void setStorageTimeout(long timeout); }