WebbasedServiceImpl.java :  » UnTagged » smartshop-project » vnfoss2010 » smartshop » webbased » server » Android Open Source

Android Open Source » UnTagged » smartshop project 
smartshop project » vnfoss2010 » smartshop » webbased » server » WebbasedServiceImpl.java
package vnfoss2010.smartshop.webbased.server;

import java.util.List;

import vnfoss2010.smartshop.serverside.database.AccountServiceImpl;
import vnfoss2010.smartshop.serverside.database.CommentServiceImpl;
import vnfoss2010.smartshop.serverside.database.PageServiceImpl;
import vnfoss2010.smartshop.serverside.database.ProductServiceImpl;
import vnfoss2010.smartshop.serverside.database.ServiceResult;
import vnfoss2010.smartshop.serverside.database.entity.Comment;
import vnfoss2010.smartshop.serverside.database.entity.Page;
import vnfoss2010.smartshop.serverside.database.entity.Product;
import vnfoss2010.smartshop.serverside.database.entity.UserInfo;
import vnfoss2010.smartshop.webbased.client.WebbasedService;
import vnfoss2010.smartshop.webbased.share.WGoogleUser;
import vnfoss2010.smartshop.webbased.share.WPage;
import vnfoss2010.smartshop.webbased.share.WProduct;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import com.smartshop.docs.server.RPCServiceImpl;
import com.smartshop.docs.share.GoogleUser;

/**
 * The server side implementation of the RPC service.
 */
@SuppressWarnings("serial")
public class WebbasedServiceImpl extends RemoteServiceServlet implements
    WebbasedService {

  private PageServiceImpl dbPage;
  private ProductServiceImpl dbProduct;
  private AccountServiceImpl dbAccount;
  private CommentServiceImpl dbComment;

  public String greetServer(String input) throws IllegalArgumentException {
    return "Hello";
  }
    
  public WebbasedServiceImpl(){
    super();
    
    dbProduct = ProductServiceImpl.getInstance();
    dbAccount = AccountServiceImpl.getInstance();
    dbComment = CommentServiceImpl.getInstance();
    dbPage = PageServiceImpl.getInstance();
  }

  @Override
  public WProduct getProduct(long productId) {
    WProduct wProduct = null;

    ServiceResult<Product> resultProduct = dbProduct.findProduct(productId);
    if (resultProduct.isOK()) {
      // Load UserInfo
      ServiceResult<UserInfo> resultUserInfo = dbAccount
          .getUserInfo(resultProduct.getResult().getUsername());
      if (resultUserInfo.isOK()) {
        wProduct = resultProduct.getResult().cloneObject();
        wProduct.userInfo = resultUserInfo.getResult().cloneObject();
      }

      // Load comments
      ServiceResult<List<Comment>> resultComment = dbComment.getComment(
          productId, "product");
      if (resultComment.isOK()) {
        for (Comment comment : resultComment.getResult()) {
          wProduct.listComments.add(comment.cloneObject());
        }
      }

      // Load related products
      ServiceResult<List<Product>> resultRelatedProduct = dbProduct
          .getRelatedProducts(productId, 5);
      if (resultRelatedProduct.isOK()) {
        for (Product product : resultRelatedProduct.getResult()) {
          wProduct.listRelatedProduct.add(product.cloneObject());
        }
      }
    }

    return wProduct;
  }

  private RPCServiceImpl rpcServiceImpl = new RPCServiceImpl();

  @Override
  public WGoogleUser getGoogleAccountLink() {
    return cloneObject(rpcServiceImpl.getGoogleAccountLink());
  }
  
  public WGoogleUser cloneObject(GoogleUser g) {
    WGoogleUser wg = new WGoogleUser();
    wg.isAdmin = g.isAdmin;
    wg.isLogin = g.isLogin;
    wg.linkLogin = g.linkLogin;
    wg.linkLogout = g.linkLogout;
    wg.username = g.username;
    wg.email = g.email;
    wg.authDomain = g.authDomain;
    wg.nickName = g.nickName;
    wg.userId = g.userId;

    return wg;
  }

  @Override
  public WPage getPage(long pageId) {
    WPage wPage = null;

    ServiceResult<Page> resultPage = dbPage.findPage(pageId);
    if (resultPage.isOK()) {
      // Load UserInfo
      ServiceResult<UserInfo> resultUserInfo = dbAccount
          .getUserInfo(resultPage.getResult().getUsername());
      if (resultUserInfo.isOK()) {
        wPage = resultPage.getResult().cloneObject();
        wPage.userInfo = resultUserInfo.getResult().cloneObject();
      }

      // Load comments
      ServiceResult<List<Comment>> resultComment = dbComment.getComment(
          pageId, "page");
      if (resultComment.isOK()) {
        for (Comment comment : resultComment.getResult()) {
          wPage.listComments.add(comment.cloneObject());
        }
      }
    }

    return wPage;
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.