001    package railo.runtime.thread;
002    
003    import railo.runtime.config.Config;
004    import railo.runtime.exp.PageException;
005    import railo.runtime.spooler.ExecutionPlan;
006    import railo.runtime.spooler.SpoolerTaskSupport;
007    import railo.runtime.type.Struct;
008    import railo.runtime.type.StructImpl;
009    
010    public class ChildSpoolerTask extends SpoolerTaskSupport {
011    
012            private ChildThreadImpl ct;
013    
014            public ChildSpoolerTask(ChildThreadImpl ct,ExecutionPlan[] plans) {
015                    super(plans);
016                    this.ct=ct;
017            }
018    
019            @Override
020            public Struct detail() {
021                    StructImpl detail = new StructImpl();
022                    detail.setEL("template", ct.getTemplate());
023                    return detail;
024            }
025    
026            public Object execute(Config config) throws PageException {
027                    PageException pe = ct.execute(config);
028                    if(pe!=null) throw pe;
029                    return null;
030            }
031    
032            public String getType() {
033                    return "cfthread";
034            }
035    
036            public String subject() {
037                    return ct.getTagName();
038            }
039    
040    }