Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 6 additions & 19 deletions src/main/java/graphql/relay/Connection.java
Original file line number Diff line number Diff line change
@@ -1,27 +1,14 @@
package graphql.relay;


import java.util.ArrayList;
import java.util.List;

public class Connection {
private List<Edge> edges = new ArrayList<Edge>();

private PageInfo pageInfo;

public List<Edge> getEdges() {
return edges;
}
/**
* represents a connection in relay.
*/
public interface Connection {

public void setEdges(List<Edge> edges) {
this.edges = edges;
}
List<Edge> getEdges();

public PageInfo getPageInfo() {
return pageInfo;
}
PageInfo getPageInfo();

public void setPageInfo(PageInfo pageInfo) {
this.pageInfo = pageInfo;
}
}
39 changes: 5 additions & 34 deletions src/main/java/graphql/relay/ConnectionCursor.java
Original file line number Diff line number Diff line change
@@ -1,39 +1,10 @@
package graphql.relay;

/**
* represents a connection cursor in relay.
*/
public interface ConnectionCursor {

public class ConnectionCursor {
String getValue();

private final String value;

public ConnectionCursor(String value) {
this.value = value;
}

public String getValue() {
return value;
}

@Override
public boolean equals(Object o) {


if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;

ConnectionCursor that = (ConnectionCursor) o;

if (value != null ? !value.equals(that.value) : that.value != null) return false;

return true;
}

@Override
public int hashCode() {
return value != null ? value.hashCode() : 0;
}

@Override
public String toString() {
return value;
}
}
38 changes: 38 additions & 0 deletions src/main/java/graphql/relay/DefaultConnection.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package graphql.relay;

import java.util.ArrayList;
import java.util.List;

public class DefaultConnection implements Connection {

private List<Edge> edges = new ArrayList<Edge>();

private PageInfo pageInfo;

@Override
public List<Edge> getEdges() {
return edges;
}

public void setEdges(List<Edge> edges) {
this.edges = edges;
}

@Override
public PageInfo getPageInfo() {
return pageInfo;
}

public void setPageInfo(PageInfo pageInfo) {
this.pageInfo = pageInfo;
}

@Override
public String toString() {
final StringBuilder sb = new StringBuilder("DefaultConnection{");
sb.append("edges=").append(edges);
sb.append(", pageInfo=").append(pageInfo);
sb.append('}');
return sb.toString();
}
}
43 changes: 43 additions & 0 deletions src/main/java/graphql/relay/DefaultConnectionCursor.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package graphql.relay;

public class DefaultConnectionCursor implements ConnectionCursor {

private final String value;

public DefaultConnectionCursor(String value) {
if (value == null || value.isEmpty()) {
throw new IllegalArgumentException("connection value cannot be null or empty");
}
this.value = value;
}

@Override
public String getValue() {
return value;
}

@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
DefaultConnectionCursor that = (DefaultConnectionCursor) o;
if (value != null ? !value.equals(that.value) : that.value != null) {
return false;
}
return true;
}

@Override
public int hashCode() {
return value != null ? value.hashCode() : 0;
}

@Override
public String toString() {
return value;
}
}
39 changes: 39 additions & 0 deletions src/main/java/graphql/relay/DefaultEdge.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package graphql.relay;

public class DefaultEdge implements Edge {

public DefaultEdge(Object node, DefaultConnectionCursor cursor) {
this.node = node;
this.cursor = cursor;
}

private Object node;
private ConnectionCursor cursor;

@Override
public Object getNode() {
return node;
}

public void setNode(Object node) {
this.node = node;
}

@Override
public ConnectionCursor getCursor() {
return cursor;
}

public void setCursor(ConnectionCursor cursor) {
this.cursor = cursor;
}

@Override
public String toString() {
final StringBuilder sb = new StringBuilder("DefaultEdge{");
sb.append("node=").append(node);
sb.append(", cursor=").append(cursor);
sb.append('}');
return sb.toString();
}
}
56 changes: 56 additions & 0 deletions src/main/java/graphql/relay/DefaultPageInfo.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package graphql.relay;

public class DefaultPageInfo implements PageInfo {

private ConnectionCursor startCursor;
private ConnectionCursor endCursor;
private boolean hasPreviousPage;
private boolean hasNextPage;

@Override
public ConnectionCursor getStartCursor() {
return startCursor;
}

public void setStartCursor(ConnectionCursor startCursor) {
this.startCursor = startCursor;
}

@Override
public ConnectionCursor getEndCursor() {
return endCursor;
}

public void setEndCursor(ConnectionCursor endCursor) {
this.endCursor = endCursor;
}

@Override
public boolean isHasPreviousPage() {
return hasPreviousPage;
}

public void setHasPreviousPage(boolean hasPreviousPage) {
this.hasPreviousPage = hasPreviousPage;
}

@Override
public boolean isHasNextPage() {
return hasNextPage;
}

public void setHasNextPage(boolean hasNextPage) {
this.hasNextPage = hasNextPage;
}

@Override
public String toString() {
final StringBuilder sb = new StringBuilder("DefaultPageInfo{");
sb.append("startCursor=").append(startCursor);
sb.append(", endCursor=").append(endCursor);
sb.append(", hasPreviousPage=").append(hasPreviousPage);
sb.append(", hasNextPage=").append(hasNextPage);
sb.append('}');
return sb.toString();
}
}
29 changes: 6 additions & 23 deletions src/main/java/graphql/relay/Edge.java
Original file line number Diff line number Diff line change
@@ -1,29 +1,12 @@
package graphql.relay;

/**
* represents an edge in relay.
*/
public interface Edge {

public class Edge {
Object getNode();

public Edge(Object node, ConnectionCursor cursor) {
this.node = node;
this.cursor = cursor;
}
ConnectionCursor getCursor();

Object node;
ConnectionCursor cursor;

public Object getNode() {
return node;
}

public void setNode(Object node) {
this.node = node;
}

public ConnectionCursor getCursor() {
return cursor;
}

public void setCursor(ConnectionCursor cursor) {
this.cursor = cursor;
}
}
41 changes: 8 additions & 33 deletions src/main/java/graphql/relay/PageInfo.java
Original file line number Diff line number Diff line change
@@ -1,41 +1,16 @@
package graphql.relay;

/**
* represents a page in relay.
*/
public interface PageInfo {

public class PageInfo {
private ConnectionCursor startCursor;
private ConnectionCursor endCursor;
private boolean hasPreviousPage;
private boolean hasNextPage;
ConnectionCursor getStartCursor();

public ConnectionCursor getStartCursor() {
return startCursor;
}
ConnectionCursor getEndCursor();

public void setStartCursor(ConnectionCursor startCursor) {
this.startCursor = startCursor;
}
boolean isHasPreviousPage();

public ConnectionCursor getEndCursor() {
return endCursor;
}
boolean isHasNextPage();

public void setEndCursor(ConnectionCursor endCursor) {
this.endCursor = endCursor;
}

public boolean isHasPreviousPage() {
return hasPreviousPage;
}

public void setHasPreviousPage(boolean hasPreviousPage) {
this.hasPreviousPage = hasPreviousPage;
}

public boolean isHasNextPage() {
return hasNextPage;
}

public void setHasNextPage(boolean hasNextPage) {
this.hasNextPage = hasNextPage;
}
}
Loading