Commit 1fd89662 authored by Nils Richerzhagen's avatar Nils Richerzhagen
Browse files

Using Randoms.getRandom with class reference instead of "this"

parent 3174a624
...@@ -99,7 +99,7 @@ public class MaxPeerCountChurnGenerator ...@@ -99,7 +99,7 @@ public class MaxPeerCountChurnGenerator
private PriorityQueue<HostSessionInfo> offlineHostsSortedByOfflineTime; private PriorityQueue<HostSessionInfo> offlineHostsSortedByOfflineTime;
private Random rnd = Randoms.getRandom(new Object()); private Random rnd = Randoms.getRandom(MaxPeerCountChurnGenerator.class);
/** /**
* Comparator used to sort client infos by offline time * Comparator used to sort client infos by offline time
......
...@@ -38,7 +38,13 @@ import de.tud.kom.p2psim.api.topology.movement.MovementModel; ...@@ -38,7 +38,13 @@ import de.tud.kom.p2psim.api.topology.movement.MovementModel;
import de.tud.kom.p2psim.api.topology.placement.PlacementModel; import de.tud.kom.p2psim.api.topology.placement.PlacementModel;
import de.tud.kom.p2psim.api.topology.views.TopologyView; import de.tud.kom.p2psim.api.topology.views.TopologyView;
import de.tud.kom.p2psim.impl.simengine.Simulator; import de.tud.kom.p2psim.impl.simengine.Simulator;
import de.tudarmstadt.maki.simonstrator.api.*; import de.tudarmstadt.maki.simonstrator.api.Event;
import de.tudarmstadt.maki.simonstrator.api.EventHandler;
import de.tudarmstadt.maki.simonstrator.api.Graphs;
import de.tudarmstadt.maki.simonstrator.api.Host;
import de.tudarmstadt.maki.simonstrator.api.NodeDebugMonitor;
import de.tudarmstadt.maki.simonstrator.api.Oracle;
import de.tudarmstadt.maki.simonstrator.api.Randoms;
import de.tudarmstadt.maki.simonstrator.api.common.graph.Graph; import de.tudarmstadt.maki.simonstrator.api.common.graph.Graph;
import de.tudarmstadt.maki.simonstrator.api.common.graph.IEdge; import de.tudarmstadt.maki.simonstrator.api.common.graph.IEdge;
import de.tudarmstadt.maki.simonstrator.api.common.graph.INode; import de.tudarmstadt.maki.simonstrator.api.common.graph.INode;
...@@ -258,7 +264,14 @@ public class DefaultTopologyComponent implements TopologyComponent { ...@@ -258,7 +264,14 @@ public class DefaultTopologyComponent implements TopologyComponent {
public void updateCurrentLocation(Location location) { public void updateCurrentLocation(Location location) {
position.set(location); position.set(location);
NodeDebugMonitor.update(this.getClass(), getHost().getId(), "Current Location", location); NodeDebugMonitor.update(this.getClass(), getHost().getId(), "Current Location", location);
NodeDebugMonitor.update(this.getClass(), getHost().getId(), "Distance to target", location.distanceTo(movementModel.getTargetLocation(this))); try {
NodeDebugMonitor.update(this.getClass(), getHost().getId(),
"Distance to target",
location.distanceTo(movementModel.getTargetLocation(this)));
} catch (UnsupportedOperationException e) {
// This is not supported by the movement model (which may happen see
// MovementModel.java - thus catch and ignore)
}
// notify "non-request" listeners // notify "non-request" listeners
for (LocationListener locationListener : listeners) { for (LocationListener locationListener : listeners) {
locationListener.onLocationChanged(getHost(), getLastLocation()); locationListener.onLocationChanged(getHost(), getLastLocation());
......
package de.tud.kom.p2psim.impl.topology.movement.modularosm.transition; package de.tud.kom.p2psim.impl.topology.movement.modularosm.transition;
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.Set;
import de.tud.kom.p2psim.api.topology.Topology; import de.tud.kom.p2psim.api.topology.Topology;
import de.tud.kom.p2psim.api.topology.movement.SimLocationActuator; import de.tud.kom.p2psim.api.topology.movement.SimLocationActuator;
import de.tud.kom.p2psim.impl.topology.PositionVector; import de.tud.kom.p2psim.impl.topology.PositionVector;
...@@ -10,8 +19,6 @@ import de.tudarmstadt.maki.simonstrator.api.Randoms; ...@@ -10,8 +19,6 @@ import de.tudarmstadt.maki.simonstrator.api.Randoms;
import de.tudarmstadt.maki.simonstrator.api.component.sensor.location.AttractionPoint; import de.tudarmstadt.maki.simonstrator.api.component.sensor.location.AttractionPoint;
import de.tudarmstadt.maki.simonstrator.api.component.sensor.location.Location; import de.tudarmstadt.maki.simonstrator.api.component.sensor.location.Location;
import java.util.*;
/** /**
* This {@link ITransitionStrategy} makes clients move around randomly in a specified area. You can specify the target * This {@link ITransitionStrategy} makes clients move around randomly in a specified area. You can specify the target
* area center via the {@link #updateTargetAttractionPoint(SimLocationActuator, AttractionPoint)} method. The client will then start * area center via the {@link #updateTargetAttractionPoint(SimLocationActuator, AttractionPoint)} method. The client will then start
...@@ -23,7 +30,8 @@ import java.util.*; ...@@ -23,7 +30,8 @@ import java.util.*;
public class RandomInAreaTransitionStrategy implements ITransitionStrategy public class RandomInAreaTransitionStrategy implements ITransitionStrategy
{ {
private Random random; private final Random random = Randoms
.getRandom(RandomInAreaTransitionStrategy.class);
private LinkedHashSet<AttractionPoint> aPoints = new LinkedHashSet<>(); private LinkedHashSet<AttractionPoint> aPoints = new LinkedHashSet<>();
...@@ -45,11 +53,6 @@ public class RandomInAreaTransitionStrategy implements ITransitionStrategy ...@@ -45,11 +53,6 @@ public class RandomInAreaTransitionStrategy implements ITransitionStrategy
*/ */
private int defaultRadius; private int defaultRadius;
public RandomInAreaTransitionStrategy()
{
random = Randoms.getRandom(this.getClass());
}
@Override @Override
public AttractionPoint getAssignment(SimLocationActuator comp) public AttractionPoint getAssignment(SimLocationActuator comp)
{ {
......
...@@ -27,7 +27,7 @@ import de.tudarmstadt.maki.simonstrator.api.util.XMLConfigurableConstructor; ...@@ -27,7 +27,7 @@ import de.tudarmstadt.maki.simonstrator.api.util.XMLConfigurableConstructor;
*/ */
public class CustomDistribution implements Distribution { public class CustomDistribution implements Distribution {
private Random rand = Randoms.getRandom(this); private Random rand = Randoms.getRandom(CustomDistribution.class);
private String csvFile = ""; private String csvFile = "";
......
...@@ -50,7 +50,8 @@ public class ExponentialDistribution implements Distribution { ...@@ -50,7 +50,8 @@ public class ExponentialDistribution implements Distribution {
if (distr == null) throw new ConfigurationException("Mu was not set for exponential distribution " + this); if (distr == null) throw new ConfigurationException("Mu was not set for exponential distribution " + this);
double random = Randoms.getRandom(this).nextDouble(); double random = Randoms.getRandom(ExponentialDistribution.class)
.nextDouble();
double result; double result;
try { try {
......
...@@ -132,7 +132,9 @@ public class LimitedNormalDistribution implements Distribution { ...@@ -132,7 +132,9 @@ public class LimitedNormalDistribution implements Distribution {
} }
public double returnValue() { public double returnValue() {
double random = pmin + Randoms.getRandom(this).nextDouble() * pfactor; double random = pmin
+ Randoms.getRandom(LimitedNormalDistribution.class)
.nextDouble() * pfactor;
double result; double result;
try { try {
......
...@@ -22,10 +22,10 @@ ...@@ -22,10 +22,10 @@
package de.tud.kom.p2psim.impl.util.stat.distributions; package de.tud.kom.p2psim.impl.util.stat.distributions;
import umontreal.iro.lecuyer.probdist.LognormalDist;
import de.tudarmstadt.maki.simonstrator.api.Randoms; import de.tudarmstadt.maki.simonstrator.api.Randoms;
import de.tudarmstadt.maki.simonstrator.api.util.Distribution; import de.tudarmstadt.maki.simonstrator.api.util.Distribution;
import de.tudarmstadt.maki.simonstrator.api.util.XMLConfigurableConstructor; import de.tudarmstadt.maki.simonstrator.api.util.XMLConfigurableConstructor;
import umontreal.iro.lecuyer.probdist.LognormalDist;
public class LognormalDistribution implements Distribution { public class LognormalDistribution implements Distribution {
...@@ -48,7 +48,8 @@ public class LognormalDistribution implements Distribution { ...@@ -48,7 +48,8 @@ public class LognormalDistribution implements Distribution {
} }
public double returnValue() { public double returnValue() {
double random = Randoms.getRandom(this).nextDouble(); double random = Randoms.getRandom(LognormalDistribution.class)
.nextDouble();
double result = 0; double result = 0;
try { try {
......
...@@ -22,10 +22,10 @@ ...@@ -22,10 +22,10 @@
package de.tud.kom.p2psim.impl.util.stat.distributions; package de.tud.kom.p2psim.impl.util.stat.distributions;
import umontreal.iro.lecuyer.probdist.LognormalDist;
import de.tudarmstadt.maki.simonstrator.api.Randoms; import de.tudarmstadt.maki.simonstrator.api.Randoms;
import de.tudarmstadt.maki.simonstrator.api.util.Distribution; import de.tudarmstadt.maki.simonstrator.api.util.Distribution;
import de.tudarmstadt.maki.simonstrator.api.util.XMLConfigurableConstructor; import de.tudarmstadt.maki.simonstrator.api.util.XMLConfigurableConstructor;
import umontreal.iro.lecuyer.probdist.LognormalDist;
public class MixedLogNormalDistribution implements Distribution { public class MixedLogNormalDistribution implements Distribution {
...@@ -65,7 +65,8 @@ public class MixedLogNormalDistribution implements Distribution { ...@@ -65,7 +65,8 @@ public class MixedLogNormalDistribution implements Distribution {
} }
public double returnValue() { public double returnValue() {
double random = Randoms.getRandom(this).nextDouble(); double random = Randoms.getRandom(MixedLogNormalDistribution.class)
.nextDouble();
double result = 0; double result = 0;
try { try {
result = weight1 * distr1.inverseF(random) + weight2 result = weight1 * distr1.inverseF(random) + weight2
......
...@@ -35,7 +35,7 @@ public class NormalDistribution implements Distribution { ...@@ -35,7 +35,7 @@ public class NormalDistribution implements Distribution {
private NormalDistributionImpl normal; private NormalDistributionImpl normal;
private Random randomGen = Randoms.getRandom(this); private Random randomGen = Randoms.getRandom(NormalDistribution.class);
private double mu; private double mu;
......
...@@ -42,7 +42,7 @@ public class PoissonDistribution implements Distribution { ...@@ -42,7 +42,7 @@ public class PoissonDistribution implements Distribution {
// returns the x-value for a random value in the cdf // returns the x-value for a random value in the cdf
public double returnValue() { public double returnValue() {
double random = Randoms.getRandom(this) double random = Randoms.getRandom(PoissonDistribution.class)
.nextDouble(); .nextDouble();
int result; int result;
......
...@@ -50,7 +50,8 @@ public class UniformDistribution implements Distribution { ...@@ -50,7 +50,8 @@ public class UniformDistribution implements Distribution {
*/ */
public double returnValue() { public double returnValue() {
return min + factor * Randoms.getRandom(this).nextDouble(); return min + factor
* Randoms.getRandom(UniformDistribution.class).nextDouble();
} }
/** /**
......
...@@ -66,7 +66,8 @@ public class ZipfDistribution implements Distribution { ...@@ -66,7 +66,8 @@ public class ZipfDistribution implements Distribution {
// rank = 1 ... maximum_Number_Of_Ranks => 1/rank = 0..1 // rank = 1 ... maximum_Number_Of_Ranks => 1/rank = 0..1
return 1 / (Math return 1 / (Math
.pow(1 / (Randoms.getRandom(this).nextDouble() * harmonicNormFactor), .pow(1 / (Randoms.getRandom(ZipfDistribution.class).nextDouble()
* harmonicNormFactor),
1 / zipfExponent)); 1 / zipfExponent));
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment