Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ee.taltech.iti0202.birdwatching.bird;
- import java.io.IOException;
- import java.nio.file.Files;
- import java.nio.file.Path;
- import java.nio.file.Paths;
- import java.util.List;
- import java.util.ArrayList;
- import java.util.stream.Collectors;
- import java.util.stream.Stream;
- public class BirdDataController {
- private List<String> birdsFromFile = new ArrayList<>();
- private List<Bird> birds = new ArrayList<>();
- public void readBirdDataFromCsvFile(String filename) {
- Path path = Paths.get(filename);
- try {
- Stream<String> lineStream = Files.lines(path);
- birdsFromFile = lineStream.filter(event -> event.length() > 0 && event.split(",").length == 5)
- .collect(Collectors.toList());
- for (int i = 0; i < birdsFromFile.size(); i++) {
- buildABird(birdsFromFile.get(i));
- }
- } catch (IOException e) {
- throw new BirdDataException("Error handling bird data", e);
- }
- }
- public void buildABird(String listOfBirds) {
- String[] birdComponents = listOfBirds.split(",");
- String birdName = birdComponents[0];
- double birdWeight = Double.valueOf(birdComponents[1]);
- double birdWingSpan = Double.valueOf(birdComponents[2]);
- Bird.Sex birdSex = Bird.Sex.valueOf(birdComponents[3].toUpperCase());
- Bird.Age birdAge = Bird.Age.valueOf(birdComponents[4].toUpperCase());
- Bird birdy = new BirdBuilder(birdName, birdWeight)
- .optWingspan(birdWingSpan)
- .optGender(birdSex)
- .optAge(birdAge)
- .build();
- birds.add(birdy);
- }
- public List<Bird> getBirds() {
- return birds;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement