diff --git a/src/main/java/java/src/FileReaderWriter/FileReaderWriter.java b/src/main/java/java/src/FileReaderWriter/FileReaderWriter.java new file mode 100644 index 0000000..156012b --- /dev/null +++ b/src/main/java/java/src/FileReaderWriter/FileReaderWriter.java @@ -0,0 +1,47 @@ +package java.src.FileReaderWriter; + +import java.src.Peers.EOnlineState; +import java.src.Peers.Peer; + +public class FileReaderWriter { + + public enum EUpdated { + NotUpdated, + Updated + } + + private static Peer thisPeerBuffer = null; + + public static Peer getThisPeer(EUpdated updateState) { + switch (updateState) { + case NotUpdated: { + if (thisPeerBuffer == null) { + return getThisPeer(EUpdated.Updated); + } else { + return thisPeerBuffer; + } + } + case Updated: { + return updateThisPeerBufferFromFile(); + } + default: { + System.err.println("Unknown peer update type."); + return null; + } + } + } + + private static synchronized Peer updateThisPeerBufferFromFile() { + // TODO unimplemented + // read from file this peers data + + String ipAddress = null; + int port = 5000; + thisPeerBuffer = new Peer(ipAddress, port, null, EOnlineState.Online); // change to valid data once implemented + return thisPeerBuffer; + } + + public static synchronized void updatePeerList(Peer updatedPeer) { + // TODO update peer list + } +} diff --git a/src/main/java/java/src/Peers/Peer.java b/src/main/java/java/src/Peers/Peer.java new file mode 100644 index 0000000..ca8fa9b --- /dev/null +++ b/src/main/java/java/src/Peers/Peer.java @@ -0,0 +1,16 @@ +/** + * @author Aaron Moser + */ + +package java.src.Peers; + +import java.util.List; + +public record Peer(String ipAddress, int port, List fileList, EOnlineState onlineState) { + + public void addFile(String fileName) { + if (!fileList.contains(fileName)) { + fileList.add(fileName); + } + } +} diff --git a/src/main/java/java/src/Peers/PeerOrganizer.java b/src/main/java/java/src/Peers/PeerOrganizer.java new file mode 100644 index 0000000..32a1975 --- /dev/null +++ b/src/main/java/java/src/Peers/PeerOrganizer.java @@ -0,0 +1,35 @@ +package java.src.Peers; + +import java.io.FileReader; +import java.util.LinkedList; +import java.util.List; + +import org.json.JSONArray; +import org.json.JSONObject; +import org.json.JSONTokener; + +public class PeerOrganizer { + private Peer localPeer; + + public Peer getLocalPeer() { + return this.localPeer; + } + + public List getPeers() { + List peersAsList = new LinkedList(); + + try (FileReader reader = new FileReader("./src/main/resources/peers.json")) { + // Parse JSON file into a JSONObject + JSONObject jsonObject = new JSONObject(new JSONTokener(reader)); + + JSONArray peers = jsonObject.getJSONArray("peers"); + + peers.forEach((peer) -> { + + }); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } +}