| | |
| | | import com.ycl.scheme.entity.BlockCode; |
| | | import com.ycl.scheme.entity.Keyword; |
| | | import com.ycl.scheme.entity.Scheme; |
| | | import com.ycl.scheme.entity.TriggerType; |
| | | import com.ycl.scheme.service.SchemeService; |
| | | import groovy.lang.GroovyClassLoader; |
| | | import org.apache.commons.lang3.StringUtils; |
| | |
| | | |
| | | List<BlockText> blockTexts = splitBlock(scheme.getInputText()); |
| | | |
| | | List<BlockCode> blockCodes = this.createBlockCode(blockTexts); |
| | | List<BlockCode> blockCodes = this.createBlockCode(blockTexts, scheme.getTriggerType() ); |
| | | |
| | | StringBuilder csb = new StringBuilder(); |
| | | csb.append("package " + packageName + ";\n"); |
| | | csb.append("\n"); |
| | | csb.append("import java.util.List;\n"); |
| | | csb.append("import java.util.ArrayList;\n"); |
| | | csb.append("import java.util.ArrayList;\n"); |
| | |
| | | csb.append("class scheme_" + scheme.getId() + " extends AbstractSchemeRunner {\n"); |
| | | csb.append("SchemeService service;\n"); |
| | | csb.append(" @Override\n"); |
| | | csb.append(" void run(SchemeService service){\n"); |
| | | csb.append(" void run(Map<String,Parameter> pars,SchemeService service){\n"); |
| | | csb.append(" super.parameters.putAll(pars);\n"); |
| | | csb.append(" this.service = service;\n"); |
| | | csb.append(" "+ this.getConditionText(blockCodes)); |
| | | // String cod = this.getCondition(bl); |
| | |
| | | |
| | | } |
| | | |
| | | private List<BlockCode> createBlockCode(List<BlockText> blockTexts){ |
| | | private List<BlockCode> createBlockCode(List<BlockText> blockTexts,TriggerType triggerType){ |
| | | List<BlockCode> blockCodes = new ArrayList<>(); |
| | | for(int i=0;i<blockTexts.size();i++){ |
| | | BlockText text = blockTexts.get(i); |
| | | BlockCode code = new BlockCode(); |
| | | AbstractBlockCodeBuilder builder = null; |
| | | if(StringUtils.isBlank(text.getResult().trim())){ |
| | | builder = new CanalTriggerBuilder(text,this.keywordTemplates,i); |
| | | |
| | | }else{ |
| | | builder = new SqlQueryBuilder(text,this.keywordTemplates,i); |
| | | } |
| | | builder = new SqlQueryBuilder(text,this.keywordTemplates,i, triggerType); |
| | | code =builder.build(); |
| | | blockCodes.add(code); |
| | | } |
| | | |
| | | return blockCodes; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | private List<BlockText> splitBlock(String script) { |
| | | |