1 37 package org.webharvest.runtime.processors; 38 39 import org.webharvest.definition.*; 40 import org.webharvest.runtime.Scraper; 41 import org.webharvest.runtime.ScraperContext; 42 import org.webharvest.runtime.templaters.BaseTemplater; 43 import org.webharvest.runtime.variables.EmptyVariable; 44 import org.webharvest.runtime.variables.IVariable; 45 import org.webharvest.utils.CommonUtil; 46 47 50 public class CaseProcessor extends BaseProcessor { 51 52 private CaseDef caseDef; 53 54 public CaseProcessor(CaseDef caseDef) { 55 super(caseDef); 56 this.caseDef = caseDef; 57 } 58 59 public IVariable execute(Scraper scraper, ScraperContext context) { 60 IfDef[] ifDefs = caseDef.getIfDefs(); 61 62 if (ifDefs != null) { 63 for (int i = 0; i < ifDefs.length; i++) { 64 String condition = BaseTemplater.execute( ifDefs[i].getCondition(), scraper.getScriptEngine() ); 65 if ( CommonUtil.isBooleanTrue(condition) ) { 66 IVariable ifResult = getBodyListContent(ifDefs[i], scraper, context); 67 debug(ifDefs[i], scraper, ifResult); 68 return ifResult; 69 } 70 } 71 } 72 73 BaseElementDef elseDef = caseDef.getElseDef(); 74 if (elseDef != null) { 75 IVariable elseResult = getBodyListContent(elseDef, scraper, context); 76 debug(elseDef, scraper, elseResult); 77 return elseResult; 78 } 79 80 return new EmptyVariable(); 81 } 82 83 } | Popular Tags |