Project

General

Profile

« Previous | Next » 

Revision e14b9808

Added by Andreas Kohlbecker over 3 years ago

ref #9087 typedesignation/{uuid}/annotations returns pager

View differences:

cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/BaseController.java
42 42
import eu.etaxonomy.cdm.api.service.IService;
43 43
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
44 44
import eu.etaxonomy.cdm.api.service.pager.Pager;
45
import eu.etaxonomy.cdm.api.service.pager.impl.DefaultPagerImpl;
46 45
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
47 46
import eu.etaxonomy.cdm.model.common.CdmBase;
48 47
import eu.etaxonomy.cdm.model.common.IPublishable;
49 48
import eu.etaxonomy.cdm.model.reference.INomenclaturalReference;
50 49
import eu.etaxonomy.cdm.model.taxon.Classification;
51 50
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
52
import eu.etaxonomy.cdm.remote.controller.util.PagerParameters;
53 51
import eu.etaxonomy.cdm.remote.editor.UUIDPropertyEditor;
54 52

  
55 53
/**
......
199 197
        } else {
200 198
            //FIXME use real paging mechanism of according service class instead of subCollection()
201 199
            //FIXME use BaseListController.normalizeAndValidatePagerParameters(pageNumber, pageSize, response);
202
            PagerParameters pagerParameters = new PagerParameters(pageSize, pageNumber);
203
            pagerParameters.normalizeAndValidate(response);
204

  
205
            start = pagerParameters.getPageIndex() * pagerParameters.getPageSize();
206
            List<? extends CdmBase> sub_c = subCollection(c, start, pagerParameters.getPageSize());
207
            Pager<? extends CdmBase> p = new DefaultPagerImpl<>(pageNumber, c.size(), pagerParameters.getPageSize(), sub_c);
200
            Pager<? extends CdmBase> p = pagerForSubCollectionOf(c, pageNumber, pageSize, response);
208 201
            return p;
209 202
        }
210 203
    }
......
396 389
        return result;
397 390
    }
398 391

  
399
    private <E> List<E> subCollection(Collection<? extends E> c, Integer start, Integer length){
400
        List<E> sub_c = new ArrayList<E>(length);
401
        if(c.size() > length){
402
            E[] a = (E[]) c.toArray();
403
            for(int i = start; i < start + length; i++){
404
                sub_c.add(a[i]);
405
            }
406
        } else {
407
            sub_c.addAll(c);
408
        }
409
        return sub_c;
410

  
411
    }
412

  
413 392
    /**
414 393
     * Checks if an {@link IPublishable} was found and if it is publish.
415 394
     * If not the according {@link HttpStatusMessage http messages} are added to response.

Also available in: Unified diff