itinerarySavingsGrid Data Type

Generic grid data structure. The data structure is mostly adapted to the jQgrid json format, but it can be adapted to any reasonable grid library, with a little effort. The optimal way to handle this would be with generics, just passing in the domain object name into an . . . . But Wait! JaxB doesn't really know what to do with generic declarations on its xml elements, so we do the next best thing. Every time we want to create a new grid instance, we create a new subclass and reimplement nearly identical functionality, but with a few small changes. Those changes being the pojo class we use for the rows property, and the buildRows function that we use to populate rows, That really should be the only change in the subclasses. If somewhere down the road, someone finds a way to easily mashall generics through Jaxb, the buildrows functionality could easily be promoted up here.

Namespace
(Default)
Schema
ns0.xsd
Properties
name data type type namespace min/max occurs description
rows list of itinerarySavingsPojo element 0/unbounded  
Properties inherited from grid
page long element 0/1 The current page
records long element 0/1 The total number of records
rowIds list of long element 0/unbounded Row ids of every row on every page
total long element 0/1 The total number of pages returned

Example

<i----->
  <rows>
    <itinerary>
      <recordLocator>...</recordLocator>
      <agentName>...</agentName>
      <client/>
      <office/>
      <departureDate>...</departureDate>
      <completionDate>...</completionDate>
      <importDate>...</importDate>
      <gds/>
      <hide>...</hide>
      <citySummary>...</citySummary>
      <departureCity/>
      <arrivalCity/>
      <arrivalDate>...</arrivalDate>
      <utcArrivalDate>...</utcArrivalDate>
      <startDate>...</startDate>
      <endDate>...</endDate>
      <purpose>...</purpose>
      <explanation>...</explanation>
      <authorizationCode>...</authorizationCode>
      <costCenterCode>...</costCenterCode>
      <departmentCode>...</departmentCode>
      <clientCode>...</clientCode>
      <regionCode>...</regionCode>
      <billable>...</billable>
      <travelerCode>...</travelerCode>
      <managerCode>...</managerCode>
      <projectCode>...</projectCode>
    </itinerary>
    <id>...</id>
    <primaryPassenger>
      <age>...</age>
      <customNameData>...</customNameData>
      <prefix>...</prefix>
      <firstName>...</firstName>
      <middleName>...</middleName>
      <lastName>...</lastName>
      <suffix>...</suffix>
      <worldspanName>...</worldspanName>
      <itinerary/>
      <user/>
      <email>...</email>
      <position>...</position>
      <passportLastDigits>...</passportLastDigits>
      <knownTravelerNumberLastDigits>...</knownTravelerNumberLastDigits>
    </primaryPassenger>
    <airSavings>...</airSavings>
    <carSavings>...</carSavings>
    <hotelSavings>...</hotelSavings>
    <miscSavings>...</miscSavings>
    <recordLocator>...</recordLocator>
    <voidSavings>...</voidSavings>
    <totalSavings>...</totalSavings>
    <importDate>...</importDate>
  </rows>
  <total>...</total>
  <page>...</page>
  <records>...</records>
  <rowIds>...</rowIds>
</i----->