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