16 package emlab.gen.repository;
18 import java.util.Iterator;
19 import java.util.List;
21 import org.springframework.stereotype.Repository;
22 import org.springframework.transaction.annotation.Transactional;
24 import com.tinkerpop.blueprints.pgm.Vertex;
25 import com.tinkerpop.gremlin.pipes.filter.PropertyFilterPipe;
26 import com.tinkerpop.pipes.Pipe;
27 import com.tinkerpop.pipes.filter.FilterPipe;
28 import com.tinkerpop.pipes.filter.FilterPipe.Filter;
29 import com.tinkerpop.pipes.util.Pipeline;
47 public ClearingPoint findClearingPointForSegmentAndTime(
Segment segment,
long time,
boolean forecast) {
48 Iterator<ClearingPoint> i = findClearingPointsForSegmentAndTime(segment, time, forecast).iterator();
55 public Iterable<ClearingPoint> findClearingPointsForSegmentAndTime(
Segment segment,
long time,
boolean forecast) {
58 Pipe<Vertex, Vertex> timeFilter =
new PropertyFilterPipe<Vertex, Long>(
"time", time, FilterPipe.Filter.EQUAL);
59 Pipe<Vertex, Vertex> forecastFilter =
new PropertyFilterPipe<Vertex, Boolean>(
"forecast", forecast,
61 Pipeline<Vertex, Vertex> clearingPoint =
new Pipeline<Vertex, Vertex>(clearingPointsPipe2, timeFilter,
63 return findAllByPipe(segment, clearingPoint);
69 Iterator<ClearingPoint> i = findClearingPointsForMarketAndTime(market, time, forecast).iterator();
77 public Iterable<ClearingPoint> findClearingPointsForMarketAndTime(
DecarbonizationMarket market,
long time,
82 Pipe<Vertex, Vertex> timeFilter =
new PropertyFilterPipe<Vertex, Long>(
"time", time, FilterPipe.Filter.EQUAL);
83 Pipe<Vertex, Vertex> forecastFilter =
new PropertyFilterPipe<Vertex, Boolean>(
"forecast", forecast,
85 Pipeline<Vertex, Vertex> clearingPoint =
new Pipeline<Vertex, Vertex>(clearingPoints, timeFilter,
88 return findAllByPipe(market, clearingPoint);
93 long time,
boolean forecast) {
95 if (findClearingPointsForMarketAndTime(abstractMarket, time, forecast).iterator().hasNext()) {
96 point = findClearingPointsForMarketAndTime(abstractMarket, time, forecast).iterator().next();
100 point.setAbstractMarket(abstractMarket);
101 point.setPrice(price);
103 point.setVolume(volume);
104 point.setForecast(forecast);
110 DecarbonizationMarket abstractMarket,
double price,
double volume,
double interconnectorFlow,
long time,
114 List<SegmentClearingPoint> points = Utils.asCastedList(findClearingPointsForMarketAndTime(abstractMarket, time,
117 if (onepoint.getSegment().equals(segment)) {
124 point.setAbstractMarket(abstractMarket);
125 point.setPrice(price);
127 point.setVolume(volume);
128 point.setSegment(segment);
129 point.setForecast(forecast);
130 point.setInterconnectorFlow(interconnectorFlow);
136 double price,
double volume,
boolean emergencyTriggerActivated,
double emergencyTriggerOutflow,
long time,
140 if (findClearingPointsForMarketAndTime(abstractMarket, time, forecast).iterator().hasNext()) {
146 point.setAbstractMarket(abstractMarket);
147 point.setPrice(price);
149 point.setVolume(volume);
150 point.setEmergencyTriggerActivated(emergencyTriggerActivated);
151 point.setEmergencyTriggerOutflow(emergencyTriggerOutflow);
152 point.setForecast(forecast);