Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Path("/birdslist")
- public class BirdsList extends Birds {
- @GET
- @Path("/all")
- @Produces("text/html")
- public String all() {
- Iterator iterator = birdnames.keySet().iterator();
- String page = "<html><title>All Birds</title><body>";
- page += "<p>This is the list of all birds. <br> Click the taxonomy number of the bird you wish to view in detail.</p>";
- while(iterator.hasNext()){
- Object key = iterator.next();
- String value = birdnames.get(key);
- }
- for (String key : birdnames.keySet()) {
- page += String.format("<p>Name:%s <br> Taxonomy Number:<a href=%s>%s</a></p>",birdnames.get(key),key,key);
- getBird(key);
- }
- page += "</body></html>";
- return page;
- }
- @GET
- System.out.println;
- @Path("{key}")
- System.out.println;
- @Produces("text/html")
- public String getBird(@PathParam("key") String key) {
- Object fam = 0;
- Object ord = 0;
- HashSet set1;
- HashSet set2;
- for (String key2 : family.keySet()){
- set1 = family.get(key2);
- if(set1.contains(key) == true){
- fam = key2;
- break;
- }
- }
- for (String key3 : order.keySet()){
- set2 = family.get(key3);
- if(set2.contains(key) == true){
- ord = key3;
- break;
- }
- }
- String page = "<html><title>Bird #: {key}</title><body>";
- page += String.format("<p>%s</p>",key);
- page += String.format("<p>This page contains info on the %s</p>",birdnames.get(key));
- page += String.format("<p>Name:%s <br> Taxonomy Number:%s <br> Family:%s <br> Order:%s</p>",birdnames.get(key),key,fam,ord);
- page += "<p>Please click <a href=all>here</a> to return to the list of all birds.</p>";
- page += "</body></html>";
- return page;
- }
- }
- public Birds() {
- // long path to eBirds assuming Maven "mvn exec:java" is many levels up
- String fileName = "src/main/java/com/example/rest/eBirds.csv";
- boolean firstLine = true;
- this.birdnames = new HashMap<String,String>();
- this.family = new HashMap<String,HashSet<String>>();
- this.order = new HashMap<String,HashSet<String>>();
- try {
- BufferedReader R = new BufferedReader(new FileReader(fileName));
- String line;
- while (true) {
- line = R.readLine();
- if (line == null) break;
- if (firstLine) { // ignore the first line, it's not a bird
- firstLine = false;
- continue;
- }
- String[] fields = line.split(",");
- if (!fields[1].equalsIgnoreCase("species")) continue; // ignore all but species records
- birdnames.put(fields[0],fields[4]); // add this bird to name table
- // extract the order name from fields[6]
- String ordername = fields[6];
- if (!order.containsKey(ordername)) { // if needed, create first-time order set
- order.put(ordername,new HashSet<String>());
- }
- order.get(ordername).add(fields[0]); // new order member by number for lookup
- // extract the family name from fields[7] -- removing quotes first if needed
- String famname = fields[7].replace(""","");
- if (!family.containsKey(famname)) { // if needed, create first-time family set
- family.put(famname,new HashSet<String>());
- }
- family.get(famname).add(fields[0]); // new family member by number for lookup
- }
- }
- catch (IOException e) { System.out.println("Stack trace: " + e); }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement