/*
* Copyright (c) 2008 TouK.pl
* 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 pl.touk.wonderfulsecurity.beans;
import java.util.*;
import java.io.Serializable;
/**
* This DTO has to extend and use Map otherwise hibernate4gwt will not detect and
* substitute hibernate proxies inside regular POJO that encapsulates collection of HB managed pojos
*<br>
*
* This is workaround for bug in hibernate4gwt
*
* @author Lukasz Kucharski - lkc@touk.pl
*/
public class PagedQueryResult<T extends Serializable> extends HashMap<String, Serializable> implements Serializable {
// ------------------------------ FIELDS ------------------------------
public static final String RESULT_KEY = "RESULT_";
public static final String OVERALL_COUNT_KEY = "OVERALL_COUNT_";
// --------------------------- CONSTRUCTORS ---------------------------
public PagedQueryResult() {
}
public PagedQueryResult(T result, int overallCount) {
this.put(RESULT_KEY, result);
this.put(OVERALL_COUNT_KEY, overallCount);
}
// --------------------- GETTER / SETTER METHODS ---------------------
public T getResult() {
return (T)this.get(RESULT_KEY);
}
public <T extends Serializable> void setResult(T result) {
this.put(RESULT_KEY, result);
}
// -------------------------- OTHER METHODS --------------------------
public int getOverallCount() {
return (Integer)this.get(OVERALL_COUNT_KEY);
}
}