/** * @return true if has extended ACL (named users, named groups) */ public boolean hasExtended() { return mExtendedEntries != null && mExtendedEntries.hasExtended(); }
@Override public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof AccessControlList)) { return false; } AccessControlList that = (AccessControlList) o; // If the extended acl object is empty (does not have any extended entries), it is equivalent // to a null object. boolean extendedNull = (mExtendedEntries == null && that.mExtendedEntries == null); boolean extendedNotNull1 = mExtendedEntries != null && (mExtendedEntries.equals(that.mExtendedEntries) || ( !mExtendedEntries.hasExtended() && that.mExtendedEntries == null)); boolean extendedNotNull2 = that.mExtendedEntries != null && (that.mExtendedEntries.equals(mExtendedEntries) || ( !that.mExtendedEntries.hasExtended() && mExtendedEntries == null)); boolean extendedEquals = extendedNull || extendedNotNull1 || extendedNotNull2; return mOwningUser.equals(that.mOwningUser) && mOwningGroup.equals(that.mOwningGroup) && mMode == that.mMode && extendedEquals; }
@Override public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof DefaultAccessControlList)) { return false; } DefaultAccessControlList that = (DefaultAccessControlList) o; // If the extended acl object is empty (does not have any extended entries), it is equivalent // to a null object. boolean extendedNull = (mExtendedEntries == null && that.mExtendedEntries == null); boolean extendedNotNull1 = mExtendedEntries != null && (mExtendedEntries.equals(that.mExtendedEntries) || ( !mExtendedEntries.hasExtended() && that.mExtendedEntries == null)); boolean extendedNotNull2 = that.mExtendedEntries != null && (that.mExtendedEntries.equals(mExtendedEntries) || ( !that.mExtendedEntries.hasExtended() && mExtendedEntries == null)); boolean extendedEquals = extendedNull || extendedNotNull1 || extendedNotNull2; return mOwningUser.equals(that.mOwningUser) && mOwningGroup.equals(that.mOwningGroup) && mMode == that.mMode && extendedEquals && mEmpty == (that.mEmpty); }
/** * Removes the specified entry. A base entry is not allowed to be removed. * * @param entry the entry to be removed */ public void removeEntry(AclEntry entry) { switch (entry.getType()) { case NAMED_USER: mNamedUserActions.remove(entry.getSubject()); return; case NAMED_GROUP: mNamedGroupActions.remove(entry.getSubject()); return; case MASK: if (hasExtended()) { throw new IllegalStateException( "Deleting the mask for extended ACLs is not allowed. entry: " + entry); } else { mMaskActions = new AclActions(); } return; case OWNING_USER: // fall through case OWNING_GROUP: // fall through case OTHER: throw new IllegalStateException( "Deleting base entry is not allowed. entry: " + entry); default: throw new IllegalStateException("Unknown ACL entry type: " + entry.getType()); } }
.build()); if (hasExtended()) {