Advertisement
Guest User

Untitled

a guest
Sep 30th, 2016
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.57 KB | None | 0 0
  1. @Path("/birdslist")
  2. public class BirdsList extends Birds {
  3.  
  4. @GET
  5. @Path("/all")
  6. @Produces("text/html")
  7. public String all() {
  8. Iterator iterator = birdnames.keySet().iterator();
  9. String page = "<html><title>All Birds</title><body>";
  10. page += "<p>This is the list of all birds. <br> Click the taxonomy number of the bird you wish to view in detail.</p>";
  11. while(iterator.hasNext()){
  12. Object key = iterator.next();
  13. String value = birdnames.get(key);
  14. }
  15. for (String key : birdnames.keySet()) {
  16. page += String.format("<p>Name:%s <br> Taxonomy Number:<a href=%s>%s</a></p>",birdnames.get(key),key,key);
  17. getBird(key);
  18. }
  19. page += "</body></html>";
  20. return page;
  21. }
  22.  
  23. @GET
  24. System.out.println;
  25. @Path("{key}")
  26. System.out.println;
  27. @Produces("text/html")
  28. public String getBird(@PathParam("key") String key) {
  29. Object fam = 0;
  30. Object ord = 0;
  31. HashSet set1;
  32. HashSet set2;
  33. for (String key2 : family.keySet()){
  34. set1 = family.get(key2);
  35. if(set1.contains(key) == true){
  36. fam = key2;
  37. break;
  38. }
  39. }
  40. for (String key3 : order.keySet()){
  41. set2 = family.get(key3);
  42. if(set2.contains(key) == true){
  43. ord = key3;
  44. break;
  45. }
  46. }
  47. String page = "<html><title>Bird #: {key}</title><body>";
  48. page += String.format("<p>%s</p>",key);
  49. page += String.format("<p>This page contains info on the %s</p>",birdnames.get(key));
  50. page += String.format("<p>Name:%s <br> Taxonomy Number:%s <br> Family:%s <br> Order:%s</p>",birdnames.get(key),key,fam,ord);
  51. page += "<p>Please click <a href=all>here</a> to return to the list of all birds.</p>";
  52. page += "</body></html>";
  53. return page;
  54. }
  55. }
  56.  
  57. public Birds() {
  58. // long path to eBirds assuming Maven "mvn exec:java" is many levels up
  59. String fileName = "src/main/java/com/example/rest/eBirds.csv";
  60. boolean firstLine = true;
  61. this.birdnames = new HashMap<String,String>();
  62. this.family = new HashMap<String,HashSet<String>>();
  63. this.order = new HashMap<String,HashSet<String>>();
  64. try {
  65. BufferedReader R = new BufferedReader(new FileReader(fileName));
  66. String line;
  67. while (true) {
  68. line = R.readLine();
  69. if (line == null) break;
  70. if (firstLine) { // ignore the first line, it's not a bird
  71. firstLine = false;
  72. continue;
  73. }
  74. String[] fields = line.split(",");
  75. if (!fields[1].equalsIgnoreCase("species")) continue; // ignore all but species records
  76. birdnames.put(fields[0],fields[4]); // add this bird to name table
  77.  
  78. // extract the order name from fields[6]
  79. String ordername = fields[6];
  80. if (!order.containsKey(ordername)) { // if needed, create first-time order set
  81. order.put(ordername,new HashSet<String>());
  82. }
  83. order.get(ordername).add(fields[0]); // new order member by number for lookup
  84.  
  85. // extract the family name from fields[7] -- removing quotes first if needed
  86. String famname = fields[7].replace(""","");
  87. if (!family.containsKey(famname)) { // if needed, create first-time family set
  88. family.put(famname,new HashSet<String>());
  89. }
  90. family.get(famname).add(fields[0]); // new family member by number for lookup
  91. }
  92. }
  93. catch (IOException e) { System.out.println("Stack trace: " + e); }
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement