Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
<%@ jet
imports="
org.talend.core.model.process.INode
org.talend.core.model.process.ElementParameterParser
org.talend.core.model.metadata.IMetadataTable
org.talend.core.model.metadata.IMetadataColumn
org.talend.core.model.process.IConnection
org.talend.core.model.process.IConnectionCategory
org.talend.designer.codegen.config.CodeGeneratorArgument
org.talend.core.model.metadata.types.JavaTypesManager
org.talend.core.model.metadata.types.JavaType
java.util.List
java.util.Map
"
%>
<%
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
INode node = (INode)codeGenArgument.getArgument();
String cid = node.getUniqueName();
%>
int nb_line_<%=cid%> = 0;
int nb_line_empty_<%=cid%> = 0;
int nb_line_ok_<%=cid%> = 0;
<%@ jet
imports="
org.talend.core.model.process.INode
org.talend.core.model.process.ElementParameterParser
org.talend.core.model.metadata.IMetadataTable
org.talend.core.model.metadata.IMetadataColumn
org.talend.core.model.process.IConnection
org.talend.core.model.process.IConnectionCategory
org.talend.designer.codegen.config.CodeGeneratorArgument
org.talend.core.model.metadata.types.JavaTypesManager
org.talend.core.model.metadata.types.JavaType
java.util.List
java.util.Map
"
%>
<%
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
INode node = (INode)codeGenArgument.getArgument();
String cid = node.getUniqueName();
%>
boolean empty = true; <%
List< ? extends IConnection> incoming = node.getIncomingConnections();
if ((incoming != null) && (incoming.size() > 0)) {//A
IConnection income2 = incoming.get(0);
IMetadataTable income = income2.getMetadataTable();
if (income != null) {//B
List<IMetadataColumn> columns = income.getListColumns();
for( IMetadataColumn col : income.getListColumns() ) { %>
if (<%=income2.getName()%>.<%= col%> != null && !(<%=income2.getName()%>.<%= col%>.trim().isEmpty())) { //D
empty = false;
}//D
<%
}%>
if(empty) {//E
nb_line_empty_<%=cid %>++;
continue;
} else {
<%
List< ? extends IConnection> filter_conns = node.getOutgoingConnections("FILTER");
if ((filter_conns != null) && (filter_conns.size() > 0)) {//F
IConnection metadata = filter_conns.get(0);%>
<%=metadata.getName()%> = new <%= metadata.getName() %>Struct();
<%
for(IMetadataColumn col : income.getListColumns() ) {//G
%>
<%=metadata.getName()%>.<%=col %> = <%= income2.getName() %>.<%= col %>;
<%
}//G
}//F
%>
nb_line_ok_<%=cid%>++;
}//E
<%
}//B
}//A
%>
nb_line_<%=cid %>++;
globalMap.put("<%=cid%>_NB_LINE",nb_line_<%=cid%>);
globalMap.put("<%=cid%>_NB_LINE_EMPTY",nb_line_empty_<%=cid%>);
globalMap.put("<%=cid%>_NB_LINE_OK",nb_line_ok_<%=cid%>);
<COMPONENT>
<HEADER
PLATEFORM="ALL"
SERIAL=""
VERSION="0.1"
STATUS="ALPHA"
COMPATIBILITY="ALL"
AUTHOR="Nils Preuschoff"
RELEASE_DATE="20160829A"
SCHEMA_AUTO_PROPAGATE="true"
HAS_CONDITIONAL_OUTPUTS="true"
DATA_AUTO_PROPAGATE="false"
STARTABLE="false"
PARTITIONING="AUTO"
LOG4J_ENABLED="true"
>
<SIGNATURE/>
</HEADER>
<FAMILIES>
<FAMILY>Quinscape</FAMILY>
</FAMILIES>
<DOCUMENTATION>
<URL/>
</DOCUMENTATION>
<CONNECTORS>
<CONNECTOR CTYPE="FLOW" MAX_INPUT="1" MAX_OUTPUT="0"/>
<CONNECTOR NAME="FILTER" MAX_OUTPUT="1" CTYPE="FLOW" BASE_SCHEMA="FLOW" COLOR="086438" />
<CONNECTOR CTYPE="SUBJOB_OK" MAX_INPUT="1" />
<CONNECTOR CTYPE="SUBJOB_ERROR" MAX_INPUT="1" />
<CONNECTOR CTYPE="COMPONENT_OK" />
<CONNECTOR CTYPE="COMPONENT_ERROR" />
<CONNECTOR CTYPE="RUN_IF" />
</CONNECTORS>
<PARAMETERS>
<PARAMETER NAME="SCHEMA_FILTER" FIELD="SCHEMA_TYPE" CONTEXT="FILTER" NUM_ROW="1" READONLY="true"/>
</PARAMETERS>
<CODEGENERATION/>
<RETURNS>
<RETURN NAME="NB_LINE" TYPE="id_Integer" AVAILABILITY="AFTER"/>
<RETURN NAME="NB_LINE_OK" TYPE="id_Integer" AVAILABILITY="AFTER"/>
<RETURN NAME="NB_LINE_EMPTY" TYPE="id_Integer" AVAILABILITY="AFTER"/>
</RETURNS>
</COMPONENT>