Mercurial > hg > Members > nobuyasu > Consensus
view app/models/UserModel.java @ 113:790f37202698 draft
add label
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 18 Mar 2013 05:28:06 +0900 |
parents | bb547f2a3c88 |
children |
line wrap: on
line source
package models; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import com.tinkerpop.blueprints.Vertex; import com.tinkerpop.gremlin.java.GremlinPipeline; public class UserModel extends NodeModel { public UserModel(Vertex vertex) { super(vertex); } private Object[] getVertexRelatedUser(String labels) { GremlinPipeline<Vertex,Vertex> pipe = new GremlinPipeline<Vertex,Vertex>(); pipe.start(this.vertex).in(labels); ArrayList<Object> array = new ArrayList<Object>(); for (Vertex v : pipe) { array.add(v.getId()); } if (array.size() == 0) return null; return array.toArray(); } public Object[] getUserRequests() { return getVertexRelatedUser(L_REQUEST); } public Object[] getUserClaims() { return getVertexRelatedUser(L_AUTHOR); } private Object[] getLatestVertexRelatedUser(String labels) { TPGraph tpGraph = TPGraph.getInstance(); Object[] vIds = getVertexRelatedUser(labels); Object[] vArray = tpGraph.checkLatestVertices(vIds); return vArray; } public Object[] getLatestUserRequests() { return getLatestVertexRelatedUser(L_REQUEST); } public Object[] getLatestUserClaims() { return getLatestVertexRelatedUser(L_AUTHOR); } public HashSet<Object> getClaimsAndRequests() { Object[] requests = getUserRequests(); Object[] claims = getUserClaims(); return makeSet(requests, claims); } public HashSet<Object> getLatestClaimsAndRequests() { Object[] requests = getLatestUserRequests(); Object[] claims = getLatestUserClaims(); return makeSet(requests, claims); } private HashSet<Object> makeSet(Object[] obj1, Object[] obj2) { HashSet<Object> set = new HashSet<Object>(); if (obj1 != null) for (Object o : obj1) set.add(o); if (obj2 != null) for (Object o : obj2) set.add(o); if (set.size() == 0) return null; return set; } public HashMap<Object,Object[]> getUserInfo() { TPGraph tpGraph = TPGraph.getInstance(); Object[] requests = getUserRequests(); Object[] claims = getUserClaims(); HashMap<Object,Object[]> hash = new HashMap<Object, Object[]>(); hash.put(NodeModel.REQUESTS, requests); hash.put(NodeModel.CLAIM, claims); HashSet<Object> set = makeSet(requests, claims); hash.put(NodeModel.CONSENSUS, tpGraph.checkConsensus(set)); return hash; } }