Skip to content
This repository has been archived by the owner on Feb 23, 2020. It is now read-only.

Commit

Permalink
Version 0.55.3
Browse files Browse the repository at this point in the history
- included DeserializeablePage for Page interface deserialization
  • Loading branch information
ManfredTremmel committed Jun 3, 2018
1 parent e76ad20 commit 27c8e84
Show file tree
Hide file tree
Showing 24 changed files with 266 additions and 23 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Expand Up @@ -11,3 +11,6 @@
.idea/*
*.iml
/.fbExcludeFilterFile
/bin
.pmd
.pmdruleset.xml
4 changes: 4 additions & 0 deletions codequality/findbugs-exclude.xml
Expand Up @@ -11,4 +11,8 @@
<Class name="de.knightsoftnet.mtwidgets.client.ui.widget.ValueBoxBaseWithEditorErrors" />
<Bug pattern="BC_UNCONFIRMED_CAST" />
</Match>
<Match>
<Class name="de.knightsoftnet.gwtp.spring.shared.data.DeserializeablePage" />
<Bug pattern="NP_NONNULL_RETURN_VIOLATION" />
</Match>
</FindBugsFilter>
2 changes: 1 addition & 1 deletion gwt-bean-validators-restygwt-jaxrs/README.md
Expand Up @@ -21,7 +21,7 @@ The dependency itself for GWT-Projects:
<dependency>
<groupId>de.knightsoft-net</groupId>
<artifactId>gwt-bean-validators-restygwt-jaxrs</artifactId>
<version>0.55.2</version>
<version>0.55.3</version>
</dependency>
```

Expand Down
2 changes: 1 addition & 1 deletion gwt-bean-validators-restygwt-jaxrs/pom.xml
Expand Up @@ -16,7 +16,7 @@
<parent>
<groupId>de.knightsoft-net</groupId>
<artifactId>gwt-bean-validators-parent</artifactId>
<version>0.55.2</version>
<version>0.55.3</version>
</parent>
<artifactId>gwt-bean-validators-restygwt-jaxrs</artifactId>
<packaging>jar</packaging>
Expand Down
2 changes: 1 addition & 1 deletion gwt-bean-validators-spring-gwtp/README.md
Expand Up @@ -23,7 +23,7 @@ The dependency itself for GWT-Projects:
<dependency>
<groupId>de.knightsoft-net</groupId>
<artifactId>gwt-bean-validators-spring-gwtp</artifactId>
<version>0.55.2</version>
<version>0.55.3</version>
</dependency>
```

Expand Down
2 changes: 1 addition & 1 deletion gwt-bean-validators-spring-gwtp/pom.xml
Expand Up @@ -16,7 +16,7 @@
<parent>
<groupId>de.knightsoft-net</groupId>
<artifactId>gwt-bean-validators-parent</artifactId>
<version>0.55.2</version>
<version>0.55.3</version>
</parent>
<artifactId>gwt-bean-validators-spring-gwtp</artifactId>
<packaging>jar</packaging>
Expand Down
2 changes: 1 addition & 1 deletion gwt-bean-validators/README.md
Expand Up @@ -86,7 +86,7 @@ Add the dependencies itself for GWT-Projects:
<dependency>
<groupId>de.knightsoft-net</groupId>
<artifactId>gwt-bean-validators</artifactId>
<version>0.55.2</version>
<version>0.55.3</version>
</dependency>
```

Expand Down
2 changes: 1 addition & 1 deletion gwt-bean-validators/pom.xml
Expand Up @@ -16,7 +16,7 @@
<parent>
<groupId>de.knightsoft-net</groupId>
<artifactId>gwt-bean-validators-parent</artifactId>
<version>0.55.2</version>
<version>0.55.3</version>
</parent>
<artifactId>gwt-bean-validators</artifactId>
<packaging>jar</packaging>
Expand Down
2 changes: 1 addition & 1 deletion gwt-mt-widgets-restygwt-jaxrs/README.md
Expand Up @@ -10,7 +10,7 @@ The dependency itself for GWT-Projects:
<dependency>
<groupId>de.knightsoft-net</groupId>
<artifactId>gwt-mt-widgets-restygwt-jaxrs</artifactId>
<version>0.55.2</version>
<version>0.55.3</version>
</dependency>
```

Expand Down
2 changes: 1 addition & 1 deletion gwt-mt-widgets-restygwt-jaxrs/pom.xml
Expand Up @@ -17,7 +17,7 @@
<parent>
<groupId>de.knightsoft-net</groupId>
<artifactId>gwt-bean-validators-parent</artifactId>
<version>0.55.2</version>
<version>0.55.3</version>
</parent>
<artifactId>gwt-mt-widgets-restygwt-jaxrs</artifactId>
<packaging>jar</packaging>
Expand Down
2 changes: 1 addition & 1 deletion gwt-mt-widgets-spring-gwtp/README.md
Expand Up @@ -10,7 +10,7 @@ The dependency itself for GWT-Projects:
<dependency>
<groupId>de.knightsoft-net</groupId>
<artifactId>gwt-mt-widgets-spring-gwtp</artifactId>
<version>0.55.2</version>
<version>0.55.3</version>
</dependency>
```

Expand Down
2 changes: 1 addition & 1 deletion gwt-mt-widgets-spring-gwtp/pom.xml
Expand Up @@ -17,7 +17,7 @@
<parent>
<groupId>de.knightsoft-net</groupId>
<artifactId>gwt-bean-validators-parent</artifactId>
<version>0.55.2</version>
<version>0.55.3</version>
</parent>
<artifactId>gwt-mt-widgets-spring-gwtp</artifactId>
<packaging>jar</packaging>
Expand Down
2 changes: 1 addition & 1 deletion gwt-mt-widgets/README.md
Expand Up @@ -10,7 +10,7 @@ The dependency itself for GWT-Projects:
<dependency>
<groupId>de.knightsoft-net</groupId>
<artifactId>gwt-mt-widgets</artifactId>
<version>0.55.2</version>
<version>0.55.3</version>
</dependency>
```
GWT Integration
Expand Down
2 changes: 1 addition & 1 deletion gwt-mt-widgets/pom.xml
Expand Up @@ -17,7 +17,7 @@
<parent>
<groupId>de.knightsoft-net</groupId>
<artifactId>gwt-bean-validators-parent</artifactId>
<version>0.55.2</version>
<version>0.55.3</version>
</parent>
<artifactId>gwt-mt-widgets</artifactId>
<packaging>jar</packaging>
Expand Down
4 changes: 2 additions & 2 deletions gwtp-dynamic-navigation/README.md
@@ -1,7 +1,7 @@
# gwtp-dynamic-navigation
A view helper classes to generate a dynamic navigation in a gwtp project. The navigation changes when user changes (login/logout). It can highlight the entry of the selected view, even if you use the back button or reload the page.

With version 0.55.2 the spring integration stuff was moved into [gwtp-spring-integration](https://github.com/ManfredTremmel/gwtp-spring-integration) package, to solve failed imports replace `de.knightsoftnet.navigation.*` and `de.knightsoftnet.validators.*` with `de.knightsoftnet.gwtp.spring.*`.
With version 0.55.3 the spring integration stuff was moved into [gwtp-spring-integration](https://github.com/ManfredTremmel/gwtp-spring-integration) package, to solve failed imports replace `de.knightsoftnet.navigation.*` and `de.knightsoftnet.validators.*` with `de.knightsoftnet.gwtp.spring.*`.

Maven integraten
----------------
Expand All @@ -12,7 +12,7 @@ The dependency itself for GWT-Projects:
<dependency>
<groupId>de.knightsoft-net</groupId>
<artifactId>gwtp-dynamic-navigation</artifactId>
<version>0.55.2</version>
<version>0.55.3</version>
</dependency>
```

Expand Down
2 changes: 1 addition & 1 deletion gwtp-dynamic-navigation/pom.xml
Expand Up @@ -17,7 +17,7 @@
<parent>
<groupId>de.knightsoft-net</groupId>
<artifactId>gwt-bean-validators-parent</artifactId>
<version>0.55.2</version>
<version>0.55.3</version>
</parent>
<artifactId>gwtp-dynamic-navigation</artifactId>
<packaging>jar</packaging>
Expand Down
2 changes: 1 addition & 1 deletion gwtp-spring-integration/README.md
Expand Up @@ -18,7 +18,7 @@ The dependency itself for GWT-Projects:
<dependency>
<groupId>de.knightsoft-net</groupId>
<artifactId>gwtp-spring-integration</artifactId>
<version>0.55.2</version>
<version>0.55.3</version>
</dependency>
```

Expand Down
2 changes: 1 addition & 1 deletion gwtp-spring-integration/pom.xml
Expand Up @@ -16,7 +16,7 @@
<parent>
<groupId>de.knightsoft-net</groupId>
<artifactId>gwt-bean-validators-parent</artifactId>
<version>0.55.2</version>
<version>0.55.3</version>
</parent>
<artifactId>gwtp-spring-integration</artifactId>
<packaging>jar</packaging>
Expand Down
@@ -0,0 +1,213 @@
package de.knightsoftnet.gwtp.spring.shared.data;

import org.eclipse.jetty.client.util.DeferredContentProvider.Chunk;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;

/**
* Deserializeable {@code Page} implementation.
*
* @param <T> the type of which the page consists.
*/
public class DeserializeablePage<T> implements Page<T> {

private int number;
private int size;
private int totalPages;
private int numberOfElements;
private long totalElements;
private boolean previousPage;
private boolean first;
private boolean nextPage;
private boolean last;
private List<T> content;
private Sort sort;
// private Pageable pageable;

@SuppressWarnings("PMD.UnusedFormalParameter")
public DeserializeablePage(final List<T> content, final Pageable pageable, final long total) {
this.content = content;
// this.pageable = pageable;
this.totalElements = total;
}

public DeserializeablePage(final List<T> content) {
this(content, Pageable.unpaged(), null == content ? 0 : content.size());
}

public DeserializeablePage() {
this(new ArrayList<T>());
}

public PageImpl<T> pageImpl() {
return new PageImpl<>(getContent(), PageRequest.of(getNumber(), getSize(), getSort()),
getTotalElements());
}

@Override
public final int getNumber() {
return this.number;
}

public final void setNumber(final int pnumber) {
this.number = pnumber;
}

@Override
public final int getSize() {
return this.size;
}

public final void setSize(final int psize) {
this.size = psize;
}

@Override
public final int getTotalPages() {
return this.totalPages;
}

public final void setTotalPages(final int ptotalPages) {
this.totalPages = ptotalPages;
}

@Override
public final int getNumberOfElements() {
return this.numberOfElements;
}

public final void setNumberOfElements(final int pnumberOfElements) {
this.numberOfElements = pnumberOfElements;
}

@Override
public final long getTotalElements() {
return this.totalElements;
}

public final void setTotalElements(final long ptotalElements) {
this.totalElements = ptotalElements;
}

public final boolean isPreviousPage() {
return this.previousPage;
}

public final void setPreviousPage(final boolean ppreviousPage) {
this.previousPage = ppreviousPage;
}

@Override
public final boolean isFirst() {
return this.first;
}

public final void setFirst(final boolean pfirst) {
this.first = pfirst;
}

public final boolean isNextPage() {
return this.nextPage;
}

public final void setNextPage(final boolean pnextPage) {
this.nextPage = pnextPage;
}

@Override
public final boolean isLast() {
return this.last;
}

public final void setLast(final boolean plast) {
this.last = plast;
}

@Override
public final List<T> getContent() {
return this.content;
}

public final void setContent(final List<T> pcontent) {
this.content = pcontent;
}

@Override
public final Sort getSort() {
return this.sort;
}

public final void setSort(final Sort psort) {
this.sort = psort;
}

// public final Pageable getPageable() {
// return this.pageable;
// }
//
// public final void setPageable(Pageable ppageable) {
// this.pageable = ppageable;
// }

@Override
public boolean hasContent() {
return !CollectionUtils.isEmpty(content);
}

@Override
public boolean hasNext() {
return getNumber() + 1 < this.getTotalPages();
}

@Override
public boolean hasPrevious() {
return getNumber() > 0;
}

@Override
public Pageable nextPageable() {
// return hasNext() ? this.pageable.next() : Pageable.unpaged();
return null;
}

@Override
public Pageable previousPageable() {
// return this.hasPrevious() ? this.pageable.previousOrFirst() : Pageable.unpaged();
return null;
}

@Override
public Iterator<T> iterator() {
return this.content.iterator();
}

@Override
public <U> Page<U> map(final Function<? super T, ? extends U> pconverter) {
return new DeserializeablePage<>(this.getConvertedContent(pconverter), getPageable(),
this.totalElements);
}

/**
* Applies the given {@link Function} to the content of the {@link Chunk}.
*
* @param converter must not be {@literal null}.
* @return
*/
protected <U> List<U> getConvertedContent(final Function<? super T, ? extends U> converter) {

Assert.notNull(converter, "Function must not be null!");

return stream().map(converter::apply).collect(Collectors.toList());
}
}

0 comments on commit 27c8e84

Please sign in to comment.