Class AbstractCompositeCache_8S<KM extends Serializable,TM extends Serializable,K1 extends Serializable,T1 extends Serializable,K2 extends Serializable,T2 extends Serializable,K3 extends Serializable,T3 extends Serializable,K4 extends Serializable,T4 extends Serializable,K5 extends Serializable,T5 extends Serializable,K6 extends Serializable,T6 extends Serializable,K7 extends Serializable,T7 extends Serializable,K8 extends Serializable,T8 extends Serializable>

java.lang.Object
name.matthewgreet.strutscommons.util.AbstractCompositeCache<KM,TM>
name.matthewgreet.strutscommons.util.AbstractCompositeCache_1S<KM,TM,K1,T1>
name.matthewgreet.strutscommons.util.AbstractCompositeCache_2S<KM,TM,K1,T1,K2,T2>
name.matthewgreet.strutscommons.util.AbstractCompositeCache_3S<KM,TM,K1,T1,K2,T2,K3,T3>
name.matthewgreet.strutscommons.util.AbstractCompositeCache_4S<KM,TM,K1,T1,K2,T2,K3,T3,K4,T4>
name.matthewgreet.strutscommons.util.AbstractCompositeCache_5S<KM,TM,K1,T1,K2,T2,K3,T3,K4,T4,K5,T5>
name.matthewgreet.strutscommons.util.AbstractCompositeCache_6S<KM,TM,K1,T1,K2,T2,K3,T3,K4,T4,K5,T5,K6,T6>
name.matthewgreet.strutscommons.util.AbstractCompositeCache_7S<KM,TM,K1,T1,K2,T2,K3,T3,K4,T4,K5,T5,K6,T6,K7,T7>
name.matthewgreet.strutscommons.util.AbstractCompositeCache_8S<KM,TM,K1,T1,K2,T2,K3,T3,K4,T4,K5,T5,K6,T6,K7,T7,K8,T8>
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
AbstractCompositeCache_9S

public abstract class AbstractCompositeCache_8S<KM extends Serializable,TM extends Serializable,K1 extends Serializable,T1 extends Serializable,K2 extends Serializable,T2 extends Serializable,K3 extends Serializable,T3 extends Serializable,K4 extends Serializable,T4 extends Serializable,K5 extends Serializable,T5 extends Serializable,K6 extends Serializable,T6 extends Serializable,K7 extends Serializable,T7 extends Serializable,K8 extends Serializable,T8 extends Serializable> extends AbstractCompositeCache_7S<KM,TM,K1,T1,K2,T2,K3,T3,K4,T4,K5,T5,K6,T6,K7,T7>

Template for web level, session-based caching a master, record list with eight slave lists for editing in various web pages. Subclasses of this, as well as defining the record types, typically set list finders and other Strategies for record list relationships and pagination that clients don't set themselves, depending on web page workflow. Instances are typically created as Singletons.

Generic types
KMType of primary key of master records
TMType of master records
K1Type of primary key of slave list 1 records
T1Type of slave list 1 records
K2Type of primary key of slave list 2 records
T2Type of slave list 2 records
etc.

As there are a bewildering set of configuration options and client Struts actions are expected to know their responsibilities in workflow, subclasses are a convenient Javadoc reference point for documenting this, such as below.

Example Javadoc
Slave list no Name Description Viewer action Base record Other base record data Page extension data Detail data Pagination mode List/id/size finder Page finder/ page extension assembler Single item finder
Master Board games Board games in Board Game Geek database up to 2022 ViewGameListAction GameDTO   Related designers Related artists, mechanics, and publishers Depends on search criteria Supplied by FindGameListByDesignerNameAction, FindGameListByFamileAction, FindGameListByNameContainsAction and FindGameListByRankAction GamePageByIdsFinder, GamePageExtensionAssembler GameItemFinder
1 Ratings distribution Counts of each user ratings of 0 to 10 ViewRatingDistributionListAction GameRatingDTO       Full list GameRatingByGameIdListFinder N/A  
2 User ratings Individual user ratings ViewUserRatingListAction UserRatingDTO   Owning username   Base record list Supplied by FindUserRatingListByUsernameContainsAction and FindUserRatingListByRatingAction UserRatingPageExtensionAssembler  

 

 <TABLE CLASS="main">
   <CAPTION>Board games</CAPTION>
   <TR>
     <TH>Slave list no</TH>
     <TH>Name</TH>
     <TH>Description</TH>
     <TH>Viewer action</TH>
     <TH>Base record</TH>
     <TH>Other base record data</TH>
     <TH>Page extension data</TH>
     <TH>Detail data</TH>
     <TH>Pagination mode</TH>
     <TH>List/id/size finder</TH>
     <TH>Page finder/ page extension assembler</TH>
     <TH>Single item finder</TH>
   </TR>
   <TR CLASS="row_odd">
     <TD>Master</TD>
     <TD>Board games</TD>
     <TD>Board games in Board Game Geek database up to 2022</TD>
     <TD><CODE>ViewGameListAction</CODE></TD>
     <TD><CODE>GameDTO</CODE></TD>
     <TD>&nbsp;</TD>
     <TD>Related designers</TD>
     <TD>Related artists, mechanics, and publishers</TD>
     <TD STYLE="text-align: center;">Depends on search criteria</TD>
     <TD STYLE="text-align: center;">Supplied by FindGameListByDesignerNameAction, FindGameListByFamileAction, FindGameListByNameContainsAction and FindGameListByRankAction</TD>
     <TD STYLE="text-align: center;">GamePageByIdsFinder, GamePageExtensionAssembler</TD>
     <TD STYLE="text-align: center;">GameItemFinder</TD>
   </TR>
   <TR CLASS="row_even">
     <TD>1</TD>
     <TD>Ratings distribution</TD>
     <TD>Counts of each user ratings of 0 to 10</TD>
     <TD><CODE>ViewRatingDistributionListAction</CODE></TD>
     <TD><CODE>GameRatingDTO</CODE></TD>
     <TD>&nbsp;</TD>
     <TD>&nbsp;</TD>
     <TD>&nbsp;</TD>
     <TD STYLE="text-align: center;">Full list</TD>
     <TD STYLE="text-align: center;">GameRatingByGameIdListFinder</TD>
     <TD STYLE="text-align: center;">N/A</TD>
     <TD STYLE="text-align: center;">&nbsp;</TD>
   </TR>
   <TR CLASS="row_odd">
     <TD>2</TD>
     <TD>User ratings</TD>
     <TD>Individual user ratings</TD>
     <TD><CODE>ViewUserRatingListAction</CODE></TD>
     <TD>UserRatingDTO</TD>
     <TD>&nbsp;</TD>
     <TD>Owning username</TD>
     <TD>&nbsp;</TD>
     <TD STYLE="text-align: center;">Base record list</TD>
     <TD STYLE="text-align: center;">Supplied by FindUserRatingListByUsernameContainsAction and FindUserRatingListByRatingAction</TD>
     <TD STYLE="text-align: center;">UserRatingPageExtensionAssembler</TD>
     <TD STYLE="text-align: center;">&nbsp;</TD>
   </TR>
 </TABLE>
 
See Also:
  • Constructor Details

  • Method Details

    • getSlaveListCache8Config

      protected abstract ListCache.ListCacheConfig<TM,K8,T8> getSlaveListCache8Config()
      Overridden by concrete implementations to configure slave list cache 8.
    • notifySlaveListCache8Changed

      protected void notifySlaveListCache8Changed(ListCache<?,?,T8> listCache)
      Notification that the slave list cache 8 has changed.
    • getSlaveListCache8

      public ListCache<TM,K8,T8> getSlaveListCache8()
      Returns cache of slave list 8.