Package org.butor.json.service

Source Code of org.butor.json.service.ResponseHandlerHelper

/*******************************************************************************
* Copyright 2013 butor.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*   http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
package org.butor.json.service;

import java.lang.reflect.Type;
import java.util.List;

import org.butor.json.util.JsonResponse;
import org.butor.utils.Message;
import org.butor.utils.Message.MessageType;

import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;

public class ResponseHandlerHelper {
 
  /**
   * Use this method to send list to your ResponseHandler
   * @param list
   * @param handler
   */
  public static <T>  void addList(List<T> list, ResponseHandler<T> handler) {
    Preconditions.checkNotNull(handler, "ResponseHandler should not be null");
    Preconditions.checkNotNull(list, "List should not be null");
    Message msg = new Message("totalRows", MessageType.DATA, Integer.toString(list.size()));
    handler.addMessage(msg);
    for (T o : list) {
      if (!handler.addRow(o))
        break;
    }
  }

  public static <T> JsonResponse<T> createJsonResponse(final Type responseType) {
    final List<Message> messages = Lists.newArrayList();
    final List<T> rows = Lists.newArrayList();
 
    JsonResponse<T> x = new JsonResponse<T>() {
      @Override
      public boolean addMessage(Message msg) {
        messages.add(msg);
        return true;
      }
 
      @Override
      public boolean addRow(T row) {
        rows.add(row);
        return true;
      }
 
      @Override
      public void end() {
      }
 
      public List<Message> getMessages() {
        return messages;
      }
 
      public List<T> getRows() {
        return rows;
      }
 
      public T getRow() {
        if (rows != null && rows.size() > 0) {
          return rows.get(0);
        }
        return null;
      }
 
      @Override
      public Type getResponseType() {
        return responseType;
      }
    };
    return x;
  }

}
TOP

Related Classes of org.butor.json.service.ResponseHandlerHelper

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.