001    package railo.runtime.component;
002    
003    import java.util.HashMap;
004    import java.util.Map;
005    
006    import railo.runtime.InterfaceImpl;
007    import railo.runtime.PageContextImpl;
008    import railo.runtime.exp.PageException;
009    import railo.runtime.type.util.ComponentUtil;
010    
011    public class InterfaceCollection {
012    
013            private InterfaceImpl[] interfaces;
014            private Map udfs= new HashMap();
015            private long lastUpdate=0;
016    
017    
018            public InterfaceCollection(PageContextImpl pc, String implement) throws PageException {
019                    interfaces = InterfaceImpl.loadImplements(pc, implement,udfs);
020            }
021    
022            /**
023             * @return the interfaces
024             */
025            public InterfaceImpl[] getInterfaces() {
026                    return interfaces;
027            }
028    
029            /**
030             * @return the udfs
031             */
032            public Map getUdfs() {
033                    return udfs;
034            }
035            
036            public long lastUpdate() {
037                    if(lastUpdate==0){
038                            long temp;
039                            for(int i=0;i<interfaces.length;i++){
040                                    temp=ComponentUtil.getCompileTime(null,interfaces[i].getPageSource(),0);
041                                    if(temp>lastUpdate)
042                                            lastUpdate=temp;
043                            }
044                    }
045                    return lastUpdate;
046            }
047    
048    }