001    package railo.runtime.functions.s3;
002    
003    import java.io.IOException;
004    import java.util.List;
005    
006    import railo.commons.io.res.type.s3.AccessControl;
007    import railo.commons.io.res.type.s3.AccessControlPolicy;
008    import railo.commons.io.res.type.s3.S3Resource;
009    import railo.runtime.PageContext;
010    import railo.runtime.exp.PageException;
011    import railo.runtime.op.Caster;
012    
013    public class StoreSetACL extends S3Function {
014            
015            public static String call(PageContext pc , String url, Object objACL) throws PageException {
016                    try {
017                            return _call(pc, url, objACL);
018                    } catch (IOException e) {
019                            throw Caster.toPageException(e);
020                    }
021            }
022    
023            public static String _call(PageContext pc , String url, Object objACL) throws PageException, IOException {
024                    S3Resource res=toS3Resource(pc,url,"StoreSetACL");
025                    invoke(res, objACL);
026                    return null;
027            }
028            
029            public static void invoke(S3Resource res, Object objACL) throws PageException, IOException {
030                    AccessControlPolicy acp = res.getAccessControlPolicy();
031                    List<AccessControl> acl = AccessControl.toAccessControlList(objACL);
032                    AccessControlPolicy.removeDuplicates(acl);
033                    acp.setAccessControlList(acl);
034                    res.setAccessControlPolicy(acp);
035            }
036            
037            
038    }