package com.framsticks.model; import com.framsticks.params.annotations.FramsClassAnnotation; import com.framsticks.params.annotations.ParamAnnotation; import java.util.ArrayList; import java.util.List; /** * Author: Piotr Ĺšniegowski */ @FramsClassAnnotation(id = "m") public class Model implements ModelComponent { @ParamAnnotation(id = "se") public double startingEnergy; @ParamAnnotation public double getEnerg0() { return startingEnergy; } @ParamAnnotation public void setEnerg0(double energ0) { startingEnergy = energ0; } @ParamAnnotation(id = "Vstyle") public String visualizationStyle; @ParamAnnotation public final List parts = new ArrayList(); @ParamAnnotation public final List joints = new ArrayList(); @ParamAnnotation(id = "neurodefs") public final List neuroDefinitions = new ArrayList(); @ParamAnnotation(id = "neuroconns") public final List neuroConnections = new ArrayList(); /** Those methods accept doubles to keep consistency with Framsticks server.*/ @ParamAnnotation public double getNumparts() { return (double)parts.size(); } @ParamAnnotation public double getNumjoints() { return (double)joints.size(); } @ParamAnnotation public double getNumneurons() { return (double)neuroDefinitions.size(); } //this is impossible to use, because numparts field is marked as readonly @ParamAnnotation public void setNumparts(double numparts) {} @ParamAnnotation public void setNumjoints(double numjoints) {} @ParamAnnotation public void setNumneurons(double numneurons) {} public List getParts() { return parts; } public List getJoints() { return joints; } public List getNeuroDefinitions() { return neuroDefinitions; } public List getNeuroConnections() { return neuroConnections; } @Override public String toString() { return "Model{" + parts.size() + ":" + joints.size() + ":" + neuroDefinitions.size() + ":" + neuroConnections.size() + "}"; } }