@Override
    public boolean equals(Object o) {
        if (o == null || !o.getClass().equals(StandardAcl.class)) return false;
        if (o == this) return true;
        StandardAcl other = (StandardAcl) o;
        return resourceType.equals(other.resourceType) &&
            resourceName.equals(other.resourceName) &&
            patternType.equals(other.patternType) &&
            principal.equals(other.principal) &&
            host.equals(other.host) &&
            operation.equals(other.operation) &&
            permissionType.equals(other.permissionType);
    }
@Test
    public void testEquals() {
        for (int i = 0; i != TEST_ACLS.size(); i++) {
            for (int j = 0; j != TEST_ACLS.size(); j++) {
                if (i == j) {
                    assertEquals(TEST_ACLS.get(i), TEST_ACLS.get(j));
                } else {
                    assertNotEquals(TEST_ACLS.get(i), TEST_ACLS.get(j));
                }
            }
        }
    }