EMlab-generation Documentation  1.0
Documentation of the EMLab-Generation model.
EnergyProducerRepository.java
1 /*******************************************************************************
2  * Copyright 2012 the original author or authors.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  ******************************************************************************/
16 package emlab.gen.repository;
17 
18 import java.util.List;
19 
20 import org.springframework.data.neo4j.annotation.Query;
21 import org.springframework.data.neo4j.annotation.QueryType;
22 import org.springframework.data.neo4j.repository.GraphRepository;
23 
25 
30 public interface EnergyProducerRepository extends
31 GraphRepository<EnergyProducer> {
32 
33  @Query(value = "result = g.idx('__types__')[[className:'emlab.gen.domain.agent.EnergyProducer']].propertyFilter('__type__', FilterPipe.Filter.NOT_EQUAL, 'emlab.gen.domain.agent.TargetInvestor').propertyFilter('__type__', FilterPipe.Filter.NOT_EQUAL, 'emlab.gen.domain.agent.StochasticTargetInvestor').toList();"
34  +
35  "if(result == null){return null;} else {Collections.shuffle(result); return result;}", type=QueryType.Gremlin)
36  List<EnergyProducer> findAllEnergyProducersExceptForRenewableTargetInvestorsAtRandom();
37 
38  @Query(value = "agents = g.idx('__types__')[[className:'emlab.gen.domain.agent.DecarbonizationAgent']];"
39  + "co2Allowances=0;"
40  + "for(agent in agents){if(agent.co2Allowances!=null) co2Allowances+=agent.co2Allowances};"
41  + "return co2Allowances;", type = QueryType.Gremlin)
42  double determineTotallyBankedCO2Certificates();
43 
44 }