Advertisement
Guest User

Untitled

a guest
Apr 20th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.73 KB | None | 0 0
  1. package ee.taltech.iti0202.birdwatching.bird;
  2. import java.io.IOException;
  3. import java.nio.file.Files;
  4. import java.nio.file.Path;
  5. import java.nio.file.Paths;
  6. import java.util.List;
  7. import java.util.ArrayList;
  8. import java.util.stream.Collectors;
  9. import java.util.stream.Stream;
  10. public class BirdDataController {
  11. private List<String> birdsFromFile = new ArrayList<>();
  12. private List<Bird> birds = new ArrayList<>();
  13. public void readBirdDataFromCsvFile(String filename) {
  14. Path path = Paths.get(filename);
  15. try {
  16. Stream<String> lineStream = Files.lines(path);
  17. birdsFromFile = lineStream.filter(event -> event.length() > 0 && event.split(",").length == 5)
  18. .collect(Collectors.toList());
  19. for (int i = 0; i < birdsFromFile.size(); i++) {
  20. buildABird(birdsFromFile.get(i));
  21. }
  22. } catch (IOException e) {
  23. throw new BirdDataException("Error handling bird data", e);
  24. }
  25. }
  26. public void buildABird(String listOfBirds) {
  27. String[] birdComponents = listOfBirds.split(",");
  28. String birdName = birdComponents[0];
  29. double birdWeight = Double.valueOf(birdComponents[1]);
  30. double birdWingSpan = Double.valueOf(birdComponents[2]);
  31. Bird.Sex birdSex = Bird.Sex.valueOf(birdComponents[3].toUpperCase());
  32. Bird.Age birdAge = Bird.Age.valueOf(birdComponents[4].toUpperCase());
  33. Bird birdy = new BirdBuilder(birdName, birdWeight)
  34. .optWingspan(birdWingSpan)
  35. .optGender(birdSex)
  36. .optAge(birdAge)
  37. .build();
  38. birds.add(birdy);
  39. }
  40. public List<Bird> getBirds() {
  41. return birds;
  42. }
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement