From commits-return-21812-archive-asf-public=cust-asf.ponee.io@jackrabbit.apache.org Fri Aug 30 06:37:49 2019 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [207.244.88.153]) by mx-eu-01.ponee.io (Postfix) with SMTP id 69E1B18065E for ; Fri, 30 Aug 2019 08:37:49 +0200 (CEST) Received: (qmail 31758 invoked by uid 500); 30 Aug 2019 06:37:48 -0000 Mailing-List: contact commits-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list commits@jackrabbit.apache.org Received: (qmail 31749 invoked by uid 99); 30 Aug 2019 06:37:48 -0000 Received: from Unknown (HELO svn01-us-west.apache.org) (209.188.14.144) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 30 Aug 2019 06:37:48 +0000 Received: from svn01-us-west.apache.org (localhost [127.0.0.1]) by svn01-us-west.apache.org (ASF Mail Server at svn01-us-west.apache.org) with ESMTP id 70AA73A009D for ; Fri, 30 Aug 2019 06:37:47 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1866118 - in /jackrabbit/commons/filevault/trunk/vault-core/src: main/java/org/apache/jackrabbit/vault/fs/api/ main/java/org/apache/jackrabbit/vault/fs/config/ test/java/org/apache/jackrabbit/vault/fs/filter/ Date: Fri, 30 Aug 2019 06:37:46 -0000 To: commits@jackrabbit.apache.org From: kwin@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20190830063747.70AA73A009D@svn01-us-west.apache.org> Author: kwin Date: Fri Aug 30 06:37:46 2019 New Revision: 1866118 URL: http://svn.apache.org/viewvc?rev=1866118&view=rev Log: JCRVLT-360 add toString, equals and hashCode to all filter related classes This closes #55 Modified: jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/api/FilterSet.java jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/api/PathFilter.java jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/config/DefaultWorkspaceFilter.java jackrabbit/commons/filevault/trunk/vault-core/src/test/java/org/apache/jackrabbit/vault/fs/filter/WorkspaceFilterTest.java Modified: jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/api/FilterSet.java URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/api/FilterSet.java?rev=1866118&r1=1866117&r2=1866118&view=diff ============================================================================== --- jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/api/FilterSet.java (original) +++ jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/api/FilterSet.java Fri Aug 30 06:37:46 2019 @@ -17,6 +17,8 @@ package org.apache.jackrabbit.vault.fs.api; +import java.io.PrintWriter; +import java.io.StringWriter; import java.util.Collections; import java.util.Iterator; import java.util.LinkedList; @@ -284,6 +286,14 @@ public abstract class FilterSet set = getCoveringFilterSet(path); return set == null ? ImportMode.REPLACE : set.getImportMode(); } @@ -578,6 +581,67 @@ public class DefaultWorkspaceFilter impl } } + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((globalIgnored == null) ? 0 : globalIgnored.hashCode()); + result = prime * result + ((importMode == null) ? 0 : importMode.hashCode()); + result = prime * result + ((nodesFilterSets == null) ? 0 : nodesFilterSets.hashCode()); + result = prime * result + ((propsFilterSets == null) ? 0 : propsFilterSets.hashCode()); + result = prime * result + ((referenceFilterSets == null) ? 0 : referenceFilterSets.hashCode()); + result = prime * result + Arrays.hashCode(source); + long temp; + temp = Double.doubleToLongBits(version); + result = prime * result + (int) (temp ^ (temp >>> 32)); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + DefaultWorkspaceFilter other = (DefaultWorkspaceFilter) obj; + if (globalIgnored == null) { + if (other.globalIgnored != null) + return false; + } else if (!globalIgnored.equals(other.globalIgnored)) + return false; + if (importMode != other.importMode) + return false; + if (nodesFilterSets == null) { + if (other.nodesFilterSets != null) + return false; + } else if (!nodesFilterSets.equals(other.nodesFilterSets)) + return false; + if (propsFilterSets == null) { + if (other.propsFilterSets != null) + return false; + } else if (!propsFilterSets.equals(other.propsFilterSets)) + return false; + if (referenceFilterSets == null) { + if (other.referenceFilterSets != null) + return false; + } else if (!referenceFilterSets.equals(other.referenceFilterSets)) + return false; + if (!Arrays.equals(source, other.source)) + return false; + if (Double.doubleToLongBits(version) != Double.doubleToLongBits(other.version)) + return false; + return true; + } + + @Override + public String toString() { + StringWriter stringWriter = new StringWriter(); + dump(new DumpContext(new PrintWriter(stringWriter)), true); + return stringWriter.toString(); + } + /** * internal class to mark the property filter entries. eventually promote to outer class and adjust the 'contains' * code accordingly. But since the filter set are publicly accessible, this would introduce backward compatibility Modified: jackrabbit/commons/filevault/trunk/vault-core/src/test/java/org/apache/jackrabbit/vault/fs/filter/WorkspaceFilterTest.java URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault/trunk/vault-core/src/test/java/org/apache/jackrabbit/vault/fs/filter/WorkspaceFilterTest.java?rev=1866118&r1=1866117&r2=1866118&view=diff ============================================================================== --- jackrabbit/commons/filevault/trunk/vault-core/src/test/java/org/apache/jackrabbit/vault/fs/filter/WorkspaceFilterTest.java (original) +++ jackrabbit/commons/filevault/trunk/vault-core/src/test/java/org/apache/jackrabbit/vault/fs/filter/WorkspaceFilterTest.java Fri Aug 30 06:37:46 2019 @@ -17,6 +17,7 @@ package org.apache.jackrabbit.vault.fs.filter; import java.io.IOException; +import java.io.InputStream; import java.util.List; import org.apache.jackrabbit.vault.fs.api.FilterSet; @@ -32,6 +33,7 @@ import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; @@ -192,4 +194,24 @@ public class WorkspaceFilterTest { } + @Test + public void testEquals() throws IOException, ConfigurationException { + DefaultWorkspaceFilter filter = new DefaultWorkspaceFilter(); + try (InputStream input = getClass().getResourceAsStream("workspacefilters/complex.xml")) { + filter.load(input); + } + DefaultWorkspaceFilter filter2 = new DefaultWorkspaceFilter(); + try (InputStream input = getClass().getResourceAsStream("workspacefilters/complex.xml")) { + filter2.load(input); + } + assertEquals(filter, filter2); + DefaultWorkspaceFilter filter3 = new DefaultWorkspaceFilter(); + try (InputStream input = getClass().getResourceAsStream("workspacefilters/mixed.xml")) { + filter3.load(input); + } + assertNotEquals(filter, filter3); + // modify filter2 slightly + filter2.setGlobalIgnored(PathFilter.NONE); + assertNotEquals(filter, filter2); + } } \ No newline at end of file