Browse Source

API + Algorithm Interface

dominik.rieder 7 years ago
parent
commit
8fadfd998a
5 changed files with 143 additions and 62 deletions
  1. 0 62
      src/API/API.java
  2. 129 0
      src/API/CpsAPI.java
  3. 8 0
      src/API/CpsAlgorithm.java
  4. 4 0
      src/classes/CpsEdge.java
  5. 2 0
      src/classes/HolonObject.java

+ 0 - 62
src/API/API.java

@@ -1,62 +0,0 @@
-package API;
-
-import java.awt.Color;
-import java.util.ArrayList;
-
-import classes.CpsObject;
-import classes.subNet;
-import ui.controller.Control;
-import ui.controller.SimulationManager;
-
-public class API {
-	private Control controller;
-	private SimulationManager simManager;
-	
-	public API(Control cont){
-		this.controller = cont;
-		this.simManager = controller.getSimManager();
-	}
-	
-	/**
-	 * a SubNet contains all Components
-	 * @return all SubNets on Canvas
-	 */
-	public ArrayList<subNet> getSubNets(){
-		simManager.searchForSubNets();
-		return simManager.getSubNets();
-	}
-	
-	/**
-	 * 
-	 * @return all Objects on Canvas in no specific order
-	 */
-	public ArrayList<CpsObject> getAllObjectsOnCanvas(){
-
-		return controller.getModel().getObjectsOnCanvas();
-	}
-	
-	/**
-	 * prints a given text on the console
-	 * @param text
-	 */
-	public void consolePrint(String text){
-		controller.addTextToConsole(text);
-	}
-	
-	/**
-	 * prints a given text on the console with more details
-	 * @param text: the text that will be printed
-	 * @param color: the color the text will have
-	 * @param p: font size
-	 * @param bold: true or false
-	 * @param italic: true or false
-	 * @param nl: new line after text
-	 */
-	public void consolePrint(String text, Color color, int p, boolean bold, boolean italic, boolean nl){
-		controller.addTextToConsole(text, color, p, bold, italic, nl);
-	}
-	
-	public void setBorderColorForObject(CpsObject toChange, Color color){
-	}
-	
-}

+ 129 - 0
src/API/CpsAPI.java

@@ -0,0 +1,129 @@
+package API;
+
+import java.awt.Color;
+import java.util.ArrayList;
+
+import classes.CpsEdge;
+import classes.CpsObject;
+import classes.HolonObject;
+import classes.HolonSwitch;
+import classes.subNet;
+import ui.controller.Control;
+import ui.controller.SimulationManager;
+
+public class CpsAPI {
+	private Control controller;
+	private SimulationManager simManager;
+	
+	public CpsAPI(Control cont){
+		this.controller = cont;
+		this.simManager = controller.getSimManager();
+	}
+	
+	/**
+	 * a SubNet contains all Components
+	 * @return all SubNets on Canvas
+	 */
+	public ArrayList<subNet> getSubNets(){
+		simManager.searchForSubNets();
+		return simManager.getSubNets();
+	}
+	
+	/**
+	 * 
+	 * @return all Objects on Canvas in no specific order
+	 */
+	public ArrayList<CpsObject> getAllObjOnCanvas(){
+
+		return controller.getModel().getObjectsOnCanvas();
+	}
+	
+	/**
+	 * 
+	 * @return all Edges on Canvas
+	 */
+	public ArrayList<CpsEdge> getAllEdges(){
+		ArrayList<CpsEdge> result = new ArrayList<CpsEdge>();
+		for(subNet sN: getSubNets()){
+			result.addAll(sN.getEdges());
+		}
+		return result;
+	}
+	
+	/**
+	 * 
+	 * @return all Switches on Canvas
+	 */
+	public ArrayList<HolonSwitch> getAllSwitches(){
+		ArrayList<HolonSwitch> result = new ArrayList<HolonSwitch>();
+		for(subNet sN: getSubNets()){
+			result.addAll(sN.getSwitches());
+		}
+		return result;
+	}
+	
+	public ArrayList<HolonObject> getAllHolonObjects(){
+		ArrayList<HolonObject> result = new ArrayList<HolonObject>();
+		for(subNet sN: getSubNets()){
+			result.addAll(sN.getObjects());
+		}
+		return result;
+	}
+	/**
+	 * prints a given text on the console
+	 * @param text
+	 */
+	public void consolePrint(String text){
+		controller.addTextToConsole(text);
+	}
+	
+	/**
+	 * prints a given text on the console with more details
+	 * @param text: the text that will be printed
+	 * @param color: the color the text will have
+	 * @param p: font size
+	 * @param bold: true or false
+	 * @param italic: true or false
+	 * @param nl: new line after text
+	 */
+	public void consolePrint(String text, Color color, int p, boolean bold, boolean italic, boolean nl){
+		controller.addTextToConsole(text, color, p, bold, italic, nl);
+	}
+	
+	/**
+	 * changes the bordercolor of given object to given color
+	 * @param toChange
+	 * @param color
+	 */
+	public void setBorderColorForObj(CpsObject toChange, Color color){
+		toChange.setBorderColor(color);
+	}
+	
+	/**
+	 * changes the borderColor for all objects in List to given color
+	 * @param objects
+	 * @param color
+	 */
+	public void setBorderColorForMultObj(ArrayList<CpsObject> objects, Color color){
+		for(CpsObject cps: objects){
+			setBorderColorForObj(cps, color);
+		}
+	}
+	
+	/**
+	 * resets the bordercolor of given object to default (white)
+	 * @param toReset
+	 */
+	public void resetBorderColor(CpsObject toReset){
+		toReset.setBorderColor(Color.WHITE);
+	}
+	
+	/**
+	 * resets the bordercolor for all objects on canvas
+	 */
+	public void resetBorderColorForAll(){
+		setBorderColorForMultObj(getAllObjOnCanvas(), Color.WHITE);
+	}
+	
+	
+}

+ 8 - 0
src/API/CpsAlgorithm.java

@@ -0,0 +1,8 @@
+package API;
+
+public interface CpsAlgorithm {
+	CpsAPI API = null;
+	
+	public void setAPI(CpsAPI api);
+	public void runAlgorithm();
+}

+ 4 - 0
src/classes/CpsEdge.java

@@ -74,6 +74,10 @@ public class CpsEdge {
 		**/
 	}
 	
+	/**
+	 * calculates wether isWorking or not
+	 * @param simMode
+	 */
 	public void calculateState(boolean simMode){
 		if(flow > maxCapacity && maxCapacity != -1){
 			isWorking = false;

+ 2 - 0
src/classes/HolonObject.java

@@ -91,6 +91,8 @@ public class HolonObject extends CpsObject {
 	}
 
 	/**
+	 * doesnt take into account which timestep is watched,
+	 * calculates the max values
 	 * @return the currentEnergy
 	 */
 	public float getCurrentEnergy() {