org.butor.json.service.ResponseHandlerHelper Maven / Gradle / Ivy
/*******************************************************************************
* 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 void addList(List list, ResponseHandler 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 JsonResponse createJsonResponse(final Type responseType) {
final List messages = Lists.newArrayList();
final List rows = Lists.newArrayList();
JsonResponse x = new JsonResponse() {
@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 getMessages() {
return messages;
}
public List 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;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy