Skip to content

Commit

Permalink
Merge 749fb8d into 6f57666
Browse files Browse the repository at this point in the history
  • Loading branch information
jamincollins committed Mar 16, 2018
2 parents 6f57666 + 749fb8d commit ba03403
Show file tree
Hide file tree
Showing 6 changed files with 43 additions and 5 deletions.
Expand Up @@ -22,14 +22,16 @@
import de.danielbechler.diff.selector.ElementSelector;
import de.danielbechler.util.Assert;

import java.io.Serializable;
import java.util.Collection;
import java.util.Iterator;

/**
* @author Daniel Bechler
*/
public class CollectionItemAccessor implements TypeAwareAccessor, Accessor
public class CollectionItemAccessor implements TypeAwareAccessor, Accessor, Serializable
{
private static final long serialVersionUID = -5817942646318163026L;
private final Object referenceItem;
private final IdentityStrategy identityStrategy;

Expand Down
5 changes: 4 additions & 1 deletion src/main/java/de/danielbechler/diff/access/RootAccessor.java
Expand Up @@ -19,9 +19,12 @@
import de.danielbechler.diff.selector.ElementSelector;
import de.danielbechler.diff.selector.RootElementSelector;

public final class RootAccessor implements Accessor
import java.io.Serializable;

public final class RootAccessor implements Accessor, Serializable
{
private static final RootAccessor instance = new RootAccessor();
private static final long serialVersionUID = 69877025138393021L;

public static RootAccessor getInstance()
{
Expand Down
Expand Up @@ -2,12 +2,15 @@

import de.danielbechler.util.Objects;

import java.io.Serializable;

/**
* Default implementation that uses Object.equals.
*/
public class EqualsIdentityStrategy implements IdentityStrategy
public class EqualsIdentityStrategy implements IdentityStrategy, Serializable
{
private static final EqualsIdentityStrategy instance = new EqualsIdentityStrategy();
private static final long serialVersionUID = 2525831733680397224L;

public boolean equals(final Object working, final Object base)
{
Expand Down
4 changes: 3 additions & 1 deletion src/main/java/de/danielbechler/diff/node/DiffNode.java
Expand Up @@ -31,6 +31,7 @@
import de.danielbechler.diff.selector.RootElementSelector;
import de.danielbechler.util.Assert;

import java.io.Serializable;
import java.lang.annotation.Annotation;
import java.util.Collections;
import java.util.LinkedHashMap;
Expand All @@ -54,9 +55,10 @@
*/
// TODO This thing is massive and needs to be broken down into subclasses
@SuppressWarnings("UnusedDeclaration")
public class DiffNode
public class DiffNode implements Serializable
{
public static final DiffNode ROOT = null;
private static final long serialVersionUID = 9085618940467194434L;

private final Accessor accessor;
private final Map<ElementSelector, DiffNode> children = new LinkedHashMap<ElementSelector, DiffNode>(10);
Expand Down
Expand Up @@ -16,14 +16,18 @@

package de.danielbechler.diff.selector;

import java.io.Serializable;

/**
* Serves mainly as marker class and enforces the proper implementation of hashCode(), equals() and toString()
* for all element selectors.
*
* @author Daniel Bechler
*/
public abstract class ElementSelector
public abstract class ElementSelector implements Serializable
{
private static final long serialVersionUID = -3557741909234966580L;

public abstract String toHumanReadableString();

/**
Expand Down
24 changes: 24 additions & 0 deletions src/test/java/de/danielbechler/diff/SerializeTest.groovy
@@ -0,0 +1,24 @@
/*
* Copyright 2018 Jamin Collins
*/
package de.danielbechler.diff

import de.danielbechler.diff.node.DiffNode
import spock.lang.*

public class SerializeTest extends Specification {
DiffNode diff = null
ObjectOutputStream oos;
ByteArrayOutputStream bos = new ByteArrayOutputStream()

def setup() {
diff = ObjectDifferBuilder.buildDefault().compare("1", "2")
oos = new ObjectOutputStream(bos)
oos.writeObject(diff)
oos.flush()
}
def "ensure serialization works"() {
expect:
bos.toByteArray().length > 0
}
}

0 comments on commit ba03403

Please sign in to comment.