/* * Copyright (c) 2008-2011 EMC Corporation * All Rights Reserved */ package com.emc.storageos.db.client.model; import java.io.*; import java.util.Set; /** * Abstract base class for all the objects with ACLs */ public abstract class DataObjectWithACLs extends DataObject implements Serializable { static final long serialVersionUID = 4733219529069178265L; // acls private StringSetMap _acls; @Name("acls") @PermissionsIndex("PermissionsIndex") public StringSetMap getAcls() { return _acls; } public void setAcls(StringSetMap acls) { _acls = acls; } public Set<String> getAclSet(String key) { if (null != _acls) { return _acls.get(key); } return null; } public void addAcl(String key, String role) { if (_acls == null) { _acls = new StringSetMap(); } _acls.put(key, role); } public void removeAcl(String key, String role) { if (_acls != null) { _acls.remove(key, role); } } private void writeObject(ObjectOutputStream out) throws IOException { out.defaultWriteObject(); out.writeObject(_acls); } private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { in.defaultReadObject(); _acls = (StringSetMap) in.readObject(); } }