HelpdeskGrid 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.

Properties
name data type description
rows array of HelpdeskGridPojo
Properties inherited from Grid
total number The total number of pages returned
page number The current page
records number The total number of records
rowIds array of number Row ids of every row on every page

Example

{
  "rows" : [ {
    "id" : 12345,
    "openDate" : 12345,
    "subCategory" : {
      "name" : "...",
      "category" : { },
      "assignedGroup" : { },
      "jiraProjectKey" : "...",
      "errorAlias" : "...",
      "autoAssignee" : { },
      "id" : 12345,
      "version" : 12345,
      "violations" : [ { }, { } ]
    },
    "details" : "...",
    "status" : {
      "name" : "...",
      "id" : 12345,
      "version" : 12345,
      "violations" : [ { }, { } ]
    },
    "reportedBy" : {
      "answer" : "...",
      "emailed" : true,
      "newUser" : true,
      "temporaryPassword" : "...",
      "question" : "...",
      "obeUserName" : "...",
      "obePassword" : "...",
      "obeSyncId" : "...",
      "created" : 12345,
      "emailedWhen" : 12345,
      "travelgpaLogin" : "...",
      "groups" : [ { }, { } ],
      "active" : true,
      "prefix" : "...",
      "firstName" : "...",
      "lastName" : "...",
      "middleName" : "...",
      "suffix" : "...",
      "email" : "...",
      "tripitAuthorized" : true,
      "supportTitle" : "...",
      "automatedNotifications" : true,
      "enableHotelAttachment" : true,
      "atHomeNotificationMethod" : { },
      "inTravelNotificationMethod" : { },
      "cellPhoneNumber" : "...",
      "defaultClient" : { },
      "defaultPlannerGroup" : { },
      "showWelcomeDialog" : true,
      "siteTour" : true,
      "unusedTicketEmail" : true,
      "surveyEmail" : true,
      "wt0EmailEnabled" : true,
      "wt0EmailDaily" : true,
      "wt0EmailDay" : 12345,
      "wt0EmailHour" : 12345,
      "marketingSubscribed" : true,
      "responsive" : true,
      "businessPhoneNumber" : "...",
      "homePhoneNumber" : "...",
      "id" : 12345,
      "version" : 12345,
      "violations" : [ { }, { } ]
    },
    "assignedTo" : {
      "answer" : "...",
      "emailed" : true,
      "newUser" : true,
      "temporaryPassword" : "...",
      "question" : "...",
      "obeUserName" : "...",
      "obePassword" : "...",
      "obeSyncId" : "...",
      "created" : 12345,
      "emailedWhen" : 12345,
      "travelgpaLogin" : "...",
      "groups" : [ { }, { } ],
      "active" : true,
      "prefix" : "...",
      "firstName" : "...",
      "lastName" : "...",
      "middleName" : "...",
      "suffix" : "...",
      "email" : "...",
      "tripitAuthorized" : true,
      "supportTitle" : "...",
      "automatedNotifications" : true,
      "enableHotelAttachment" : true,
      "atHomeNotificationMethod" : { },
      "inTravelNotificationMethod" : { },
      "cellPhoneNumber" : "...",
      "defaultClient" : { },
      "defaultPlannerGroup" : { },
      "showWelcomeDialog" : true,
      "siteTour" : true,
      "unusedTicketEmail" : true,
      "surveyEmail" : true,
      "wt0EmailEnabled" : true,
      "wt0EmailDaily" : true,
      "wt0EmailDay" : 12345,
      "wt0EmailHour" : 12345,
      "marketingSubscribed" : true,
      "responsive" : true,
      "businessPhoneNumber" : "...",
      "homePhoneNumber" : "...",
      "id" : 12345,
      "version" : 12345,
      "violations" : [ { }, { } ]
    },
    "onHold" : true
  }, {
    "id" : 12345,
    "openDate" : 12345,
    "subCategory" : {
      "name" : "...",
      "category" : { },
      "assignedGroup" : { },
      "jiraProjectKey" : "...",
      "errorAlias" : "...",
      "autoAssignee" : { },
      "id" : 12345,
      "version" : 12345,
      "violations" : [ { }, { } ]
    },
    "details" : "...",
    "status" : {
      "name" : "...",
      "id" : 12345,
      "version" : 12345,
      "violations" : [ { }, { } ]
    },
    "reportedBy" : {
      "answer" : "...",
      "emailed" : true,
      "newUser" : true,
      "temporaryPassword" : "...",
      "question" : "...",
      "obeUserName" : "...",
      "obePassword" : "...",
      "obeSyncId" : "...",
      "created" : 12345,
      "emailedWhen" : 12345,
      "travelgpaLogin" : "...",
      "groups" : [ { }, { } ],
      "active" : true,
      "prefix" : "...",
      "firstName" : "...",
      "lastName" : "...",
      "middleName" : "...",
      "suffix" : "...",
      "email" : "...",
      "tripitAuthorized" : true,
      "supportTitle" : "...",
      "automatedNotifications" : true,
      "enableHotelAttachment" : true,
      "atHomeNotificationMethod" : { },
      "inTravelNotificationMethod" : { },
      "cellPhoneNumber" : "...",
      "defaultClient" : { },
      "defaultPlannerGroup" : { },
      "showWelcomeDialog" : true,
      "siteTour" : true,
      "unusedTicketEmail" : true,
      "surveyEmail" : true,
      "wt0EmailEnabled" : true,
      "wt0EmailDaily" : true,
      "wt0EmailDay" : 12345,
      "wt0EmailHour" : 12345,
      "marketingSubscribed" : true,
      "responsive" : true,
      "businessPhoneNumber" : "...",
      "homePhoneNumber" : "...",
      "id" : 12345,
      "version" : 12345,
      "violations" : [ { }, { } ]
    },
    "assignedTo" : {
      "answer" : "...",
      "emailed" : true,
      "newUser" : true,
      "temporaryPassword" : "...",
      "question" : "...",
      "obeUserName" : "...",
      "obePassword" : "...",
      "obeSyncId" : "...",
      "created" : 12345,
      "emailedWhen" : 12345,
      "travelgpaLogin" : "...",
      "groups" : [ { }, { } ],
      "active" : true,
      "prefix" : "...",
      "firstName" : "...",
      "lastName" : "...",
      "middleName" : "...",
      "suffix" : "...",
      "email" : "...",
      "tripitAuthorized" : true,
      "supportTitle" : "...",
      "automatedNotifications" : true,
      "enableHotelAttachment" : true,
      "atHomeNotificationMethod" : { },
      "inTravelNotificationMethod" : { },
      "cellPhoneNumber" : "...",
      "defaultClient" : { },
      "defaultPlannerGroup" : { },
      "showWelcomeDialog" : true,
      "siteTour" : true,
      "unusedTicketEmail" : true,
      "surveyEmail" : true,
      "wt0EmailEnabled" : true,
      "wt0EmailDaily" : true,
      "wt0EmailDay" : 12345,
      "wt0EmailHour" : 12345,
      "marketingSubscribed" : true,
      "responsive" : true,
      "businessPhoneNumber" : "...",
      "homePhoneNumber" : "...",
      "id" : 12345,
      "version" : 12345,
      "violations" : [ { }, { } ]
    },
    "onHold" : true
  } ],
  "total" : 12345,
  "page" : 12345,
  "records" : 12345,
  "rowIds" : [ 12345, 12345 ]
}