An API library which provides the following functionalities of accessing, managing and storing device topologies.
This Library can make functionalities of :
- Read a topology from a given JSON file and store it in the memory.
- Write a given topology from the memory to a JSON file.
- Query about which topologies are currently in the memory.
- Delete a given topology from memory.
- Query about which devices are in a given topology.
- Query about which devices are connected to a given netlist node in a given topology.
- This class creates an object from the ApplicationManager class which is used to call each functionality with its needed input
- It also creates an object from the Testing class which is used to test whole functionalities
- It contains a main loop of choosing functionalities on topologies or testing them then if functionalities is chosen we will go to the loop of choosing functionalities which is in the ApplicationManager class that we will discuss
- This class creates an object from the API class which is used to call the functionalities in API class
- It contains the main loop of the API which allows the user to select which operation to perform from API functionalities
-
This class contains the memory of the API as a HashMap<String, Topology> where for each topology ID there is a Topology with all of it's data
-
This class contains the functions of the API :-
- boolean ReadTopology(String FileName)
- boolean WriteTopology(String TopologyID)
- Set getTopologiesMemory()
- boolean DeleteTopology(String TopologyId)
- List queryDevices(String topologyID)
- List queryDevicesWithNetlistNode(String TopologyID, String Node)
-
Each functionality is validated completely in case User's input is invalid (if it's not in the memory)
Each topology consists of :
- The ID of Topology
- list of components
- JSON format of the topology with a unique ID
- all nodes between each component in the topology
Each component consists of :
- Component ID
- type of the component
- the device details
Each Device contains:
- Name of the device
- Default value
- Min value
- Max value
- TwoTerminal class inherits from class device
- TwoTerminal has an extra variable (TwoTerminalType) which determines if it's a resistor or capacitor or..(etc)
- It contains setter and getter for the Terminals (Nodes) of the device
- TwoTerminal class has setTwoTerminalType function that it's overridden in the children of this class
- The resistor inherits from TwoTerminal
- It overrides function setTwoTerminalType() to Determine the type of this two terminal device
- MosTransistor class inherits from class device
- MosTransistor has an extra variable (TransistorType) which determines if it's Nmos or Pmos
- It contains setter and getter for the Terminals (Nodes) of the device
- MosTransistor class has setTrasistorType function that it's overridden in the children of this class
- The Nmos inherits from MosTransistor
- It overrides function setTrasistorType() to Determine the type of this transistor
- The Pmos inherits from MosTransistor
- It overrides function setTrasistorType() to Determine the type of this transistor
- This class tests each function of class API
- Java
- Maven Framework Support
- json.simple
- Found in the index.html file inside the documentation folder
git clone https://github.com/AbdelrahmanNoaman/Topology_Api
Abdelrahman Noaman |
This project is licensed under the [MIT] License - see the LICENSE.md file for details