Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Collections;
- import java.util.HashMap;
- import java.util.Scanner;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- /**
- *
- * @author lmoentje
- */
- public class Facebook {
- private HashMap<String, Account> accounts;
- public Facebook(){
- this.accounts= new HashMap<>();
- }
- public HashMap<String, Account> getAccounts() {
- return accounts;
- }
- public Facebook(String accountsFileName) throws FileNotFoundException, FacebookException//vergeet de throws FBE niet, anders E niet gedeclareerd
- {
- accounts= new HashMap<>();
- Scanner inputstream = null;
- File bestand = new File(accountsFileName);
- try
- {
- inputstream = new Scanner(bestand);
- }
- catch(FileNotFoundException e)
- {
- throw new FileNotFoundException(accountsFileName);
- }
- while(inputstream.hasNextLine())
- {
- String line = inputstream.nextLine();
- String[] ary = line.split(";");
- if(ary.length != 6)
- throw new FacebookException(bestand);
- String firstName = ary[0];
- String lastName = ary[1];
- String gender = ary[2];
- String mail = ary[3];
- String login = ary[4];
- String password = ary[5];
- if(accounts.containsKey(login))
- throw new FacebookException(bestand);
- addAccount(firstName, lastName, gender, mail, login, password);
- }
- }
- public void addAccount(String first, String last, String gender, String email, String login, String password) throws FacebookException{
- Account a = new Account(first, last, gender, email, login, password);
- if(accounts.containsKey(a.getLogin()))
- throw new FacebookException(a);
- accounts.put(login, a);
- }
- public void addFriendship(Account ac1, String login2) throws FacebookException{
- if(!accounts.containsKey(login2)){
- throw new FacebookException(login2);
- }
- if(!accounts.containsValue(ac1))
- throw new FacebookException(ac1.getLogin());
- ac1.getFriends().add(accounts.get(login2));
- accounts.get(login2).getFriends().add(ac1);
- }
- public boolean removeFriendship(String login1, String login2) throws FacebookException{
- boolean rem = false;
- if(!accounts.containsKey(login2)){
- throw new FacebookException(login2);
- }
- if(!accounts.containsKey(login1)){
- throw new FacebookException(login1);
- }
- if(accounts.get(login1).getFriends().contains(accounts.get(login2)) && accounts.get(login2).getFriends().contains(accounts.get(login1))){
- accounts.get(login1).getFriends().remove(accounts.get(login2));
- accounts.get(login2).getFriends().remove(accounts.get(login1));
- rem = true;
- }
- return rem;
- }
- public void addPost(String loginOfWallToPost, String postText, Account postCreator)throws FacebookException{
- Post post = new Post(postCreator, postText);
- if(!accounts.containsKey(loginOfWallToPost))
- throw new FacebookException(loginOfWallToPost);
- if(!accounts.containsValue(postCreator))
- throw new FacebookException(postCreator.getLogin());
- if((accounts.get(loginOfWallToPost).getFriends().contains(postCreator))||(postCreator.getLogin().equals(loginOfWallToPost))){
- accounts.get(loginOfWallToPost).getWall().add(post);
- }
- else
- throw new FacebookException(post);
- }
- //ALS PARAMETER Integer GEBRUIKEN EN NIET int
- //BIJ PO.GETPOSTID EQUALS GEBRUIKEN EN NIET ==
- public Post search(Integer postID){
- Post pos = null;
- for(Account a : accounts.values()){
- for(Post po : a.getWall()){
- if(po.getPostID().equals(postID))
- pos = po;
- }
- }
- return pos;
- }
- // MAAK GEBRUIK VAN MEHTODES UIT DEZELFDE KLASSE (SEARCH)
- // BIJ LIKES WORDT DE POSTID OPGESLAGEN!
- public void like(String login, Post post) throws FacebookException{
- if(!accounts.containsKey(login))
- throw new FacebookException(login);
- if(search(post.getPostID())==null)
- throw new FacebookException(post.getPostID());
- accounts.get(login).getLikes().add(post.getPostID());
- }
- public boolean removeLike(String login, Integer postID) throws FacebookException{
- boolean rem = false;
- if(!accounts.containsKey(login)){
- throw new FacebookException(login);
- }
- if(search(postID)==null){
- throw new FacebookException(postID);
- }
- if(accounts.get(login).getLikes().contains(postID)){
- accounts.get(login).getLikes().remove(postID);
- rem = true;
- }
- return rem;
- }
- public ArrayList<Post> getNewsFeed(Account account)throws FacebookException{
- ArrayList<Post> lijst = new ArrayList<>();
- if(!accounts.containsKey(account.getLogin()))
- throw new FacebookException(account.getLogin());
- for(Post post : account.getWall()){
- lijst.add(post);
- }
- for(Account a : account.getFriends()){
- for(Post post : a.getWall()){
- lijst.add(post);
- }
- }
- Collections.sort(lijst);
- return lijst;
- }
- // OPGAVE: De methode GOOIT een IOException indien het bestand niet uitgeschreven kan worden.
- //GOOIT EEN EXCEPTION DUS IN THROWS?
- public void exportAccountsDataFile(String filename)throws IOException{
- ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream(filename));
- output.writeObject(accounts);
- }
- public boolean importAccountsDataFile(String filename){
- boolean imp = false;
- try {
- ObjectInputStream input = new ObjectInputStream(new FileInputStream(filename));
- HashMap<String, Account> accounts2 = (HashMap<String, Account>) input.readObject();
- accounts.putAll(accounts2);
- imp = true;
- }
- catch (FileNotFoundException ex) {
- System.out.println("Het bestand "+filename+" bestaat niet!");
- }
- catch (IOException ex) {
- System.out.println("Het bestand "+filename+" kan niet ingelezen worden!");
- } catch (ClassNotFoundException ex) {
- System.out.println("Het bestand "+filename+" kan niet ingelezen worden!");
- }
- return imp;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement