annotate src/main/java/de/mpiwg/indexmeta/services/DataProvider.java @ 8:9ce7979fd037

Implementation Data Provider
author Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
date Wed, 24 Apr 2013 10:34:23 +0200
parents bc57f2660b0f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
1 package de.mpiwg.indexmeta.services;
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
2
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
3 import java.util.ArrayList;
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
4 import java.util.List;
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
5
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
6 import org.apache.log4j.Logger;
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
7
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
8 import de.mpiwg.indexmeta.bo.Contextualization;
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
9
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
10 public class DataProvider {
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
11
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
12 protected static Logger logger = Logger.getLogger(DataProvider.class);
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
13
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
14 public DataProvider(){
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
15 logger.info("Starting DataProvider *********");
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
16 }
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
17
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
18 private PersistentService ps = new PersistentService();
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
19
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
20 public List<Contextualization> getCtxByIndexMetaId(String indexMetaId){
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
21 //QuadKey(indexMetaId, type, remoteId, id)
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
22 return ps.getCtxMap().getValuesByFirstKey(indexMetaId);
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
23 }
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
24
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
25 public List<Contextualization> getCtxByType(String type){
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
26 //QuadKey(indexMetaId, type, remoteId, id)
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
27 return ps.getCtxMap().getValuesBySecondKey(type);
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
28 }
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
29
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
30 public List<Contextualization> getCtxByRemoteId(String remoteId){
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
31 //QuadKey(indexMetaId, type, remoteId, id)
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
32 return ps.getCtxMap().getValuesByThirdKey(remoteId);
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
33 }
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
34
8
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 7
diff changeset
35 public Contextualization getCtx(String indexMetaId, String elementId) throws Exception{
7
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
36 List<Contextualization> rs = new ArrayList<Contextualization>();
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
37
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
38 for(Contextualization ctx : ps.getCtxMap().getValuesByFirstKey(indexMetaId)){
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
39 if(ctx.getElementId().equals(elementId)){
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
40 rs.add(ctx);
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
41 }
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
42 }
8
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 7
diff changeset
43 if(rs.isEmpty())
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 7
diff changeset
44 return null;
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 7
diff changeset
45 else if(rs.size() == 1)
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 7
diff changeset
46 return rs.get(0);
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 7
diff changeset
47 else
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 7
diff changeset
48 throw new Exception("For indexMetaId=" + indexMetaId + " and elementId=" + elementId + " there are more than one element in DB.");
7
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
49 }
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
50
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
51 public Contextualization getCtx(Long id){
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
52 return ps.getCtxMap().getValuesByOwnKey(id);
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
53 }
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
54
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
55 public void saveCtx(Contextualization ctx){
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
56 ps.saveCtx(ctx);
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
57 }
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
58
bc57f2660b0f implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
59 }