Package org.eatbacon.mongodb.benchmark

Source Code of org.eatbacon.mongodb.benchmark.ManualBenchmark

package org.eatbacon.mongodb.benchmark;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.eatbacon.mongodb.benchmark.pojo.TestObject;
import org.eatbacon.mongodb.benchmark.pojo.User;
import org.eatbacon.mongodb.benchmark.pojo.UserActivity;

import com.mongodb.BasicDBList;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;

public class ManualBenchmark extends RawBenchmark {
  public static void main(String ... args){
    if(!parseArgs(args)){
      usage();
      return;
    }

    ManualBenchmark b = new ManualBenchmark();
    try {
      b.run();
    }
    catch(Exception e){
      e.printStackTrace();
    }
  }

  @Override
  public void deserialize(DBObject obj){
    try{
      TestObject o = new TestObject();
      BasicDBObject dbo = (BasicDBObject)obj;
      o.setStringVal(dbo.getString("strval"));
      o.setLongVal(dbo.getLong("long_val"));
      BasicDBList level1 = (BasicDBList)dbo.get("users");

      if(level1 != null){
        List<User> users = new ArrayList<User>();
        for(Iterator<?> x = level1.iterator(); x.hasNext();){
          User user = new User();
          BasicDBObject level1Object = (BasicDBObject) x.next();
          user.setFirstName(level1Object.getString("first_name"));
          user.setLastName(level1Object.getString("last_name"));
          user.setEmail(level1Object.getString("email"));
          user.setIpAddress(level1Object.getString("ip_addr"));
         
          BasicDBList level2 = (BasicDBList)dbo.get("activity");
          if(level2 != null){
            List<UserActivity> activities = new ArrayList<UserActivity>();
            for(Iterator<?> y = level2.iterator(); y.hasNext();){
              UserActivity activity = new UserActivity();
              BasicDBObject level2Object = (BasicDBObject) y.next();
   
              activity.setLoginCount(level2Object.getLong("login_count"));
              activity.setReferrer(level2Object.getString("referrer"));
             
              activities.add(activity);
            }
            user.setActivity(activities);
            users.add(user);
          }
        }
        o.setUsers(users);
      }
    }
    catch(Exception e){
      e.printStackTrace();
    }
  }
}
TOP

Related Classes of org.eatbacon.mongodb.benchmark.ManualBenchmark

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.