
com.marklogic.client.impl.PojoPageImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of marklogic-client-api Show documentation
Show all versions of marklogic-client-api Show documentation
The official MarkLogic Java client API.
The newest version!
/*
* Copyright © 2024 MarkLogic Corporation. All Rights Reserved.
*/
package com.marklogic.client.impl;
import java.util.Iterator;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.marklogic.client.io.JacksonDatabindHandle;
import com.marklogic.client.document.DocumentPage;
import com.marklogic.client.pojo.PojoPage;
public class PojoPageImpl extends BasicPage implements PojoPage, Iterator {
private Class entityClass;
private DocumentPage docPage;
public PojoPageImpl(DocumentPage docPage, Class entityClass) {
super(entityClass);
setStart( docPage.getStart() );
setSize( docPage.size() );
setPageSize( docPage.getPageSize() );
setTotalSize( docPage.getTotalSize() );
this.docPage = docPage;
this.entityClass = entityClass;
}
@Override
public Iterator iterator() {
return this;
}
@Override
public boolean hasNext() {
return docPage.hasNext();
}
@Override
public T next() {
JacksonDatabindHandle handle = new JacksonDatabindHandle<>(entityClass);
handle.getMapper().enableDefaultTyping(
ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.WRAPPER_OBJECT);
return docPage.nextContent(handle).get();
}
@Override
public void close() {
docPage.close();
}
@Override
public void remove() {
throw new UnsupportedOperationException();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy