From 3101ea253a2c86f080b8323c950699f076adf2f0 Mon Sep 17 00:00:00 2001 From: oblonski <4sschroeder@gmail.com> Date: Fri, 21 Feb 2014 16:25:35 +0100 Subject: [PATCH] added misc --- .../solution/route/state/StateFactory.java | 1 + .../core/algorithm/state/GenericsTest.java | 59 +++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 jsprit-core/src/test/java/jsprit/core/algorithm/state/GenericsTest.java diff --git a/jsprit-core/src/main/java/jsprit/core/problem/solution/route/state/StateFactory.java b/jsprit-core/src/main/java/jsprit/core/problem/solution/route/state/StateFactory.java index bdd337e1..5b591e12 100644 --- a/jsprit-core/src/main/java/jsprit/core/problem/solution/route/state/StateFactory.java +++ b/jsprit-core/src/main/java/jsprit/core/problem/solution/route/state/StateFactory.java @@ -47,6 +47,7 @@ public class StateFactory { } + static class StateImpl implements State{ double state; diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/state/GenericsTest.java b/jsprit-core/src/test/java/jsprit/core/algorithm/state/GenericsTest.java new file mode 100644 index 00000000..4708d8a5 --- /dev/null +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/state/GenericsTest.java @@ -0,0 +1,59 @@ +package jsprit.core.algorithm.state; + +import java.util.HashMap; +import java.util.Map; + +import jsprit.core.problem.Capacity; +import jsprit.core.problem.job.Job; +import jsprit.core.problem.job.Service; + +public class GenericsTest { + + + + static class State { + Class type; + T state; + public State(Class type, T state) { + super(); + this.type = type; + this.state = state; + } + + } + + static class States { + + private Map states = new HashMap(); + + public void putState(String id, Class type, T state){ + states.put(id, type.cast(state)); + } + + public T getState(String id, Class type){ + T s = type.cast(states.get(id)); + return s; + } + + } + + public static void main(String[] args) { + States states = new States(); + states.putState("load", Double.class, 0.1); + states.putState("state", String.class, "foo"); + states.putState("job", Job.class, Service.Builder.newInstance("foo").setLocationId("loc").build()); + states.putState("cap", Capacity.class, Capacity.Builder.newInstance().addDimension(0, 1).build()); + + Double load = states.getState("load", Double.class); + String state = states.getState("state", String.class); + Job service = states.getState("job", Job.class); + Capacity capacity = states.getState("cap", Capacity.class); + System.out.println(load); + System.out.println(state); + System.out.println(service); + System.out.println(capacity); + + } + + +}