1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 package com.rapiddweller.benerator.engine.parser.xml;
28
29 import com.rapiddweller.benerator.engine.BeneratorRootStatement;
30 import com.rapiddweller.benerator.engine.Statement;
31 import com.rapiddweller.benerator.engine.statement.IfStatement;
32 import com.rapiddweller.benerator.engine.statement.TranscodingTaskStatement;
33 import com.rapiddweller.benerator.engine.statement.WhileStatement;
34 import com.rapiddweller.common.CollectionUtil;
35 import com.rapiddweller.common.ErrorHandler;
36 import com.rapiddweller.platform.db.DBSystem;
37 import com.rapiddweller.script.Expression;
38 import org.w3c.dom.Element;
39
40 import static com.rapiddweller.benerator.engine.DescriptorConstants.ATT_DEFAULT_SOURCE;
41 import static com.rapiddweller.benerator.engine.DescriptorConstants.ATT_IDENTITY;
42 import static com.rapiddweller.benerator.engine.DescriptorConstants.ATT_ON_ERROR;
43 import static com.rapiddweller.benerator.engine.DescriptorConstants.ATT_PAGESIZE;
44 import static com.rapiddweller.benerator.engine.DescriptorConstants.ATT_TARGET;
45 import static com.rapiddweller.benerator.engine.DescriptorConstants.EL_TRANSCODING_TASK;
46 import static com.rapiddweller.benerator.engine.parser.xml.DescriptorParserUtil.parseScriptAttribute;
47 import static com.rapiddweller.benerator.engine.parser.xml.DescriptorParserUtil.parseScriptableStringAttribute;
48
49
50
51
52
53
54
55
56 public class TranscodingTaskParser extends AbstractTranscodeParser {
57
58
59
60
61 public TranscodingTaskParser() {
62 super(EL_TRANSCODING_TASK,
63 CollectionUtil.toSet(ATT_TARGET),
64 CollectionUtil.toSet(ATT_IDENTITY, ATT_DEFAULT_SOURCE, ATT_PAGESIZE, ATT_ON_ERROR),
65 BeneratorRootStatement.class, IfStatement.class, WhileStatement.class);
66 }
67
68 @Override
69 public Statementcom/rapiddweller/benerator/engine/Statement.html#Statement">Statement doParse(Element element, Statement[] parentPath, BeneratorParseContext parsingContext) {
70 Expression<ErrorHandler> errorHandlerExpression = parseOnErrorAttribute(element, "transcodingTask");
71 TranscodingTaskStatement/TranscodingTaskStatement.html#TranscodingTaskStatement">TranscodingTaskStatement statement = new TranscodingTaskStatement(
72 parseDefaultSource(element),
73 parseTarget(element),
74 parseIdentity(element),
75 parsePageSize(element),
76 errorHandlerExpression);
77 Statement[] subPath = parsingContext.createSubPath(parentPath, statement);
78 statement.setSubStatements(parsingContext.parseChildElementsOf(element, subPath));
79 return statement;
80 }
81
82 private static Expression<String> parseIdentity(Element element) {
83 return parseScriptableStringAttribute("identity", element);
84 }
85
86
87
88
89
90
91
92 @SuppressWarnings("unchecked")
93 protected Expression<DBSystem> parseDefaultSource(Element element) {
94 return (Expression<DBSystem>) parseScriptAttribute("defaultSource", element);
95 }
96
97 }