Guest User

Untitled

a guest
Oct 22nd, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.52 KB | None | 0 0
  1. import groovy.util.XmlSlurper
  2.  
  3. class Person {
  4. String firstName, lastName
  5. }
  6.  
  7. class Policy {
  8. String policyNo
  9. }
  10.  
  11. class Search {
  12.  
  13. def search(Person person) {
  14. //some implementation
  15. println "Searching for Person: $person.firstName $person.lastName"
  16. }
  17.  
  18. def search(Policy policy, Person person) {
  19. //some implementation
  20. println "Searching for Person and Policy: $person.firstName $person.lastName $policy.policyNo"
  21. }
  22.  
  23. def search(Person person, Policy policy) {
  24. //some implementation
  25. println "Searching for Person and Policy: $person.firstName $person.lastName $policy.policyNo"
  26. }
  27. }
  28.  
  29. //search with Person only
  30. def payloadString1 = '<message><header><criteria><type>Person</type><key>firstName</key><value>RJ</value></criteria><criteria><type>Person</type><key>lastName</key><value>Salicco</value></criteria></header></message>'
  31. //search with Policy and Person
  32. def payloadString2 = '<message><header><criteria><type>Policy</type><key>policyNo</key><value>123456789</value></criteria><criteria><type>Person</type><key>firstName</key><value>RJ</value></criteria><criteria><type>Person</type><key>lastName</key><value>Salicco</value></criteria></header></message>'
  33. //search with Person and Policy
  34. def payloadString3 = '<message><header><criteria><type>Person</type><key>firstName</key><value>Jim</value></criteria><criteria><type>Person</type><key>lastName</key><value>Bob</value></criteria><criteria><type>Policy</type><key>policyNo</key><value>987654321</value></criteria></header></message>'
  35.  
  36. def result1 = new XmlSlurper().parseText(payloadString1)
  37. def result2 = new XmlSlurper().parseText(payloadString2)
  38. def result3 = new XmlSlurper().parseText(payloadString3)
  39.  
  40. def handleResult(result) {
  41. def objectMap = [:]
  42. result.header.criteria.each {
  43. def existing = objectMap.get(it.type.text())
  44. if(existing) {
  45. existing.put(it.key.text(), it.value.text())
  46. } else {
  47. objectMap.put(it.type.text(), [(it.key.text()):(it.value.text())])
  48. }
  49. }
  50. objectMap
  51. }
  52.  
  53. def createObjectList(objectMap) {
  54. def objectList = []
  55. objectMap.each {
  56. def clazz = this.class.classLoader.loadClass("$it.key")
  57. objectList.add(clazz.newInstance(it.value))
  58. }
  59. objectList
  60. }
  61.  
  62. def objectList1 = createObjectList(handleResult(result1))
  63. def objectList2 = createObjectList(handleResult(result2))
  64. def objectList3 = createObjectList(handleResult(result3))
  65.  
  66. new Search().search(objectList1)
  67. new Search().search(objectList2)
  68. new Search().search(objectList3)
Add Comment
Please, Sign In to add comment