package railo.runtime.component;
import java.util.HashMap;
import java.util.Map;
import railo.runtime.InterfaceImpl;
import railo.runtime.PageContextImpl;
import railo.runtime.PageSource;
import railo.runtime.exp.PageException;
import railo.runtime.type.util.ComponentUtil;
public class InterfaceCollection {
private InterfaceImpl[] interfaces;
private Map udfs= new HashMap();
private long lastUpdate=0;
public InterfaceCollection(PageContextImpl pc, PageSource child,String implement) throws PageException {
interfaces = InterfaceImpl.loadImplements(pc,child, implement,udfs);
}
/**
* @return the interfaces
*/
public InterfaceImpl[] getInterfaces() {
return interfaces;
}
/**
* @return the udfs
*/
public Map getUdfs() {
return udfs;
}
public long lastUpdate() {
if(lastUpdate==0){
long temp;
for(int i=0;i<interfaces.length;i++){
temp=ComponentUtil.getCompileTime(null,interfaces[i].getPageSource(),0);
if(temp>lastUpdate)
lastUpdate=temp;
}
}
return lastUpdate;
}
}