Compare commits
2 Commits
pyzhou/TDI
...
codegen_ba
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2645eb4660 | ||
|
|
db9444fc54 |
@@ -1,4 +1,3 @@
|
||||
#Thu Jan 06 14:39:43 CST 2011
|
||||
eclipse.preferences.version=1
|
||||
encoding//src/main/java/org/talend/designer/codegen/components/model/ComponentsFactory.java=UTF-8
|
||||
encoding//src/main/java/org/talend/designer/codegen/components/ui/ComponentsPreferencePage.java=UTF-8
|
||||
|
||||
@@ -33,8 +33,10 @@ Export-Package: org.talend.designer.codegen,
|
||||
org.talend.designer.codegen.components.ui,
|
||||
org.talend.designer.codegen.config,
|
||||
org.talend.designer.codegen.exception,
|
||||
org.talend.designer.codegen.i18n,
|
||||
org.talend.designer.codegen.model,
|
||||
org.talend.designer.codegen.proxy
|
||||
org.talend.designer.codegen.proxy,
|
||||
org.talend.designer.codegen.stigma
|
||||
Bundle-Vendor: .Talend SA.
|
||||
Bundle-Activator: org.talend.designer.codegen.CodeGeneratorActivator
|
||||
Import-Package: org.apache.commons.lang
|
||||
|
||||
@@ -0,0 +1,232 @@
|
||||
<%@ jet
|
||||
imports="
|
||||
org.talend.core.model.process.INode
|
||||
org.talend.core.model.process.ElementParameterParser
|
||||
org.talend.core.model.process.IConnection
|
||||
org.talend.core.model.process.IConnectionCategory
|
||||
org.talend.designer.codegen.config.CodeGeneratorArgument
|
||||
org.talend.core.model.metadata.IMetadataTable
|
||||
org.talend.core.model.metadata.IMetadataColumn
|
||||
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();
|
||||
|
||||
String nbRows = ElementParameterParser.getValue(node, "__NB_ROWS__");
|
||||
|
||||
List<Map<String, String>> tableValues =
|
||||
(List<Map<String,String>>)ElementParameterParser.getObjectValue(
|
||||
node,
|
||||
"__VALUES__"
|
||||
);
|
||||
|
||||
boolean use_singleMode = ("true").equals(ElementParameterParser.getValue(node, "__USE_SINGLEMODE__"));
|
||||
boolean use_inTable = ("true").equals(ElementParameterParser.getValue(node, "__USE_INTABLE__"));
|
||||
boolean use_inlineContent = ("true").equals(ElementParameterParser.getValue(node, "__USE_INLINECONTENT__"));
|
||||
|
||||
String fieldSeparator = ElementParameterParser.getValue(node, "__FIELDSEPARATOR__");
|
||||
String rowSeparator = ElementParameterParser.getValue(node, "__ROWSEPARATOR__");
|
||||
|
||||
List<Map<String, String>> inTableValues =
|
||||
(List<Map<String,String>>)ElementParameterParser.getObjectValue(
|
||||
node,
|
||||
"__INTABLE__"
|
||||
);
|
||||
|
||||
List<IMetadataTable> metadatas = node.getMetadataList();
|
||||
IMetadataTable metadata = null;
|
||||
if ((metadatas!=null)&&(metadatas.size()>0)) {
|
||||
metadata = metadatas.get(0);
|
||||
}
|
||||
|
||||
List< ? extends IConnection> conns = node.getOutgoingSortedConnections();
|
||||
|
||||
//************** the original part that get only one value for each column ********************
|
||||
if(use_singleMode){
|
||||
if(tableValues != null && tableValues.size() > 0 && conns != null && conns.size() > 0) {
|
||||
%>
|
||||
for (int i_<%=cid%> = 0 ; i_<%=cid%> < <%=nbRows%> ; i_<%=cid%>++) {
|
||||
<%
|
||||
String firstConnName = "";
|
||||
for(IConnection conn : conns) {
|
||||
if(conn.getLineStyle().hasConnectionCategory(IConnectionCategory.DATA)) {
|
||||
firstConnName = conn.getName();
|
||||
break;
|
||||
} // if(conn) end
|
||||
} // for(conns) end
|
||||
if (firstConnName !=null && !"".equals(firstConnName)) {
|
||||
for(Map<String, String> tableValue : tableValues) {
|
||||
String lable = tableValue.get("SCHEMA_COLUMN");
|
||||
String value = tableValue.get("VALUE");
|
||||
if(value == null || value.length() == 0){ //use the default value
|
||||
IMetadataColumn column = metadata.getColumn(lable);
|
||||
String typeToGenerate = JavaTypesManager.getTypeToGenerate(column.getTalendType(), column.isNullable());
|
||||
String defaultValue = JavaTypesManager.getDefaultValueFromJavaType(typeToGenerate, column.getDefault());
|
||||
%>
|
||||
<%=firstConnName%>.<%=lable %> = <%=defaultValue %>;
|
||||
<%
|
||||
}else{
|
||||
%>
|
||||
<%=firstConnName%>.<%=lable %> = <%=value %>;
|
||||
<%
|
||||
}
|
||||
} // for (map) end
|
||||
} // if(firstConnName) end
|
||||
}
|
||||
//***************************the original part end ***************************************
|
||||
}else if(use_inTable){
|
||||
//******************the new part ---get several values for each column*********************
|
||||
if(inTableValues != null && inTableValues.size() > 0 && conns != null && conns.size() > 0) {
|
||||
%>
|
||||
int nb_line_<%=cid %> = 0;
|
||||
<%
|
||||
String firstConnName = "";
|
||||
for(IConnection conn : conns) {
|
||||
if(conn.getLineStyle().hasConnectionCategory(IConnectionCategory.DATA)) {
|
||||
firstConnName = conn.getName();
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(firstConnName!=null && !firstConnName.equals("")){//XXX
|
||||
%>
|
||||
List<<%=firstConnName%>Struct> cacheList_<%=cid %> = new java.util.ArrayList<<%=firstConnName%>Struct>();
|
||||
<%
|
||||
for(Map<String, String> tableValue : inTableValues) {
|
||||
%>
|
||||
<%=firstConnName%> = new <%=firstConnName%>Struct();
|
||||
<%
|
||||
for(IMetadataColumn column: metadata.getListColumns()){
|
||||
String label = column.getLabel();
|
||||
String value = tableValue.get(label);
|
||||
if(value == null || value.length() == 0){ //use the default value
|
||||
String typeToGenerate = JavaTypesManager.getTypeToGenerate(column.getTalendType(), column.isNullable());
|
||||
String defaultValue = JavaTypesManager.getDefaultValueFromJavaType(typeToGenerate, column.getDefault());
|
||||
%>
|
||||
<%=firstConnName%>.<%=label %> = <%=defaultValue %>;
|
||||
<%
|
||||
}else{
|
||||
%>
|
||||
<%=firstConnName%>.<%=label %> = <%=value %>;
|
||||
<%
|
||||
}
|
||||
}
|
||||
%>
|
||||
cacheList_<%=cid %>.add(<%=firstConnName%>);
|
||||
<%
|
||||
}
|
||||
}
|
||||
%>
|
||||
for (int i_<%=cid%> = 0 ; i_<%=cid%> < <%=nbRows%> ; i_<%=cid%>++) {
|
||||
<%
|
||||
if(firstConnName!=null && !firstConnName.equals("")){
|
||||
%>
|
||||
for(<%=firstConnName%>Struct tmpRow_<%=cid %> : cacheList_<%=cid %>){
|
||||
<%
|
||||
}
|
||||
%>
|
||||
nb_line_<%=cid %> ++;
|
||||
<%
|
||||
if(firstConnName!=null && !firstConnName.equals("")){
|
||||
%>
|
||||
<%=firstConnName%> = tmpRow_<%=cid %>;
|
||||
<%
|
||||
}
|
||||
}
|
||||
//********************the new part end*****************************************************
|
||||
}else if(use_inlineContent){
|
||||
|
||||
String fileContent = ElementParameterParser.getValue(node,"__INLINECONTENT__");
|
||||
|
||||
String lineSeparator = "\r\n";
|
||||
|
||||
String fileContentEnCodeStr = "";
|
||||
try {
|
||||
fileContentEnCodeStr = java.util.Base64.getMimeEncoder().encodeToString(fileContent.getBytes("UTF-8"));
|
||||
} catch (java.io.UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
%>
|
||||
|
||||
StringBuilder result_<%=cid %> = new StringBuilder();
|
||||
<%
|
||||
String[] arrayStr = fileContentEnCodeStr.split(lineSeparator);
|
||||
for(String item : arrayStr){
|
||||
%>
|
||||
result_<%=cid %>.append("<%=item %>");
|
||||
<%}%>
|
||||
String originalFileContent_<%=cid %> = "";
|
||||
try {
|
||||
originalFileContent_<%=cid %> = new String(java.util.Base64.getMimeDecoder().decode(result_<%=cid %>.toString()), utf8Charset);
|
||||
} catch (java.lang.Exception e) {
|
||||
globalMap.put("<%=cid%>_ERROR_MESSAGE",e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
int nb_line_<%=cid %> = 0;
|
||||
|
||||
for (int i_<%=cid%> = 0 ; i_<%=cid%> < <%=nbRows%> ; i_<%=cid%>++) {
|
||||
|
||||
java.io.InputStream ins_<%=cid %> = new java.io.ByteArrayInputStream(originalFileContent_<%=cid %>.getBytes(utf8Charset));
|
||||
org.talend.fileprocess.FileInputDelimited fid_<%=cid %> = new org.talend.fileprocess.FileInputDelimited(ins_<%=cid %>, utf8Charset,<%=fieldSeparator %>,<%=rowSeparator %>,true, 0, 0, -1, -1, false);
|
||||
|
||||
while (fid_<%=cid %>.nextRecord()) {
|
||||
nb_line_<%=cid %>++;
|
||||
<%
|
||||
String firstConnName = "";
|
||||
for(IConnection conn : conns) {
|
||||
if(conn.getLineStyle().hasConnectionCategory(IConnectionCategory.DATA)) {
|
||||
firstConnName = conn.getName();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(!firstConnName.equals("")){//XXX
|
||||
%>
|
||||
<%=firstConnName %> = new <%=firstConnName %>Struct();
|
||||
<%
|
||||
List<IMetadataColumn> columns = metadata.getListColumns();
|
||||
int sizeListColumns = columns.size();
|
||||
|
||||
for (int i=0;i<sizeListColumns;i++) {//AAA
|
||||
IMetadataColumn column=columns.get(i);
|
||||
String label = column.getLabel();
|
||||
String typeToGenerate = JavaTypesManager.getTypeToGenerate(column.getTalendType(), column.isNullable());
|
||||
JavaType javaType = JavaTypesManager.getJavaTypeFromId(column.getTalendType());
|
||||
String patternValue = column.getPattern() == null || column.getPattern().trim().length() == 0 ? null : column.getPattern();
|
||||
String defaultValue = JavaTypesManager.getDefaultValueFromJavaType(typeToGenerate, column.getDefault());
|
||||
%>
|
||||
|
||||
if(<%=i %> < fid_<%=cid %>.getColumnsCountOfCurrentRow()){
|
||||
String colContent = fid_<%=cid %>.get(<%=i %>);
|
||||
<%if(javaType == JavaTypesManager.STRING || javaType == JavaTypesManager.OBJECT) {%>
|
||||
<%=firstConnName %>.<%=label %> = (colContent == null || colContent.length() == 0) ? <%=defaultValue %>: colContent;
|
||||
<%}else if(javaType == JavaTypesManager.DATE){%>
|
||||
<%=firstConnName %>.<%=label %> = (colContent == null || colContent.length() == 0) ? ParserUtils.parseTo_Date(<% if((defaultValue==null)||"".equals(defaultValue) || "null".equals(defaultValue)){%>(String)<%}%> <%=defaultValue %>, <%= patternValue %>) : ParserUtils.parseTo_Date(colContent, <%= patternValue %>);
|
||||
<%}else if(javaType == JavaTypesManager.BYTE_ARRAY){%>
|
||||
<%=firstConnName %>.<%=label %> = (colContent == null || colContent.length() == 0) ? <%=defaultValue %> : colContent.getBytes();
|
||||
<%}else{%>
|
||||
<%=firstConnName %>.<%=label %> = (colContent == null || colContent.trim().length() == 0) ? <%=defaultValue %> : ParserUtils.parseTo_<%= typeToGenerate %>(colContent);
|
||||
<%}%>
|
||||
} else {
|
||||
<%if(javaType != JavaTypesManager.DATE){%>
|
||||
<%=firstConnName %>.<%=label %> = <%=defaultValue %>;
|
||||
<%}else {%>
|
||||
<%=firstConnName %>.<%=label %> = ParserUtils.parseTo_Date(<% if(defaultValue==null||"".equals(defaultValue)|| "null".equals(defaultValue)){%>(String)<%}%><%=defaultValue %>, <%= patternValue %>);
|
||||
<%}%>
|
||||
}
|
||||
|
||||
<%
|
||||
}//AAA
|
||||
%>
|
||||
<%
|
||||
}//XXX
|
||||
//********************the use_inTable part end*****************************************************
|
||||
}
|
||||
%>
|
||||
@@ -0,0 +1,80 @@
|
||||
<%@ jet
|
||||
imports="
|
||||
org.talend.core.model.process.INode
|
||||
org.talend.core.model.process.ElementParameterParser
|
||||
org.talend.core.model.process.IConnection
|
||||
org.talend.designer.codegen.config.CodeGeneratorArgument
|
||||
org.talend.core.model.process.IConnectionCategory
|
||||
java.util.List
|
||||
java.util.Map"
|
||||
%>
|
||||
|
||||
<%
|
||||
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
|
||||
INode node = (INode)codeGenArgument.getArgument();
|
||||
String cid = node.getUniqueName();
|
||||
|
||||
String nbRows = ElementParameterParser.getValue(node, "__NB_ROWS__");
|
||||
|
||||
boolean use_singleMode = ("true").equals(ElementParameterParser.getValue(node, "__USE_SINGLEMODE__"));
|
||||
boolean use_inTable = ("true").equals(ElementParameterParser.getValue(node, "__USE_INTABLE__"));
|
||||
boolean use_inlineContent = ("true").equals(ElementParameterParser.getValue(node, "__USE_INLINECONTENT__"));
|
||||
|
||||
List<Map<String, String>> tableValues =
|
||||
(List<Map<String,String>>)ElementParameterParser.getObjectValue(
|
||||
node,
|
||||
"__VALUES__"
|
||||
);
|
||||
|
||||
List<Map<String, String>> inTableValues =
|
||||
(List<Map<String,String>>)ElementParameterParser.getObjectValue(
|
||||
node,
|
||||
"__INTABLE__"
|
||||
);
|
||||
|
||||
List< ? extends IConnection> conns = node.getOutgoingSortedConnections();
|
||||
if(use_singleMode){
|
||||
if(tableValues != null && tableValues.size() > 0 && conns != null && conns.size() > 0) {
|
||||
%>
|
||||
}
|
||||
globalMap.put("<%=cid%>_NB_LINE", <%=nbRows%>);
|
||||
<%
|
||||
}
|
||||
//********************the new part*****************************************************
|
||||
}else if(use_inTable){
|
||||
if(inTableValues != null && inTableValues.size() > 0 && conns != null && conns.size() > 0) {
|
||||
String firstConnName = null;
|
||||
for(IConnection conn : conns) {
|
||||
if(conn.getLineStyle().hasConnectionCategory(IConnectionCategory.DATA)) {
|
||||
firstConnName = conn.getName();
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(firstConnName!=null && !firstConnName.equals("")){
|
||||
%>
|
||||
}
|
||||
<%
|
||||
}
|
||||
%>
|
||||
}
|
||||
<%
|
||||
if(firstConnName!=null && !firstConnName.equals("")){
|
||||
%>
|
||||
cacheList_<%=cid %>.clear();
|
||||
<%
|
||||
}
|
||||
%>
|
||||
globalMap.put("<%=cid%>_NB_LINE", nb_line_<%=cid %>);
|
||||
<%
|
||||
}
|
||||
//********************the new part*****************************************************
|
||||
} else if(use_inlineContent){
|
||||
%>
|
||||
}
|
||||
fid_<%=cid %>.close();
|
||||
}
|
||||
|
||||
globalMap.put("<%=cid%>_NB_LINE", nb_line_<%=cid %>);
|
||||
<%
|
||||
}
|
||||
%>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,90 @@
|
||||
<COMPONENT>
|
||||
<HEADER PLATEFORM="ALL" SERIAL="" VERSION="0.102" STATUS="ALPHA"
|
||||
COMPATIBILITY="ALL" AUTHOR="Talend" RELEASE_DATE="20050320A"
|
||||
STARTABLE="true">
|
||||
<SIGNATURE />
|
||||
</HEADER>
|
||||
|
||||
<FAMILIES>
|
||||
<FAMILY>Misc</FAMILY>
|
||||
</FAMILIES>
|
||||
|
||||
<DOCUMENTATION>
|
||||
<URL />
|
||||
</DOCUMENTATION>
|
||||
|
||||
<CONNECTORS>
|
||||
<CONNECTOR CTYPE="FLOW" MAX_INPUT="0" MAX_OUTPUT="1"/>
|
||||
<CONNECTOR CTYPE="ITERATE" MAX_OUTPUT="1" MAX_INPUT="1" />
|
||||
<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" FIELD="SCHEMA_TYPE" REQUIRED="true"
|
||||
NUM_ROW="10">
|
||||
<DEFAULT />
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER NAME="NB_ROWS" FIELD="TEXT" NUM_ROW="20">
|
||||
<DEFAULT>1</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER NAME="USE_SINGLEMODE" FIELD="RADIO" REQUIRED="true"
|
||||
NUM_ROW="30" GROUP="MODE">
|
||||
<DEFAULT>true</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER NAME="VALUES" FIELD="TABLE" REQUIRED="true"
|
||||
NUM_ROW="35" NB_LINES="5" SHOW_IF="USE_SINGLEMODE=='true'" GROUP="MODE">
|
||||
<ITEMS BASED_ON_SCHEMA="true">
|
||||
<ITEM NAME="VALUE" />
|
||||
</ITEMS>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER NAME="USE_INTABLE" FIELD="RADIO" REQUIRED="true"
|
||||
NUM_ROW="40" GROUP="MODE">
|
||||
<DEFAULT>false</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER NAME="INTABLE" FIELD="TABLE" REQUIRED="true"
|
||||
NUM_ROW="45" NB_LINES="5" SHOW_IF="USE_INTABLE=='true'" GROUP="MODE">
|
||||
<ITEMS COLUMNS_BASED_ON_SCHEMA="true">
|
||||
</ITEMS>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER NAME="USE_INLINECONTENT" FIELD="RADIO" REQUIRED="true"
|
||||
NUM_ROW="50" GROUP="MODE">
|
||||
<DEFAULT>false</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER NAME="ROWSEPARATOR" FIELD="TEXT" NUM_ROW="52"
|
||||
REQUIRED="true" SHOW_IF="USE_INLINECONTENT=='true'" GROUP="MODE">
|
||||
<DEFAULT>"\n"</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER NAME="FIELDSEPARATOR" FIELD="TEXT" NUM_ROW="52"
|
||||
REQUIRED="true" SHOW_IF="USE_INLINECONTENT=='true'" GROUP="MODE">
|
||||
<DEFAULT>";"</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER NAME="INLINECONTENT" FIELD="MEMO" RAW="true" REQUIRED="true"
|
||||
NUM_ROW="55" NB_LINES="10" SHOW_IF="USE_INLINECONTENT=='true'" GROUP="MODE">
|
||||
</PARAMETER>
|
||||
|
||||
</PARAMETERS>
|
||||
|
||||
<CODEGENERATION>
|
||||
<IMPORTS>
|
||||
<IMPORT NAME="Talen File Enhanced" MODULE="talend_file_enhanced-1.1.jar" MVN="mvn:org.talend.components.lib/talend_file_enhanced/1.1" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend_file_enhanced-1.1.jar" REQUIRED="true" />
|
||||
</IMPORTS>
|
||||
</CODEGENERATION>
|
||||
|
||||
<RETURNS>
|
||||
<RETURN NAME="NB_LINE" TYPE="id_Integer" AVAILABILITY="AFTER" />
|
||||
</RETURNS>
|
||||
|
||||
</COMPONENT>
|
||||
@@ -0,0 +1,14 @@
|
||||
LONG_NAME=Creates a fixed flow from internal variables
|
||||
HELP=org.talend.help.tFixedFlowInput
|
||||
NB_LINE.NAME=Number of lines
|
||||
NB_ROWS.NAME=Number of rows
|
||||
VALUES.NAME=Values
|
||||
VALUES.ITEM.VALUE=Value
|
||||
INTABLE.NAME=Inline Table
|
||||
MODE.NAME=Mode
|
||||
USE_SINGLEMODE.NAME=Use Single Table
|
||||
USE_INTABLE.NAME=Use Inline Table
|
||||
USE_INLINECONTENT.NAME=Use Inline Content(delimited file)
|
||||
INLINECONTENT.NAME=Content
|
||||
ROWSEPARATOR.NAME=Row Separator
|
||||
FIELDSEPARATOR.NAME=Field Separator
|
||||
@@ -0,0 +1,7 @@
|
||||
NB_LINE.NAME=Anzahl an Zeilen
|
||||
VALUES.NAME=Wert
|
||||
VALUES.ITEM.VALUE=Wert
|
||||
MODE.NAME=Modus
|
||||
INLINECONTENT.NAME=Inhalt
|
||||
ROWSEPARATOR.NAME=Zeilenseparator
|
||||
FIELDSEPARATOR.NAME=Feldseparator
|
||||
@@ -0,0 +1,6 @@
|
||||
NB_ROWS.NAME=N\u00FAmero de filas
|
||||
VALUES.NAME=Valores
|
||||
VALUES.ITEM.VALUE=Valor
|
||||
INLINECONTENT.NAME=Contenido
|
||||
ROWSEPARATOR.NAME=Separador de Fila
|
||||
FIELDSEPARATOR.NAME=Separador de Campo
|
||||
@@ -0,0 +1,14 @@
|
||||
LONG_NAME=Cr\u00E9e un flux fixe \u00E0 partir de variables internes
|
||||
HELP=org.talend.help.tFixedFlowInput
|
||||
NB_LINE.NAME=Nombre de lignes
|
||||
NB_ROWS.NAME=Nombre de lignes
|
||||
VALUES.NAME=Valeurs
|
||||
VALUES.ITEM.VALUE=Valeur
|
||||
INTABLE.NAME=Utiliser le tableau
|
||||
MODE.NAME=Mode
|
||||
USE_SINGLEMODE.NAME=Utiliser une table seule
|
||||
USE_INTABLE.NAME=Utiliser le tableau
|
||||
USE_INLINECONTENT.NAME=Utiliser du contenu align\u00E9 (fichier d\u00E9limit\u00E9)
|
||||
INLINECONTENT.NAME=Contenu
|
||||
ROWSEPARATOR.NAME=S\u00E9parateur de lignes
|
||||
FIELDSEPARATOR.NAME=S\u00E9parateur de champs
|
||||
@@ -0,0 +1,13 @@
|
||||
LONG_NAME=Crea un flusso fisso da variabili interne
|
||||
NB_LINE.NAME=Numero di linee
|
||||
NB_ROWS.NAME=Numero di righe
|
||||
VALUES.NAME=Valori
|
||||
VALUES.ITEM.VALUE=Valore
|
||||
INTABLE.NAME=Tabella InLine
|
||||
MODE.NAME=Modo
|
||||
USE_SINGLEMODE.NAME=Utilizza tabella singola
|
||||
USE_INTABLE.NAME=Utilizza tabella InLine
|
||||
USE_INLINECONTENT.NAME=Utilizza contenuto Inline (file delimitato)
|
||||
INLINECONTENT.NAME=contenuto
|
||||
ROWSEPARATOR.NAME=Separatore riga
|
||||
FIELDSEPARATOR.NAME=Separatore di campo
|
||||
@@ -0,0 +1,14 @@
|
||||
LONG_NAME=\u5185\u90E8\u5909\u6570\u304B\u3089\u56FA\u5B9A\u30D5\u30ED\u30FC\u3092\u751F\u6210\u3057\u307E\u3059\u3002
|
||||
HELP=org.talend.help.tFixedFlowInput
|
||||
NB_LINE.NAME=\u884C\u6570
|
||||
NB_ROWS.NAME=\u884C\u6570
|
||||
VALUES.NAME=\u5024
|
||||
VALUES.ITEM.VALUE=\u5024
|
||||
INTABLE.NAME=\u30A4\u30F3\u30E9\u30A4\u30F3\u30C6\u30FC\u30D6\u30EB
|
||||
MODE.NAME=\u30E2\u30FC\u30C9
|
||||
USE_SINGLEMODE.NAME=\u30B7\u30F3\u30B0\u30EB\u30C6\u30FC\u30D6\u30EB\u306E\u4F7F\u7528
|
||||
USE_INTABLE.NAME=\u30A4\u30F3\u30E9\u30A4\u30F3\u30C6\u30FC\u30D6\u30EB\u306E\u4F7F\u7528
|
||||
USE_INLINECONTENT.NAME=\u30A4\u30F3\u30E9\u30A4\u30F3\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u4F7F\u7528
|
||||
INLINECONTENT.NAME=\u30B3\u30F3\u30C6\u30F3\u30C4
|
||||
ROWSEPARATOR.NAME=\u884C\u533A\u5207\u308A
|
||||
FIELDSEPARATOR.NAME=\u30D5\u30A3\u30FC\u30EB\u30C9\u533A\u5207\u308A
|
||||
@@ -0,0 +1,10 @@
|
||||
LONG_NAME=\u5185\u90E8\u5909\u6570\u304B\u3089\u56FA\u5B9A\u30D5\u30ED\u30FC\u3092\u4F5C\u6210
|
||||
HELP=org.talend.help.tFixedFlowInput
|
||||
NB_LINE.NAME=\u884c\u6570
|
||||
NB_ROWS.NAME=\u30ed\u30a6\u6570
|
||||
VALUES.NAME=\u5024
|
||||
VALUES.ITEM.VALUE=\u5024
|
||||
MODE.NAME=\u30E2\u30FC\u30C9
|
||||
INLINECONTENT.NAME=\u30B3\u30F3\u30C6\u30F3\u30C4
|
||||
ROWSEPARATOR.NAME=\u30ED\u30A6\u30BB\u30D1\u30EC\u30FC\u30BF
|
||||
FIELDSEPARATOR.NAME=\u30D5\u30A3\u30FC\u30EB\u30C9\u30BB\u30D1\u30EC\u30FC\u30BF
|
||||
@@ -0,0 +1,6 @@
|
||||
NB_LINE.NAME=\u0427\u0438\u0441\u043B\u043E \u0441\u0442\u0440\u043E\u043A
|
||||
VALUES.NAME=\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u044F
|
||||
VALUES.ITEM.VALUE=\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435
|
||||
INLINECONTENT.NAME=\u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435
|
||||
ROWSEPARATOR.NAME=\u0420\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C \u0441\u0442\u0440\u043E\u043A
|
||||
FIELDSEPARATOR.NAME=\u0420\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C \u043F\u043E\u043B\u0435\u0439
|
||||
@@ -0,0 +1,3 @@
|
||||
VALUES.ITEM.VALUE=Hodnota
|
||||
MODE.NAME=M\u00F3d
|
||||
INLINECONTENT.NAME=Obsah
|
||||
@@ -0,0 +1,3 @@
|
||||
VALUES.ITEM.VALUE=Hodnota
|
||||
MODE.NAME=M<EFBFBD>d
|
||||
INLINECONTENT.NAME=Obsah
|
||||
@@ -0,0 +1,14 @@
|
||||
LONG_NAME=\u4ECE\u5185\u90E8\u53D8\u91CF\u521B\u5EFA\u56FA\u5B9A\u6D41
|
||||
HELP=org.talend.help.tFixedFlowInput
|
||||
NB_LINE.NAME=\u884C\u6570
|
||||
NB_ROWS.NAME=\u884C\u6570
|
||||
VALUES.NAME=\u503C
|
||||
VALUES.ITEM.VALUE=\u503C
|
||||
INTABLE.NAME=\u5185\u8054\u8868
|
||||
MODE.NAME=\u6A21\u5F0F
|
||||
USE_SINGLEMODE.NAME=\u4F7F\u7528\u5355\u8868
|
||||
USE_INTABLE.NAME=\u4F7F\u7528\u5185\u8054\u8868
|
||||
USE_INLINECONTENT.NAME=\u4F7F\u7528\u5185\u8054\u5185\u5BB9 (\u5206\u9694\u6587\u4EF6)
|
||||
INLINECONTENT.NAME=\u5185\u5BB9
|
||||
ROWSEPARATOR.NAME=\u884C\u5206\u9694\u7B26
|
||||
FIELDSEPARATOR.NAME=\u5B57\u6BB5\u5206\u9694\u7B26
|
||||
@@ -0,0 +1,14 @@
|
||||
<%@ jet
|
||||
imports="
|
||||
org.talend.core.model.process.INode
|
||||
org.talend.core.model.process.ElementParameterParser
|
||||
org.talend.designer.codegen.config.CodeGeneratorArgument
|
||||
"
|
||||
%>
|
||||
|
||||
<%
|
||||
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
|
||||
INode node = (INode)codeGenArgument.getArgument();
|
||||
%>
|
||||
|
||||
<%=ElementParameterParser.getValue(node, "__CODE__") %>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.5 KiB |
@@ -0,0 +1,52 @@
|
||||
<COMPONENT>
|
||||
<HEADER
|
||||
PLATEFORM="ALL"
|
||||
SERIAL=""
|
||||
VERSION="0.101"
|
||||
STATUS="ALPHA"
|
||||
|
||||
COMPATIBILITY="ALL"
|
||||
AUTHOR="Talend"
|
||||
RELEASE_DATE="20070210A"
|
||||
STARTABLE="true"
|
||||
PARTITIONING="AUTO"
|
||||
>
|
||||
<SIGNATURE></SIGNATURE>
|
||||
</HEADER>
|
||||
|
||||
<FAMILIES>
|
||||
<FAMILY>Custom_Code</FAMILY>
|
||||
</FAMILIES>
|
||||
|
||||
<DOCUMENTATION>
|
||||
<URL/>
|
||||
</DOCUMENTATION>
|
||||
|
||||
<CONNECTORS>
|
||||
<CONNECTOR CTYPE="FLOW" MAX_INPUT="1" MAX_OUTPUT="1"/>
|
||||
<CONNECTOR CTYPE="ITERATE" MAX_OUTPUT="1" MAX_INPUT="1"/>
|
||||
<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="CODE" FIELD="MEMO_JAVA" RAW="true" REQUIRED="false" NUM_ROW="2" NB_LINES="9" CONTEXT="begin">
|
||||
<DEFAULT>String foo = "bar";</DEFAULT>
|
||||
</PARAMETER>
|
||||
</PARAMETERS>
|
||||
|
||||
|
||||
<ADVANCED_PARAMETERS>
|
||||
<PARAMETER NAME="IMPORT" FIELD="MEMO_IMPORT" RAW="true" REQUIRED="false" NUM_ROW="1" NB_LINES="3">
|
||||
<DEFAULT>//import java.util.List;</DEFAULT>
|
||||
</PARAMETER>
|
||||
</ADVANCED_PARAMETERS>
|
||||
|
||||
<CODEGENERATION/>
|
||||
|
||||
<RETURNS/>
|
||||
|
||||
</COMPONENT>
|
||||
@@ -0,0 +1,4 @@
|
||||
CODE.NAME=Code
|
||||
HELP=org.talend.help.tJava
|
||||
LONG_NAME=Allows to enter manually the start Java-code part of a component
|
||||
IMPORT.NAME=Import
|
||||
@@ -0,0 +1,3 @@
|
||||
CODE.NAME=Code
|
||||
LONG_NAME=Erm\u00F6glich die manuelle Eingabe des Java-Codes f\u00FCr den Start Bereich der Komponente
|
||||
IMPORT.NAME=Importiere
|
||||
@@ -0,0 +1 @@
|
||||
CODE.NAME=Codigo
|
||||
@@ -0,0 +1,4 @@
|
||||
CODE.NAME=Code
|
||||
HELP=org.talend.help.tJava
|
||||
LONG_NAME=Permet de saisir manuellement le code Java initial d'un composant
|
||||
IMPORT.NAME=Import
|
||||
@@ -0,0 +1,3 @@
|
||||
CODE.NAME=Codice
|
||||
LONG_NAME=Permetti di inserire manualmente lo start Java-code in un componente
|
||||
IMPORT.NAME=Importa
|
||||
@@ -0,0 +1,4 @@
|
||||
CODE.NAME=\u30B3\u30FC\u30C9
|
||||
HELP=org.talend.help.tJava
|
||||
LONG_NAME=Java\u30B3\u30FC\u30C9\u306B\u3066\u3001\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u958B\u59CB\u51E6\u7406(begin)\u306E\u30B9\u30AF\u30EA\u30D7\u30C8\u3092\u30DE\u30CB\u30E5\u30A2\u30EB\u4F5C\u6210
|
||||
IMPORT.NAME=\u30A4\u30F3\u30DD\u30FC\u30C8
|
||||
@@ -0,0 +1,4 @@
|
||||
CODE.NAME=\u30B3\u30FC\u30C9
|
||||
HELP=org.talend.help.tJava
|
||||
LONG_NAME=Java\u30B3\u30FC\u30C9\u306B\u3066\u3001\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u958B\u59CB\u51E6\u7406(begin)\u306E\u30B9\u30AF\u30EA\u30D7\u30C8\u3092\u30DE\u30CB\u30E5\u30A2\u30EB\u4F5C\u6210
|
||||
IMPORT.NAME=\u30A4\u30F3\u30DD\u30FC\u30C8
|
||||
@@ -0,0 +1 @@
|
||||
CODE.NAME=\u041A\u043E\u0434
|
||||
@@ -0,0 +1 @@
|
||||
CODE.NAME=K\u00F3d
|
||||
@@ -0,0 +1 @@
|
||||
CODE.NAME=K<EFBFBD>d
|
||||
@@ -0,0 +1,4 @@
|
||||
CODE.NAME=\u4EE3\u7801
|
||||
HELP=org.talend.help.tJava
|
||||
LONG_NAME=\u5141\u8BB8\u624B\u52A8\u8F93\u5165\u7EC4\u4EF6\u7684 Java \u4EE3\u7801\u7684\u5F00\u59CB\u90E8\u5206\u3002
|
||||
IMPORT.NAME=\u5BFC\u5165
|
||||
@@ -0,0 +1,441 @@
|
||||
<%@ jet
|
||||
imports="
|
||||
org.talend.core.model.process.INode
|
||||
org.talend.core.model.process.ElementParameterParser
|
||||
org.talend.designer.codegen.config.CodeGeneratorArgument
|
||||
org.talend.core.model.metadata.IMetadataTable
|
||||
org.talend.core.model.metadata.IMetadataColumn
|
||||
org.talend.core.model.metadata.types.JavaType
|
||||
org.talend.core.model.process.IConnection
|
||||
org.talend.core.model.process.IConnectionCategory
|
||||
org.talend.core.model.metadata.types.JavaTypesManager
|
||||
org.talend.core.model.utils.NodeUtil
|
||||
java.util.List
|
||||
java.util.Map
|
||||
"
|
||||
%>
|
||||
|
||||
<%
|
||||
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
|
||||
INode node = (INode)codeGenArgument.getArgument();
|
||||
|
||||
List<IMetadataTable> metadatas = node.getMetadataList();
|
||||
if ((metadatas!=null)&&(metadatas.size()>0)) {//1
|
||||
IMetadataTable metadata = metadatas.get(0);
|
||||
if (metadata!=null) {//2
|
||||
|
||||
String cid = node.getUniqueName();
|
||||
String label = ElementParameterParser.getValue(node, "__LABEL__");
|
||||
if(("__UNIQUE_NAME__").equals(label))
|
||||
label=cid;
|
||||
boolean tablePrint = ("true").equals(ElementParameterParser.getValue(node,"__TABLE_PRINT__"));
|
||||
String printHeader = ElementParameterParser.getValue(node,"__PRINT_HEADER__");
|
||||
boolean vertical = ("true").equals(ElementParameterParser.getValue(node,"__VERTICAL__"));
|
||||
boolean uniquePrint = ("true").equals(ElementParameterParser.getValue(node,"__PRINT_UNIQUE__"));
|
||||
boolean titlePrint = ("true").equals(ElementParameterParser.getValue(node,"__PRINT_LABEL__"));
|
||||
boolean uniqueTitlePrint = ("true").equals(ElementParameterParser.getValue(node,"__PRINT_UNIQUE_LABEL__"));
|
||||
boolean basic = !(tablePrint||vertical);
|
||||
boolean isLog4jEnabled = ("true").equals(ElementParameterParser.getValue(node.getProcess(), "__LOG4J_ACTIVATE__"));
|
||||
boolean isLogContent = ("true").equals(ElementParameterParser.getValue(node,"__PRINT_CONTENT_WITH_LOG4J__"));
|
||||
|
||||
List<IMetadataColumn> columns = metadata.getListColumns();
|
||||
int sizeColumns = columns.size();
|
||||
%>
|
||||
///////////////////////
|
||||
<%
|
||||
if(tablePrint) { // table display mode
|
||||
%>
|
||||
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/tablePrintLogUtil.javajet"%>
|
||||
<%
|
||||
}
|
||||
// vertical display mode
|
||||
if(vertical) {
|
||||
%>
|
||||
|
||||
|
||||
class Util_<%=cid %> {
|
||||
|
||||
String[] des_top = { ".", "-" };
|
||||
|
||||
String[] des_data = { "-", "+" };
|
||||
|
||||
String[] des_frame = { "|" };
|
||||
|
||||
public void printLine(StringBuilder sb, int titleWidth, int dataWidth){
|
||||
|
||||
sb.append("+");
|
||||
for(int i=0; i<titleWidth+2; i++)
|
||||
sb.append("-");
|
||||
sb.append("+");
|
||||
for(int i=0; i<dataWidth+2; i++)
|
||||
sb.append("-");
|
||||
sb.append("+" + "\n");
|
||||
}
|
||||
|
||||
public String print(String[] row, int nbLine){
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
<%
|
||||
if(uniquePrint) {
|
||||
%>
|
||||
String title = "#" + nbLine + ". " + "<%=cid%>";
|
||||
<%
|
||||
} else if(titlePrint) {
|
||||
%>
|
||||
String title = "#" + nbLine + ". " + "<%=label%>";
|
||||
<%
|
||||
} else if(uniqueTitlePrint) {
|
||||
%>
|
||||
String title = "#" + nbLine + ". " + "<%=cid%>--<%=label%>";
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
//step 1: get the max length of all the row[] member;
|
||||
int dataWidth = 5; //the length of the string "value"
|
||||
for(int i=0;i<row.length;i++) {
|
||||
if(row[i] == null && 4 > dataWidth) {
|
||||
dataWidth = 4;
|
||||
}
|
||||
else if(row[i] != null && row[i].length()>dataWidth)
|
||||
dataWidth = row[i].length();
|
||||
}
|
||||
<%
|
||||
int titleWidth = 3; //the length of the string 'key'
|
||||
for(IMetadataColumn column:columns)
|
||||
if(column.getLabel().length()>titleWidth) titleWidth = column.getLabel().length();
|
||||
%>
|
||||
int titleWidth = <%=titleWidth%>;
|
||||
|
||||
int totalWidth = dataWidth + titleWidth + 5;
|
||||
|
||||
//step 2: print the header with line number
|
||||
sb.append(".");
|
||||
for(int i=0 ; i<totalWidth ; i++)
|
||||
sb.append("-");
|
||||
sb.append("." + "\n" + "|");
|
||||
|
||||
int emptyCenterWidth = (totalWidth-title.length())/2;
|
||||
for(int i=0 ; i<emptyCenterWidth; i++)
|
||||
sb.append(" ");
|
||||
sb.append(title);
|
||||
for(int i=0 ; i<totalWidth - emptyCenterWidth - title.length() ; i++)
|
||||
sb.append(" ");
|
||||
sb.append("|" + "\n");
|
||||
|
||||
//step 3: print "key" and "value"
|
||||
printLine(sb,titleWidth,dataWidth);
|
||||
|
||||
sb.append("|" + " key");
|
||||
for(int i=0; i<titleWidth-2; i++)
|
||||
sb.append(" ");
|
||||
sb.append("|" + " value");
|
||||
for(int i=0; i<dataWidth-4; i++)
|
||||
sb.append(" ");
|
||||
sb.append("|" + "\n");
|
||||
|
||||
printLine(sb,titleWidth,dataWidth);
|
||||
|
||||
//step 4: print dataset
|
||||
<%
|
||||
int count = 0;
|
||||
for(IMetadataColumn column:columns){
|
||||
%>
|
||||
//for(int i=0; i<row.length; i++){
|
||||
sb.append("| " + "<%=column.getLabel()%>");
|
||||
for(int i=0; i<titleWidth -"<%=column.getLabel()%>".length()+ 1 ;i++)
|
||||
sb.append(" ");
|
||||
sb.append("| " + row[<%=count%>]);
|
||||
for(int i=0; row[<%=count%>] == null && i<dataWidth - 3 || row[<%=count%>] != null && i<dataWidth -row[<%=count%>].length()+ 1 ;i++)
|
||||
sb.append(" ");
|
||||
sb.append("|" + "\n");
|
||||
|
||||
//}
|
||||
|
||||
<%
|
||||
count++;
|
||||
}%>
|
||||
//step 5: print a line gap
|
||||
printLine(sb,titleWidth,dataWidth);
|
||||
return sb.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Util_<%=cid %> util_<%=cid %> = new Util_<%=cid %>();
|
||||
|
||||
|
||||
|
||||
|
||||
java.io.PrintStream consoleOut_<%=cid%> = null;
|
||||
if (globalMap.get("tLogRow_CONSOLE")!=null){
|
||||
consoleOut_<%=cid%> = (java.io.PrintStream) globalMap.get("tLogRow_CONSOLE");
|
||||
}else{
|
||||
consoleOut_<%=cid%> = new java.io.PrintStream(new java.io.BufferedOutputStream(System.out));
|
||||
globalMap.put("tLogRow_CONSOLE",consoleOut_<%=cid%>);
|
||||
}
|
||||
|
||||
<%
|
||||
}
|
||||
|
||||
if(basic) {// basic display mode
|
||||
%>
|
||||
final String OUTPUT_FIELD_SEPARATOR_<%=cid %> = <%=ElementParameterParser.getValue(node, "__FIELDSEPARATOR__") %>;
|
||||
java.io.PrintStream consoleOut_<%=cid%> = null;
|
||||
<%
|
||||
if (("true").equals(printHeader)) {
|
||||
%>
|
||||
|
||||
|
||||
StringBuilder sbHeader_<%=cid%> = new StringBuilder();
|
||||
<%
|
||||
for (int i = 0; i < sizeColumns; i++) {
|
||||
IMetadataColumn column = columns.get(i);
|
||||
%>
|
||||
|
||||
sbHeader_<%=cid%>.append("<%=column.getLabel() %>");
|
||||
|
||||
<%
|
||||
if(i == sizeColumns-1) break;
|
||||
%>
|
||||
sbHeader_<%=cid%>.append("\t");
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
if (globalMap.get("tLogRow_CONSOLE")!=null)
|
||||
{
|
||||
consoleOut_<%=cid%> = (java.io.PrintStream) globalMap.get("tLogRow_CONSOLE");
|
||||
}
|
||||
else
|
||||
{
|
||||
consoleOut_<%=cid%> = new java.io.PrintStream(new java.io.BufferedOutputStream(System.out));
|
||||
globalMap.put("tLogRow_CONSOLE",consoleOut_<%=cid%>);
|
||||
}
|
||||
<%
|
||||
if(isLogContent && isLog4jEnabled){
|
||||
%>
|
||||
log.info("<%=cid%> - Header names: " + sbHeader_<%=cid%>.toString());
|
||||
<%
|
||||
}
|
||||
%>
|
||||
consoleOut_<%=cid%>.println(sbHeader_<%=cid%>.toString());
|
||||
consoleOut_<%=cid%>.flush();
|
||||
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
<%
|
||||
}
|
||||
%>
|
||||
StringBuilder strBuffer_<%=cid%> = null;
|
||||
int nb_line_<%=cid%> = 0;
|
||||
///////////////////////
|
||||
|
||||
<%
|
||||
String printColumnNames = ElementParameterParser.getValue(node,"__PRINT_COLNAMES__");
|
||||
String useFixedLength = ElementParameterParser.getValue(node,"__USE_FIXED_LENGTH__");
|
||||
List<Map<String, String>> lengths = (List<Map<String,String>>)ElementParameterParser.getObjectValue(node,"__LENGTHS__");
|
||||
List< ? extends IConnection> conns = node.getIncomingConnections();
|
||||
for (IConnection conn : conns) {//3
|
||||
if (conn.getLineStyle().hasConnectionCategory(IConnectionCategory.DATA)) {//4
|
||||
int schemaOptNum=100;
|
||||
String schemaOptNumStr=ElementParameterParser.getValue(node, "__SCHEMA_OPT_NUM__");
|
||||
if(schemaOptNumStr!=null && !"".equals(schemaOptNumStr) && !"\"\"".equals(schemaOptNumStr)){
|
||||
schemaOptNum = Integer.parseInt(schemaOptNumStr);
|
||||
}
|
||||
boolean isOptimizeCode = false;
|
||||
if(schemaOptNum < sizeColumns){
|
||||
isOptimizeCode = true;
|
||||
}
|
||||
if(isOptimizeCode){//5
|
||||
%>
|
||||
class LogRowUtil_<%=cid%>{
|
||||
<%
|
||||
if (basic||vertical) { // A1
|
||||
for (int i = 0; i < sizeColumns; i++) {//B1
|
||||
IMetadataColumn column = columns.get(i);
|
||||
JavaType javaType = JavaTypesManager.getJavaTypeFromId(column.getTalendType());
|
||||
if(i%schemaOptNum==0){
|
||||
%>
|
||||
public void putBasicVerticalValue_<%=i/schemaOptNum%>(final <%=NodeUtil.getPrivateConnClassName(conn)%>Struct <%=conn.getName() %>,StringBuilder strBuffer_<%=cid%>){
|
||||
<%
|
||||
}
|
||||
if (("true").equals(useFixedLength)) {//fix the column length
|
||||
%>
|
||||
java.util.Formatter formatter_<%=column.getLabel() %>_<%=cid%> = new java.util.Formatter(new StringBuilder());
|
||||
<%
|
||||
}
|
||||
if (("true").equals(printColumnNames)) {//print the schema name
|
||||
%>
|
||||
strBuffer_<%=cid%>.append("<%=column.getLabel() %>: ");
|
||||
<%
|
||||
}
|
||||
boolean isPrimitive = JavaTypesManager.isJavaPrimitiveType( javaType, column.isNullable());
|
||||
if(!isPrimitive) { //begin
|
||||
%>
|
||||
if(<%=conn.getName() %>.<%=column.getLabel() %> != null) { //
|
||||
<%
|
||||
}
|
||||
if (("true").equals(useFixedLength)) {//AAA
|
||||
%>
|
||||
strBuffer_<%=cid%>.append(formatter_<%=column.getLabel() %>_<%=cid%>.format("%1$"+<%=lengths.get(i).get("LENGTH") %>+"s",
|
||||
<%
|
||||
String pattern = column.getPattern() == null || column.getPattern().trim().length() == 0 ? null : column.getPattern();
|
||||
if (javaType == JavaTypesManager.DATE && pattern != null && pattern.trim().length() != 0) {//Date
|
||||
%>
|
||||
FormatterUtils.format_Date(<%=conn.getName() %>.<%=column.getLabel() %>, <%= pattern %>)
|
||||
<%
|
||||
} else if (javaType == JavaTypesManager.BYTE_ARRAY) {//byte[]
|
||||
%>
|
||||
java.nio.charset.Charset.defaultCharset().decode(java.nio.ByteBuffer.wrap(<%=conn.getName() %>.<%=column.getLabel() %>)).toString()
|
||||
<%
|
||||
} else if (javaType == JavaTypesManager.BIGDECIMAL) {
|
||||
%>
|
||||
<%=column.getPrecision() == null? conn.getName() + "." + column.getLabel() : conn.getName() + "." + column.getLabel() + ".setScale(" + column.getPrecision() + ", java.math.RoundingMode.HALF_UP)" %>.toPlainString()
|
||||
<%
|
||||
} else if (javaType == JavaTypesManager.DOUBLE || javaType == JavaTypesManager.FLOAT ) {
|
||||
%>
|
||||
FormatterUtils.formatUnwithE(<%=conn.getName() %>.<%=column.getLabel() %>)
|
||||
<%
|
||||
} else {//others
|
||||
%>
|
||||
String.valueOf(<%=conn.getName() %>.<%=column.getLabel() %>)
|
||||
<%
|
||||
}
|
||||
%>
|
||||
).toString());
|
||||
<%
|
||||
} else {//AAA
|
||||
%>
|
||||
strBuffer_<%=cid%>.append(
|
||||
<%
|
||||
String pattern = column.getPattern() == null || column.getPattern().trim().length() == 0 ? null : column.getPattern();
|
||||
if (javaType == JavaTypesManager.DATE && pattern != null && pattern.trim().length() != 0) {//Date
|
||||
%>
|
||||
FormatterUtils.format_Date(<%=conn.getName() %>.<%=column.getLabel() %>, <%= pattern %>)
|
||||
<%
|
||||
} else if (javaType == JavaTypesManager.BYTE_ARRAY) {//byte[]
|
||||
%>
|
||||
java.nio.charset.Charset.defaultCharset().decode(java.nio.ByteBuffer.wrap(<%=conn.getName() %>.<%=column.getLabel() %>)).toString()
|
||||
<%
|
||||
} else if (javaType == JavaTypesManager.BIGDECIMAL) {
|
||||
%>
|
||||
<%=column.getPrecision() == null? conn.getName() + "." + column.getLabel() : conn.getName() + "." + column.getLabel() + ".setScale(" + column.getPrecision() + ", java.math.RoundingMode.HALF_UP)" %>.toPlainString()
|
||||
<%
|
||||
} else if (javaType == JavaTypesManager.DOUBLE || javaType == JavaTypesManager.FLOAT ) {
|
||||
%>
|
||||
FormatterUtils.formatUnwithE(<%=conn.getName() %>.<%=column.getLabel() %>)
|
||||
<%
|
||||
} else {//others
|
||||
%>
|
||||
String.valueOf(<%=conn.getName() %>.<%=column.getLabel() %>)
|
||||
<%
|
||||
}
|
||||
%>
|
||||
);
|
||||
<%
|
||||
}//AAA
|
||||
if(!isPrimitive) {//end
|
||||
%>
|
||||
} //
|
||||
<%
|
||||
}
|
||||
if(i == sizeColumns-1){
|
||||
if((i+1)%schemaOptNum==0){
|
||||
%>
|
||||
}
|
||||
<%
|
||||
}
|
||||
break;
|
||||
}else{
|
||||
%>
|
||||
strBuffer_<%=cid%>.append(<%=ElementParameterParser.getValue(node, "__FIELDSEPARATOR__") %>);
|
||||
<%
|
||||
}
|
||||
if((i+1)%schemaOptNum==0){
|
||||
%>
|
||||
}
|
||||
<%
|
||||
}
|
||||
}//B1
|
||||
if(sizeColumns>0 && (sizeColumns%schemaOptNum)>0){
|
||||
%>
|
||||
}
|
||||
<%
|
||||
}
|
||||
}//A1
|
||||
if(tablePrint || vertical) { //C1
|
||||
for (int i = 0; i < sizeColumns; i++) {//D1
|
||||
IMetadataColumn column = columns.get(i);
|
||||
JavaType javaType = JavaTypesManager.getJavaTypeFromId(column.getTalendType());
|
||||
boolean isPrimitive = JavaTypesManager.isJavaPrimitiveType( javaType, column.isNullable());
|
||||
if(i%schemaOptNum==0){
|
||||
%>
|
||||
public void putTableVerticalValue_<%=i/schemaOptNum%>(final <%=NodeUtil.getPrivateConnClassName(conn) %>Struct <%=conn.getName() %>,String[] row_<%=cid%>){
|
||||
<%
|
||||
}
|
||||
if(!isPrimitive) { //begin
|
||||
%>
|
||||
if(<%=conn.getName() %>.<%=column.getLabel() %> != null) { //
|
||||
<%
|
||||
}
|
||||
%>
|
||||
row_<%=cid%>[<%=i %>]=
|
||||
<%
|
||||
String pattern = column.getPattern() == null || column.getPattern().trim().length() == 0 ? null : column.getPattern();
|
||||
if (javaType == JavaTypesManager.DATE && pattern != null && pattern.trim().length() != 0) {//Date
|
||||
%>
|
||||
FormatterUtils.format_Date(<%=conn.getName() %>.<%=column.getLabel() %>, <%= pattern %>)
|
||||
<%
|
||||
} else if (javaType == JavaTypesManager.BYTE_ARRAY) {//byte[]
|
||||
%>
|
||||
java.nio.charset.Charset.defaultCharset().decode(java.nio.ByteBuffer.wrap(<%=conn.getName() %>.<%=column.getLabel() %>)).toString()
|
||||
<%
|
||||
} else if (javaType == JavaTypesManager.BIGDECIMAL) {
|
||||
%>
|
||||
<%=column.getPrecision() == null? conn.getName() + "." + column.getLabel() : conn.getName() + "." + column.getLabel() + ".setScale(" + column.getPrecision() + ", java.math.RoundingMode.HALF_UP)" %>.toPlainString()
|
||||
<%
|
||||
} else if (javaType == JavaTypesManager.DOUBLE || javaType == JavaTypesManager.FLOAT ) {
|
||||
%>
|
||||
FormatterUtils.formatUnwithE(<%=conn.getName() %>.<%=column.getLabel() %>)
|
||||
<%
|
||||
} else {//others
|
||||
%>
|
||||
String.valueOf(<%=conn.getName() %>.<%=column.getLabel() %>)
|
||||
<%
|
||||
}
|
||||
%>
|
||||
;
|
||||
<%
|
||||
if(!isPrimitive) {//end
|
||||
%>
|
||||
} //
|
||||
<%
|
||||
}
|
||||
if((i+1)%schemaOptNum==0){
|
||||
%>
|
||||
}
|
||||
<%
|
||||
}
|
||||
}//D1
|
||||
if(sizeColumns>0&&(sizeColumns%schemaOptNum)>0){
|
||||
%>
|
||||
}
|
||||
<%
|
||||
}
|
||||
}//C1
|
||||
%>
|
||||
}
|
||||
LogRowUtil_<%=cid%> logRowUtil_<%=cid%>=new LogRowUtil_<%=cid%>();
|
||||
<%
|
||||
}//5
|
||||
}//4
|
||||
}//3
|
||||
}//2
|
||||
}//1
|
||||
%>
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
<%@ jet
|
||||
imports="
|
||||
org.talend.core.model.process.INode
|
||||
org.talend.core.model.process.ElementParameterParser
|
||||
org.talend.designer.codegen.config.CodeGeneratorArgument
|
||||
org.talend.core.model.metadata.IMetadataTable
|
||||
java.util.List
|
||||
"
|
||||
%>
|
||||
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/Log4j/LogUtil.javajet"%>
|
||||
<%
|
||||
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
|
||||
INode node = (INode)codeGenArgument.getArgument();
|
||||
log = new LogUtil(node);
|
||||
List<IMetadataTable> metadatas = node.getMetadataList();
|
||||
if ((metadatas!=null)&&(metadatas.size()>0)) {//1
|
||||
IMetadataTable metadata = metadatas.get(0);
|
||||
if (metadata!=null) {//2
|
||||
|
||||
String cid = node.getUniqueName();
|
||||
String tablePrint = ElementParameterParser.getValue(node,"__TABLE_PRINT__");
|
||||
%>
|
||||
|
||||
//////
|
||||
<%
|
||||
if (("true").equals(tablePrint)) {//print all records one time
|
||||
%>
|
||||
|
||||
|
||||
java.io.PrintStream consoleOut_<%=cid%> = null;
|
||||
if (globalMap.get("tLogRow_CONSOLE")!=null)
|
||||
{
|
||||
consoleOut_<%=cid%> = (java.io.PrintStream) globalMap.get("tLogRow_CONSOLE");
|
||||
}
|
||||
else
|
||||
{
|
||||
consoleOut_<%=cid%> = new java.io.PrintStream(new java.io.BufferedOutputStream(System.out));
|
||||
globalMap.put("tLogRow_CONSOLE",consoleOut_<%=cid%>);
|
||||
}
|
||||
|
||||
consoleOut_<%=cid%>.println(util_<%=cid %>.format().toString());
|
||||
consoleOut_<%=cid%>.flush();
|
||||
<%
|
||||
}
|
||||
%>
|
||||
//////
|
||||
globalMap.put("<%=cid %>_NB_LINE",nb_line_<%=cid %>);
|
||||
<%log.info(log.str("Printed row count: "), log.var("nb_line"), log.str("."));%>
|
||||
|
||||
///////////////////////
|
||||
<%
|
||||
}//2
|
||||
}//1
|
||||
%>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.6 KiB |
@@ -0,0 +1,103 @@
|
||||
<!-- $Id: tLogRow_perl.xml 1528 2007-01-19 17:03:36 +0000 (星期五, 19 一月 2007) smallet $ -->
|
||||
<COMPONENT>
|
||||
<HEADER PLATEFORM="ALL" SERIAL="" VERSION="0.101" STATUS="ALPHA"
|
||||
COMPATIBILITY="ALL" AUTHOR="Talend" RELEASE_DATE="20050320A"
|
||||
STARTABLE="false" PARTITIONING="AUTO" LOG4J_ENABLED="true">
|
||||
<SIGNATURE></SIGNATURE>
|
||||
</HEADER>
|
||||
|
||||
<FAMILIES>
|
||||
<FAMILY>Logs_Errors</FAMILY>
|
||||
</FAMILIES>
|
||||
<DOCUMENTATION>
|
||||
<URL />
|
||||
</DOCUMENTATION>
|
||||
<CONNECTORS>
|
||||
<CONNECTOR CTYPE="FLOW" MAX_INPUT="1" MAX_OUTPUT="1"/>
|
||||
<CONNECTOR CTYPE="ITERATE" MAX_OUTPUT="0" MAX_INPUT="0" />
|
||||
<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" FIELD="SCHEMA_TYPE" REQUIRED="true"
|
||||
NUM_ROW="10" />
|
||||
|
||||
|
||||
<PARAMETER NAME="BASIC_MODE" FIELD="RADIO" NUM_ROW="11" GROUP="MODE">
|
||||
<DEFAULT>true</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER NAME="TABLE_PRINT" FIELD="RADIO" NUM_ROW="12" GROUP="MODE">
|
||||
<DEFAULT>false</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER NAME="VERTICAL" FIELD="RADIO" NUM_ROW="13" GROUP="MODE">
|
||||
<DEFAULT>false</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER NAME="PRINT_UNIQUE" FIELD="RADIO" GROUP="TITLE_PRINT" NUM_ROW="15"
|
||||
SHOW_IF="(BASIC_MODE == 'false') and (VERTICAL == 'true')">
|
||||
<DEFAULT>true</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER NAME="PRINT_LABEL" FIELD="RADIO" GROUP="TITLE_PRINT" NUM_ROW="15"
|
||||
SHOW_IF="(BASIC_MODE == 'false') and (VERTICAL == 'true')">
|
||||
<DEFAULT>false</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER NAME="PRINT_UNIQUE_LABEL" FIELD="RADIO" GROUP="TITLE_PRINT" NUM_ROW="15"
|
||||
SHOW_IF="(BASIC_MODE == 'false') and (VERTICAL == 'true')">
|
||||
<DEFAULT>false</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER NAME="FIELDSEPARATOR" FIELD="TEXT" NUM_ROW="20"
|
||||
SHOW_IF="(TABLE_PRINT == 'false') and (VERTICAL == 'false')">
|
||||
<DEFAULT>"|"</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER NAME="PRINT_HEADER" FIELD="CHECK" NUM_ROW="25"
|
||||
SHOW_IF="(TABLE_PRINT == 'false') and (VERTICAL == 'false')">
|
||||
<DEFAULT>false</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER NAME="PRINT_UNIQUE_NAME" FIELD="CHECK" NUM_ROW="30"
|
||||
SHOW_IF="(TABLE_PRINT == 'false') and (VERTICAL == 'false')">
|
||||
<DEFAULT>false</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER NAME="PRINT_COLNAMES" FIELD="CHECK" NUM_ROW="40"
|
||||
SHOW_IF="(TABLE_PRINT == 'false') and (VERTICAL == 'false')">
|
||||
<DEFAULT>false</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER NAME="USE_FIXED_LENGTH" FIELD="CHECK" NUM_ROW="50"
|
||||
SHOW_IF="(TABLE_PRINT == 'false') and (VERTICAL == 'false')">
|
||||
<DEFAULT>false</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER NAME="LENGTHS" FIELD="TABLE" REQUIRED="true"
|
||||
NUM_ROW="60" NB_LINES="5"
|
||||
SHOW_IF="(USE_FIXED_LENGTH == 'true') and ((TABLE_PRINT == 'false') and (VERTICAL == 'false'))">
|
||||
<ITEMS BASED_ON_SCHEMA="true">
|
||||
<ITEM NAME="LENGTH" VALUE="10" />
|
||||
</ITEMS>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER NAME="PRINT_CONTENT_WITH_LOG4J" FIELD="CHECK" NUM_ROW="70" >
|
||||
<DEFAULT>true</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER NAME="SCHEMA_OPT_NUM" FIELD="TEXT" NUM_ROW="100" REQUIRED="true" SHOW="false">
|
||||
<DEFAULT>100</DEFAULT>
|
||||
</PARAMETER>
|
||||
</PARAMETERS>
|
||||
|
||||
<CODEGENERATION />
|
||||
<RETURNS>
|
||||
<RETURN NAME="NB_LINE" TYPE="id_Integer" AVAILABILITY="AFTER" />
|
||||
</RETURNS>
|
||||
</COMPONENT>
|
||||
@@ -0,0 +1,313 @@
|
||||
<%@ 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.designer.codegen.config.CodeGeneratorArgument
|
||||
org.talend.core.model.process.IConnection
|
||||
org.talend.core.model.process.IConnectionCategory
|
||||
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();
|
||||
|
||||
List<IMetadataTable> metadatas = node.getMetadataList();
|
||||
if ((metadatas!=null)&&(metadatas.size()>0)) {//1
|
||||
IMetadataTable metadata = metadatas.get(0);
|
||||
if (metadata!=null) {//2
|
||||
|
||||
String cid = node.getUniqueName();
|
||||
|
||||
boolean tablePrint = ("true").equals(ElementParameterParser.getValue(node,"__TABLE_PRINT__"));
|
||||
boolean vertical = ("true").equals(ElementParameterParser.getValue(node,"__VERTICAL__"));
|
||||
boolean basic = !(tablePrint||vertical);
|
||||
|
||||
String printUniqueName = ElementParameterParser.getValue(node,"__PRINT_UNIQUE_NAME__");
|
||||
String printColumnNames = ElementParameterParser.getValue(node,"__PRINT_COLNAMES__");
|
||||
String useFixedLength = ElementParameterParser.getValue(node,"__USE_FIXED_LENGTH__");
|
||||
List<Map<String, String>> lengths = (List<Map<String,String>>)ElementParameterParser.getObjectValue(node,"__LENGTHS__");
|
||||
boolean isLog4jEnabled = ("true").equals(ElementParameterParser.getValue(node.getProcess(), "__LOG4J_ACTIVATE__"));
|
||||
boolean isLogContent = ("true").equals(ElementParameterParser.getValue(node,"__PRINT_CONTENT_WITH_LOG4J__"));
|
||||
|
||||
List< ? extends IConnection> conns = node.getIncomingConnections();
|
||||
for (IConnection conn : conns) {//3
|
||||
if (conn.getLineStyle().hasConnectionCategory(IConnectionCategory.DATA)) {//4
|
||||
%>
|
||||
///////////////////////
|
||||
|
||||
<%
|
||||
List<IMetadataColumn> columns = metadata.getListColumns();
|
||||
int sizeColumns = columns.size();
|
||||
int schemaOptNum=100;
|
||||
String schemaOptNumStr=ElementParameterParser.getValue(node, "__SCHEMA_OPT_NUM__");
|
||||
if(schemaOptNumStr!=null && !"".equals(schemaOptNumStr) && !"\"\"".equals(schemaOptNumStr)){
|
||||
schemaOptNum = Integer.parseInt(schemaOptNumStr);
|
||||
}
|
||||
boolean isOptimizeCode = false;
|
||||
if(schemaOptNum < sizeColumns){
|
||||
isOptimizeCode = true;
|
||||
}
|
||||
%>
|
||||
|
||||
<%
|
||||
if (basic||vertical) { // don't print the table form//***
|
||||
%>
|
||||
|
||||
|
||||
strBuffer_<%=cid%> = new StringBuilder();
|
||||
<%
|
||||
if (("true").equals(printUniqueName)) {//print the component name.
|
||||
%>
|
||||
strBuffer_<%=cid%>.append("[<%=cid%>] ");
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
|
||||
<%
|
||||
for (int i = 0; i < sizeColumns; i++) {//5
|
||||
|
||||
IMetadataColumn column = columns.get(i);
|
||||
JavaType javaType = JavaTypesManager.getJavaTypeFromId(column.getTalendType());
|
||||
if(isOptimizeCode){
|
||||
if(i%schemaOptNum == 0){
|
||||
%>
|
||||
logRowUtil_<%=cid%>.putBasicVerticalValue_<%=i/schemaOptNum%>(<%=conn.getName() %>,strBuffer_<%=cid%>);
|
||||
<%
|
||||
}
|
||||
}else{
|
||||
if (("true").equals(useFixedLength)) {//fix the column length
|
||||
%>
|
||||
java.util.Formatter formatter_<%=column.getLabel() %>_<%=cid%> = new java.util.Formatter(new StringBuilder());
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
|
||||
<%
|
||||
if (("true").equals(printColumnNames)) {//print the schema name
|
||||
%>
|
||||
strBuffer_<%=cid%>.append("<%=column.getLabel() %>: ");
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
<%
|
||||
boolean isPrimitive = JavaTypesManager.isJavaPrimitiveType( javaType, column.isNullable());
|
||||
if(!isPrimitive) { //begin
|
||||
%>
|
||||
if(<%=conn.getName() %>.<%=column.getLabel() %> != null) { //
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
<%
|
||||
if (("true").equals(useFixedLength)) {//fixed the column length
|
||||
%>
|
||||
strBuffer_<%=cid%>.append(formatter_<%=column.getLabel() %>_<%=cid%>.format("%1$"+<%=lengths.get(i).get("LENGTH") %>+"s",
|
||||
<%
|
||||
String pattern = column.getPattern() == null || column.getPattern().trim().length() == 0 ? null : column.getPattern();
|
||||
if (javaType == JavaTypesManager.DATE && pattern != null && pattern.trim().length() != 0) {//Date
|
||||
%>
|
||||
FormatterUtils.format_Date(<%=conn.getName() %>.<%=column.getLabel() %>, <%= pattern %>)
|
||||
<%
|
||||
} else if (javaType == JavaTypesManager.BYTE_ARRAY) {//byte[]
|
||||
%>
|
||||
java.nio.charset.Charset.defaultCharset().decode(java.nio.ByteBuffer.wrap(<%=conn.getName() %>.<%=column.getLabel() %>)).toString()
|
||||
<%
|
||||
} else if (javaType == JavaTypesManager.BIGDECIMAL) {
|
||||
%>
|
||||
<%=column.getPrecision() == null? conn.getName() + "." + column.getLabel() : conn.getName() + "." + column.getLabel() + ".setScale(" + column.getPrecision() + ", java.math.RoundingMode.HALF_UP)" %>.toPlainString()
|
||||
<%
|
||||
} else if (javaType == JavaTypesManager.DOUBLE || javaType == JavaTypesManager.FLOAT ) {
|
||||
%>
|
||||
FormatterUtils.formatUnwithE(<%=conn.getName() %>.<%=column.getLabel() %>)
|
||||
<%
|
||||
} else {//others
|
||||
%>
|
||||
String.valueOf(<%=conn.getName() %>.<%=column.getLabel() %>)
|
||||
<%
|
||||
}
|
||||
%>
|
||||
).toString());
|
||||
|
||||
<%
|
||||
} else {
|
||||
%>
|
||||
|
||||
strBuffer_<%=cid%>.append(
|
||||
<%
|
||||
String pattern = column.getPattern() == null || column.getPattern().trim().length() == 0 ? null : column.getPattern();
|
||||
if (javaType == JavaTypesManager.DATE && pattern != null && pattern.trim().length() != 0) {//Date
|
||||
%>
|
||||
FormatterUtils.format_Date(<%=conn.getName() %>.<%=column.getLabel() %>, <%= pattern %>)
|
||||
<%
|
||||
} else if (javaType == JavaTypesManager.BYTE_ARRAY) {//byte[]
|
||||
%>
|
||||
java.nio.charset.Charset.defaultCharset().decode(java.nio.ByteBuffer.wrap(<%=conn.getName() %>.<%=column.getLabel() %>)).toString()
|
||||
<%
|
||||
} else if (javaType == JavaTypesManager.BIGDECIMAL) {
|
||||
%>
|
||||
<%=column.getPrecision() == null? conn.getName() + "." + column.getLabel() : conn.getName() + "." + column.getLabel() + ".setScale(" + column.getPrecision() + ", java.math.RoundingMode.HALF_UP)" %>.toPlainString()
|
||||
<%
|
||||
} else if (javaType == JavaTypesManager.DOUBLE || javaType == JavaTypesManager.FLOAT ) {
|
||||
%>
|
||||
FormatterUtils.formatUnwithE(<%=conn.getName() %>.<%=column.getLabel() %>)
|
||||
<%
|
||||
} else {//others
|
||||
%>
|
||||
String.valueOf(<%=conn.getName() %>.<%=column.getLabel() %>)
|
||||
<%
|
||||
}
|
||||
%>
|
||||
);
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
|
||||
|
||||
<%
|
||||
if(!isPrimitive) {//end
|
||||
%>
|
||||
} //
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
<%
|
||||
if(i == sizeColumns-1) break;
|
||||
%>
|
||||
strBuffer_<%=cid%>.append(<%=ElementParameterParser.getValue(node, "__FIELDSEPARATOR__") %>);
|
||||
|
||||
<%
|
||||
}
|
||||
}//5
|
||||
}
|
||||
|
||||
|
||||
if (basic) {
|
||||
%>
|
||||
|
||||
if (globalMap.get("tLogRow_CONSOLE")!=null)
|
||||
{
|
||||
consoleOut_<%=cid%> = (java.io.PrintStream) globalMap.get("tLogRow_CONSOLE");
|
||||
}
|
||||
else
|
||||
{
|
||||
consoleOut_<%=cid%> = new java.io.PrintStream(new java.io.BufferedOutputStream(System.out));
|
||||
globalMap.put("tLogRow_CONSOLE",consoleOut_<%=cid%>);
|
||||
}
|
||||
<%
|
||||
if(isLogContent && isLog4jEnabled){
|
||||
%>
|
||||
log.info("<%=cid%> - Content of row "+(nb_line_<%=cid %>+1)+": " + strBuffer_<%=cid%>.toString());
|
||||
<%
|
||||
}
|
||||
%>
|
||||
consoleOut_<%=cid%>.println(strBuffer_<%=cid%>.toString());
|
||||
consoleOut_<%=cid%>.flush();
|
||||
nb_line_<%=cid %>++;
|
||||
<%
|
||||
}
|
||||
|
||||
|
||||
if(tablePrint || vertical) { //print the table and vertical model//***
|
||||
%>
|
||||
|
||||
String[] row_<%=cid%> = new String[<%=sizeColumns %>];
|
||||
|
||||
<%
|
||||
for (int i = 0; i < sizeColumns; i++) {//5
|
||||
|
||||
IMetadataColumn column = columns.get(i);
|
||||
JavaType javaType = JavaTypesManager.getJavaTypeFromId(column.getTalendType());
|
||||
if(isOptimizeCode){
|
||||
if(i%schemaOptNum == 0){
|
||||
%>
|
||||
logRowUtil_<%=cid%>.putTableVerticalValue_<%=i/schemaOptNum%>(<%=conn.getName() %>,row_<%=cid%>);
|
||||
<%
|
||||
}
|
||||
}else{
|
||||
boolean isPrimitive = JavaTypesManager.isJavaPrimitiveType( javaType, column.isNullable());
|
||||
if(!isPrimitive) { //begin
|
||||
%>
|
||||
if(<%=conn.getName() %>.<%=column.getLabel() %> != null) { //
|
||||
<%
|
||||
}
|
||||
%>
|
||||
row_<%=cid%>[<%=i %>]=
|
||||
<%
|
||||
String pattern = column.getPattern() == null || column.getPattern().trim().length() == 0 ? null : column.getPattern();
|
||||
if (javaType == JavaTypesManager.DATE && pattern != null && pattern.trim().length() != 0) {//Date
|
||||
%>
|
||||
FormatterUtils.format_Date(<%=conn.getName() %>.<%=column.getLabel() %>, <%= pattern %>)
|
||||
<%
|
||||
} else if (javaType == JavaTypesManager.BYTE_ARRAY) {//byte[]
|
||||
%>
|
||||
java.nio.charset.Charset.defaultCharset().decode(java.nio.ByteBuffer.wrap(<%=conn.getName() %>.<%=column.getLabel() %>)).toString()
|
||||
<%
|
||||
} else if (javaType == JavaTypesManager.BIGDECIMAL) {
|
||||
%>
|
||||
<%=column.getPrecision() == null? conn.getName() + "." + column.getLabel() : conn.getName() + "." + column.getLabel() + ".setScale(" + column.getPrecision() + ", java.math.RoundingMode.HALF_UP)" %>.toPlainString()
|
||||
<%
|
||||
} else if (javaType == JavaTypesManager.DOUBLE || javaType == JavaTypesManager.FLOAT ) {
|
||||
%>
|
||||
FormatterUtils.formatUnwithE(<%=conn.getName() %>.<%=column.getLabel() %>)
|
||||
<%
|
||||
} else {//others
|
||||
%>
|
||||
String.valueOf(<%=conn.getName() %>.<%=column.getLabel() %>)
|
||||
<%
|
||||
}
|
||||
%>
|
||||
;
|
||||
|
||||
<%
|
||||
if(!isPrimitive) {//end
|
||||
%>
|
||||
} //
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
<%
|
||||
}
|
||||
}//5
|
||||
if(tablePrint){
|
||||
%>
|
||||
|
||||
util_<%=cid %>.addRow(row_<%=cid%>);
|
||||
nb_line_<%=cid %>++;
|
||||
<%
|
||||
}else{
|
||||
%>
|
||||
nb_line_<%=cid %>++;
|
||||
consoleOut_<%=cid%>.println(util_<%=cid %>.print(row_<%=cid%>,nb_line_<%=cid%>));
|
||||
consoleOut_<%=cid%>.flush();
|
||||
<%
|
||||
}
|
||||
if(isLogContent && isLog4jEnabled){
|
||||
%>
|
||||
log.info("<%=cid%> - Content of row "+nb_line_<%=cid %>+": " + TalendString.unionString("|",row_<%=cid%>));
|
||||
<%
|
||||
}
|
||||
}//***
|
||||
%>
|
||||
//////
|
||||
|
||||
//////
|
||||
|
||||
///////////////////////
|
||||
<%
|
||||
}//4
|
||||
}//3
|
||||
}//2
|
||||
}//1
|
||||
%>
|
||||
@@ -0,0 +1,20 @@
|
||||
LONG_NAME=Displays the flow content (rows) on the Run Job console
|
||||
HELP=org.talend.help.tLogRow
|
||||
MODE.NAME=Mode
|
||||
BASIC_MODE.NAME=Basic
|
||||
TABLE_PRINT.NAME=Table (print values in cells of a table)
|
||||
VERTICAL.NAME=Vertical (each row is a key/value list)
|
||||
FIELDSEPARATOR.NAME=Field Separator
|
||||
NB_LINE.NAME=Number of lines
|
||||
PRINT_UNIQUE_NAME.NAME=Print component unique name in front of each output row
|
||||
PRINT_COLNAMES.NAME=Print schema column name in front of each value
|
||||
USE_FIXED_LENGTH.NAME=Use fixed length for values
|
||||
LENGTHS.NAME=Lengths
|
||||
LENGTHS.ITEM.LENGTH=Length
|
||||
PRINT_HEADER.NAME=Print header
|
||||
PRINT_UNIQUE.NAME=Print unique name
|
||||
PRINT_LABEL.NAME=Print label
|
||||
PRINT_UNIQUE_LABEL.NAME=Print unique name and label
|
||||
TITLE_PRINT.NAME=Title printing mode
|
||||
SCHEMA_OPT_NUM.NAME=Min column number of optimize code
|
||||
PRINT_CONTENT_WITH_LOG4J.NAME=Print content with log4j
|
||||
@@ -0,0 +1,10 @@
|
||||
LONG_NAME=Zeigt den Inhalt (Zeilen) des Datenflusses auf der RunJob-Konsole an.
|
||||
MODE.NAME=Modus
|
||||
BASIC_MODE.NAME=Einfach
|
||||
VERTICAL.NAME=Vertikal (wobei jede Zeile eine Schl\u00FCssel/Wertliste ist)
|
||||
FIELDSEPARATOR.NAME=Feldseparator
|
||||
NB_LINE.NAME=Anzahl an Zeilen
|
||||
USE_FIXED_LENGTH.NAME=Feste L\u00E4nge f\u00FCr Werte verwenden
|
||||
LENGTHS.ITEM.LENGTH=L\u00E4nge
|
||||
PRINT_HEADER.NAME=Kopfzeile ausgeben
|
||||
PRINT_LABEL.NAME=Beschriftungen ausgeben
|
||||
@@ -0,0 +1,3 @@
|
||||
BASIC_MODE.NAME=Basico
|
||||
FIELDSEPARATOR.NAME=Separador de Campo
|
||||
LENGTHS.ITEM.LENGTH=Longitud
|
||||
@@ -0,0 +1,20 @@
|
||||
LONG_NAME=Affiche le contenu du flux (lignes) dans la console d'ex\u00E9cution du Job
|
||||
HELP=org.talend.help.tLogRow
|
||||
MODE.NAME=Mode
|
||||
BASIC_MODE.NAME=Simple
|
||||
TABLE_PRINT.NAME=Table (afficher les valeurs dans des cellules)
|
||||
VERTICAL.NAME=Vertical (chaque ligne est une liste cl\u00E9/valeur)
|
||||
FIELDSEPARATOR.NAME=S\u00E9parateur de champs
|
||||
NB_LINE.NAME=Nombre de lignes
|
||||
PRINT_UNIQUE_NAME.NAME=Afficher le nom unique du composant devant chaque ligne de sortie
|
||||
PRINT_COLNAMES.NAME=Afficher le nom de la colonne du sch\u00E9ma en face de chaque valeur
|
||||
USE_FIXED_LENGTH.NAME=Utiliser une longueur fixe pour les valeurs
|
||||
LENGTHS.NAME=Longueurs
|
||||
LENGTHS.ITEM.LENGTH=Longueur
|
||||
PRINT_HEADER.NAME=Afficher l'en-t\u00EAte
|
||||
PRINT_UNIQUE.NAME=Afficher le nom unique
|
||||
PRINT_LABEL.NAME=Afficher le libell\u00E9
|
||||
PRINT_UNIQUE_LABEL.NAME=Afficher le nom unique et le libell\u00E9
|
||||
TITLE_PRINT.NAME=Mode d'affichage du titre
|
||||
SCHEMA_OPT_NUM.NAME=Nombre minimum de colonnes au code optimis\u00E9
|
||||
PRINT_CONTENT_WITH_LOG4J.NAME=Afficher le contenu avec Log4j
|
||||
@@ -0,0 +1,17 @@
|
||||
LONG_NAME=Mostra il contenuto del flusso (righe) nella console del Run Job
|
||||
MODE.NAME=Modalit\u00E0
|
||||
BASIC_MODE.NAME=Base
|
||||
TABLE_PRINT.NAME=Tabella (stampa valori nelle celle di una tabella)
|
||||
VERTICAL.NAME=Verticale (ogni riga \u00E8 una lista chiave/valore)
|
||||
FIELDSEPARATOR.NAME=Separatore di campo
|
||||
NB_LINE.NAME=Numero riga
|
||||
PRINT_UNIQUE_NAME.NAME=Stampa nome componenti univoci all'inizio di ogni riga di output
|
||||
PRINT_COLNAMES.NAME=Stampa nome colonna dello schema all'inizio di ogni valore
|
||||
USE_FIXED_LENGTH.NAME=Usa lunghezza fissa per valori
|
||||
LENGTHS.NAME=Lunghezze
|
||||
LENGTHS.ITEM.LENGTH=Lunghezza
|
||||
PRINT_HEADER.NAME=Stampa Header
|
||||
PRINT_UNIQUE.NAME=Stampa nome univoco
|
||||
PRINT_LABEL.NAME=Stampa etichetta
|
||||
PRINT_UNIQUE_LABEL.NAME=Stampa etichetta e nome univoco
|
||||
TITLE_PRINT.NAME=Titolo modalit\u00E0 stampa
|
||||
@@ -0,0 +1,20 @@
|
||||
LONG_NAME=[\u30B8\u30E7\u30D6\u5B9F\u884C]\u30B3\u30F3\u30BD\u30FC\u30EB\u3067\u30D5\u30ED\u30FC\u30B3\u30F3\u30C6\u30F3\u30C4(\u884C)\u3092\u8868\u793A\u3057\u307E\u3059\u3002
|
||||
HELP=org.talend.help.tLogRow
|
||||
MODE.NAME=\u30E2\u30FC\u30C9
|
||||
BASIC_MODE.NAME=\u30D9\u30FC\u30B7\u30C3\u30AF
|
||||
TABLE_PRINT.NAME=\u30C6\u30FC\u30D6\u30EB\uFF08\u8868\u306E\u30BB\u30EB\u3067\u5024\u3092\u8868\u793A\uFF09
|
||||
VERTICAL.NAME=\u7E26\u306B\u51FA\u529B\uFF08\u5404\u884C\u3092\u30AD\u30FC/\u5024\u306E\u30EA\u30B9\u30C8\u3067\u8868\u793A\uFF09
|
||||
FIELDSEPARATOR.NAME=\u30D5\u30A3\u30FC\u30EB\u30C9\u533A\u5207\u308A
|
||||
NB_LINE.NAME=\u884C\u6570
|
||||
PRINT_UNIQUE_NAME.NAME=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30E6\u30CB\u30FC\u30AF\u540D\u3092\u51FA\u529B\u306E\u5404\u884C\u306E\u524D\u306B\u8868\u793A
|
||||
PRINT_COLNAMES.NAME=\u30AB\u30E9\u30E0\u540D\u3092\u5024\u306E\u524D\u306B\u8868\u793A
|
||||
USE_FIXED_LENGTH.NAME=\u5024\u3092\u56FA\u5B9A\u9577\u3067\u8868\u793A
|
||||
LENGTHS.NAME=\u9577\u3055
|
||||
LENGTHS.ITEM.LENGTH=\u9577\u3055
|
||||
PRINT_HEADER.NAME=\u30D8\u30C3\u30C0\u30FC\u306E\u8868\u793A
|
||||
PRINT_UNIQUE.NAME=\u30E6\u30CB\u30FC\u30AF\u540D\u306E\u8868\u793A
|
||||
PRINT_LABEL.NAME=\u30E9\u30D9\u30EB\u306E\u8868\u793A
|
||||
PRINT_UNIQUE_LABEL.NAME=\u30E6\u30CB\u30FC\u30AF\u540D\u3068\u30E9\u30D9\u30EB\u306E\u8868\u793A
|
||||
TITLE_PRINT.NAME=\u30BF\u30A4\u30C8\u30EB\u8868\u793A\u30E2\u30FC\u30C9
|
||||
SCHEMA_OPT_NUM.NAME=\u6700\u9069\u5316\u30B3\u30FC\u30C9\u306E\u6700\u5C0F\u30AB\u30E9\u30E0\u6570
|
||||
PRINT_CONTENT_WITH_LOG4J.NAME=log4j\u3067\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u5370\u5237
|
||||
@@ -0,0 +1,7 @@
|
||||
HELP=org.talend.help.tLogRow
|
||||
MODE.NAME=\u30E2\u30FC\u30C9
|
||||
BASIC_MODE.NAME=\u30D9\u30FC\u30B7\u30C3\u30AF
|
||||
FIELDSEPARATOR.NAME=\u30D5\u30A3\u30FC\u30EB\u30C9\u30BB\u30D1\u30EC\u30FC\u30BF
|
||||
NB_LINE.NAME=\u30E9\u30A4\u30F3\u6570
|
||||
LENGTHS.NAME=\u9577\u3055
|
||||
LENGTHS.ITEM.LENGTH=\u9577\u3055
|
||||
@@ -0,0 +1,5 @@
|
||||
BASIC_MODE.NAME=\u041E\u0441\u043D\u043E\u0432\u043D\u043E\u0439
|
||||
VERTICAL.NAME=\u0412\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u044B\u0439 (\u043A\u0430\u0436\u0434\u044B\u0439 \u0440\u044F\u0434 - \u043F\u0430\u0440\u0430 \u043A\u043B\u044E\u0447/\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435)
|
||||
FIELDSEPARATOR.NAME=\u0420\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C \u043F\u043E\u043B\u0435\u0439
|
||||
NB_LINE.NAME=\u0427\u0438\u0441\u043B\u043E \u0441\u0442\u0440\u043E\u043A
|
||||
LENGTHS.ITEM.LENGTH=\u0414\u043B\u0438\u043D\u0430
|
||||
@@ -0,0 +1,2 @@
|
||||
MODE.NAME=M\u00F3d
|
||||
LENGTHS.ITEM.LENGTH=D\u013A\u017Eka
|
||||
@@ -0,0 +1,2 @@
|
||||
MODE.NAME=M<EFBFBD>d
|
||||
LENGTHS.ITEM.LENGTH=D\u013A\u017Eka
|
||||
@@ -0,0 +1,20 @@
|
||||
LONG_NAME=\u5728\u8FD0\u884C\u4F5C\u4E1A\u63A7\u5236\u53F0\u4E0A\u663E\u793A\u6D41\u5185\u5BB9 (\u884C)
|
||||
HELP=org.talend.help.tLogRow
|
||||
MODE.NAME=\u6A21\u5F0F
|
||||
BASIC_MODE.NAME=\u57FA\u672C
|
||||
TABLE_PRINT.NAME=\u8868 (\u5728\u8868\u7684\u5355\u5143\u683C\u4E2D\u6253\u5370\u503C)
|
||||
VERTICAL.NAME=\u5782\u76F4 (\u6BCF\u884C\u90FD\u662F\u4E00\u4E2A\u952E/\u503C\u5217\u8868)
|
||||
FIELDSEPARATOR.NAME=\u5B57\u6BB5\u5206\u9694\u7B26
|
||||
NB_LINE.NAME=\u884C\u6570
|
||||
PRINT_UNIQUE_NAME.NAME=\u5728\u6BCF\u4E00\u4E2A\u8F93\u51FA\u884C\u524D\u6253\u5370\u552F\u4E00\u7EC4\u4EF6\u540D
|
||||
PRINT_COLNAMES.NAME=\u5C06 schema \u5217\u540D\u6253\u5370\u5728\u6BCF\u4E2A\u503C\u7684\u524D\u9762
|
||||
USE_FIXED_LENGTH.NAME=\u4F7F\u7528\u56FA\u5B9A\u957F\u5EA6\u7684\u503C
|
||||
LENGTHS.NAME=\u957F\u5EA6
|
||||
LENGTHS.ITEM.LENGTH=\u957F\u5EA6
|
||||
PRINT_HEADER.NAME=\u6253\u5370\u6587\u4EF6\u5934
|
||||
PRINT_UNIQUE.NAME=\u6253\u5370\u552F\u4E00\u540D\u79F0
|
||||
PRINT_LABEL.NAME=\u6253\u5370\u6807\u7B7E
|
||||
PRINT_UNIQUE_LABEL.NAME=\u6253\u5370\u552F\u4E00\u540D\u79F0\u548C\u6807\u7B7E
|
||||
TITLE_PRINT.NAME=\u6807\u9898\u6253\u5370\u6A21\u5F0F
|
||||
SCHEMA_OPT_NUM.NAME=\u4F18\u5316\u4EE3\u7801\u7684\u6700\u5C0F\u5217\u6570
|
||||
PRINT_CONTENT_WITH_LOG4J.NAME=\u7528 log4j \u6253\u5370\u5185\u5BB9
|
||||
@@ -0,0 +1,57 @@
|
||||
<%@ jet
|
||||
%>
|
||||
|
||||
<%
|
||||
JavaType[] commonTypes = {
|
||||
JavaTypesManager.STRING,
|
||||
JavaTypesManager.INTEGER,
|
||||
JavaTypesManager.LONG,
|
||||
JavaTypesManager.SHORT,
|
||||
JavaTypesManager.BOOLEAN,
|
||||
JavaTypesManager.CHARACTER,
|
||||
JavaTypesManager.BYTE,
|
||||
JavaTypesManager.BYTE_ARRAY,
|
||||
JavaTypesManager.DATE,
|
||||
JavaTypesManager.DOUBLE,
|
||||
JavaTypesManager.FLOAT,
|
||||
JavaTypesManager.OBJECT,
|
||||
JavaTypesManager.LIST,
|
||||
JavaTypesManager.BIGDECIMAL
|
||||
};
|
||||
|
||||
for(JavaType sourceType : commonTypes) {
|
||||
for(JavaType targetType : commonTypes) {
|
||||
if(sourceType == targetType) {
|
||||
continue;
|
||||
}
|
||||
|
||||
String sourceTypeToGenerate = JavaTypesManager.getTypeToGenerate(sourceType.getId(), true);
|
||||
sourceTypeToGenerate = sourceTypeToGenerate.contains(".") ? sourceTypeToGenerate.substring(sourceTypeToGenerate.lastIndexOf(".") + 1) : sourceTypeToGenerate;
|
||||
if (("byte[]").equals(sourceTypeToGenerate)){
|
||||
sourceTypeToGenerate = "byteArray";
|
||||
}
|
||||
|
||||
String targetTypeToGenerate = JavaTypesManager.getTypeToGenerate(targetType.getId(), true);
|
||||
targetTypeToGenerate = targetTypeToGenerate.contains(".") ? targetTypeToGenerate.substring(targetTypeToGenerate.lastIndexOf(".") + 1) : targetTypeToGenerate;
|
||||
if (("byte[]").equals(targetTypeToGenerate)){
|
||||
targetTypeToGenerate = "byteArray";
|
||||
}
|
||||
|
||||
String function = null;
|
||||
if("Date".equals(targetTypeToGenerate) && ("String".equals(sourceTypeToGenerate)||"Object".equals(sourceTypeToGenerate))) {
|
||||
function = contact("routines.system.TypeConvert.", sourceTypeToGenerate, "2", targetTypeToGenerate, "(${0}, ${1})");
|
||||
} else if("String".equals(targetTypeToGenerate) && "Date".equals(sourceTypeToGenerate)) {
|
||||
function = contact("routines.system.TypeConvert.", sourceTypeToGenerate, "2", targetTypeToGenerate, "(${0}, ${1})");
|
||||
} else {
|
||||
function = contact("routines.system.TypeConvert.", sourceTypeToGenerate, "2", targetTypeToGenerate, "(${0})");
|
||||
}
|
||||
|
||||
autoConverterMap.put(contact(sourceType.getId(), ":", targetType.getId()), function);
|
||||
}
|
||||
}
|
||||
|
||||
autoConverterMap.put(contact("id_Dynamic", ":", JavaTypesManager.STRING.getId()), "String.valueOf(${0})");
|
||||
autoConverterMap.put(contact("id_Document", ":", JavaTypesManager.STRING.getId()), "String.valueOf(${0})");
|
||||
autoConverterMap.put(contact(JavaTypesManager.STRING.getId(), ":", "id_Document"), "routines.system.ParserUtils.parseTo_Document(${0})");
|
||||
%>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,40 @@
|
||||
<%@ jet
|
||||
imports="
|
||||
java.util.ArrayList
|
||||
java.util.List
|
||||
java.util.Map
|
||||
java.util.HashMap
|
||||
org.talend.core.model.metadata.IMetadataTable
|
||||
org.talend.core.model.metadata.IMetadataColumn
|
||||
org.talend.core.model.metadata.types.JavaTypesManager
|
||||
org.talend.core.model.metadata.types.JavaType
|
||||
org.talend.designer.codegen.config.CodeGeneratorArgument
|
||||
org.talend.designer.mapper.MapperComponent
|
||||
org.talend.designer.mapper.external.data.ExternalMapperData
|
||||
org.talend.designer.mapper.external.data.ExternalMapperTable
|
||||
org.talend.designer.mapper.external.data.ExternalMapperTableEntry
|
||||
org.talend.core.model.process.IConnection
|
||||
org.talend.designer.mapper.language.ILanguage
|
||||
org.talend.designer.mapper.language.generation.GenerationManagerFactory
|
||||
org.talend.designer.mapper.language.generation.JavaGenerationManager
|
||||
org.talend.designer.mapper.language.LanguageProvider
|
||||
org.talend.core.model.process.ElementParameterParser
|
||||
org.talend.core.model.process.EConnectionType
|
||||
org.talend.core.model.process.INode
|
||||
org.talend.core.model.utils.TalendTextUtils
|
||||
org.talend.designer.mapper.model.tableentry.TableEntryLocation
|
||||
org.talend.designer.mapper.utils.DataMapExpressionParser
|
||||
"
|
||||
skeleton="tMap_commons.skeleton"
|
||||
%>
|
||||
|
||||
|
||||
<%@ include file="tMap_begin.inc.javajet" %>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,259 @@
|
||||
public class CLASS {
|
||||
|
||||
|
||||
public boolean hasConcurrencyContext(List<IConnection> inputConnections, List<? extends INode> graphicalNodes) {
|
||||
|
||||
for(IConnection connection : inputConnections) {
|
||||
EConnectionType connectionType = connection.getLineStyle();
|
||||
if (connectionType == EConnectionType.FLOW_MAIN) {
|
||||
INode node = connection.getSource();
|
||||
return recursiveSearchIterateForConcurrency(node, graphicalNodes);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
public boolean hasIterateConnectionBefore(List<IConnection> inputConnections, List<? extends INode> graphicalNodes) {
|
||||
|
||||
for(IConnection connection : inputConnections) {
|
||||
EConnectionType connectionType = connection.getLineStyle();
|
||||
if (connectionType == EConnectionType.FLOW_MAIN) {
|
||||
INode node = connection.getSource();
|
||||
return recursiveSearchIterate(node, graphicalNodes);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
public boolean recursiveSearchIterate(INode node, List<? extends INode> graphicalNodes) {
|
||||
|
||||
//System.out.println(node);
|
||||
|
||||
List<IConnection> connections = (List<IConnection>) node.getIncomingConnections();
|
||||
|
||||
for(IConnection connection : connections) {
|
||||
EConnectionType connectionType = connection.getLineStyle();
|
||||
if (connectionType == EConnectionType.FLOW_MAIN) {
|
||||
node = connection.getSource();
|
||||
//System.out.println(connection.getName() + " connectionType=" + connectionType + " connection=" + String.valueOf(connection));
|
||||
return recursiveSearchIterate(node, graphicalNodes);
|
||||
} else if(connectionType == EConnectionType.ITERATE) {
|
||||
//System.out.println("ITERATE return true");
|
||||
return true;
|
||||
}else{
|
||||
//for virtual component
|
||||
boolean find = false;
|
||||
for(INode loopNode : graphicalNodes) {
|
||||
if(loopNode.getUniqueName().equals(node.getUniqueName())){
|
||||
find = true;
|
||||
}
|
||||
}
|
||||
if(!find){
|
||||
List<IConnection> vConnections = (List<IConnection>) node.getIncomingConnections();
|
||||
for(IConnection vConnection : vConnections) {
|
||||
node = vConnection.getSource();
|
||||
break;
|
||||
}
|
||||
return recursiveSearchIterate(node, graphicalNodes);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//System.out.println("return false");
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
private boolean recursiveSearchIterateForConcurrency(INode node, List<? extends INode> graphicalNodes) {
|
||||
List<IConnection> connections = (List<IConnection>) node.getIncomingConnections();
|
||||
|
||||
for(IConnection connection : connections) {
|
||||
EConnectionType connectionType = connection.getLineStyle();
|
||||
if (connectionType == EConnectionType.FLOW_MAIN) {
|
||||
node = connection.getSource();
|
||||
return recursiveSearchIterateForConcurrency(node, graphicalNodes);
|
||||
} else if(connectionType == EConnectionType.ITERATE) {
|
||||
boolean parallelIterate = "true".equals(ElementParameterParser.getValue(connection, "__ENABLE_PARALLEL__"));
|
||||
if(parallelIterate) {
|
||||
return true;
|
||||
} else {
|
||||
node = connection.getSource();
|
||||
return recursiveSearchIterateForConcurrency(node, graphicalNodes);
|
||||
}
|
||||
}else{
|
||||
//for virtual component
|
||||
boolean find = false;
|
||||
for(INode loopNode : graphicalNodes) {
|
||||
if(loopNode.getUniqueName().equals(node.getUniqueName())){
|
||||
find = true;
|
||||
}
|
||||
}
|
||||
if(!find){
|
||||
List<IConnection> vConnections = (List<IConnection>) node.getIncomingConnections();
|
||||
for(IConnection vConnection : vConnections) {
|
||||
node = vConnection.getSource();
|
||||
break;
|
||||
}
|
||||
return recursiveSearchIterateForConcurrency(node, graphicalNodes);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
public INode searchSubProcessStartNode(IConnection connection) {
|
||||
INode source = connection.getSource();
|
||||
//System.out.println(" source=" + source);
|
||||
INode subprocessStartNode = null;
|
||||
if(source != null) {
|
||||
String searchedComponentName = source.getUniqueName();
|
||||
//System.out.println(" searchedComponentName=" + searchedComponentName);
|
||||
List<? extends INode> generatedNodes = source.getProcess().getGeneratingNodes();
|
||||
for(INode loopNode : generatedNodes) {
|
||||
if(loopNode.getUniqueName().equals(searchedComponentName)) {
|
||||
subprocessStartNode = loopNode.getSubProcessStartNode(false);
|
||||
//System.out.println(" subprocessStartNode=" + subprocessStartNode.getUniqueName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return subprocessStartNode;
|
||||
}
|
||||
public boolean hasJoinedTable(String tableNameToTest, ExternalMapperData data) {
|
||||
for (ExternalMapperTable table : data.getOutputTables()) {
|
||||
if (table.getIsJoinTableOf() != null && table.getIsJoinTableOf().equals(tableNameToTest)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public boolean isErrorReject(ExternalMapperTable table){
|
||||
String errorMessage = null;
|
||||
String errorStackTrace = null;
|
||||
if(table!=null&&table.getName()!=null&&table.getName().endsWith("ErrorReject")){
|
||||
for(ExternalMapperTableEntry entry:table.getMetadataTableEntries()){
|
||||
if("errorMessage".equals(entry.getName())){
|
||||
errorMessage = entry.getName();
|
||||
}else if("errorStackTrace".equals(entry.getName())){
|
||||
errorStackTrace = entry.getName();
|
||||
}
|
||||
}
|
||||
if(errorMessage!=null&&errorStackTrace!=null){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public String getExpressionWithAutoConvertFunction(
|
||||
String expression,
|
||||
ExternalMapperTableEntry targetTableEntry,
|
||||
IMetadataColumn targetColumn,
|
||||
DataMapExpressionParser expressionParser,
|
||||
Map<TableEntryLocation, ExternalMapperTableEntry> locationMap4Entry,
|
||||
Map<TableEntryLocation, IMetadataColumn> locationMap4Column,
|
||||
Map<String,String> autoConverterMap,
|
||||
boolean enable_auto_convert_type) {
|
||||
|
||||
if(!enable_auto_convert_type) {
|
||||
return expression;
|
||||
}
|
||||
|
||||
if(expression == null || expression.isEmpty()) {
|
||||
return expression;
|
||||
}
|
||||
|
||||
TableEntryLocation uniqueLocation = getUniqueEntryLocation(expression);
|
||||
|
||||
if(uniqueLocation == null) {
|
||||
return expression;
|
||||
}
|
||||
|
||||
ExternalMapperTableEntry uniqueSourceEntry = locationMap4Entry.get(uniqueLocation);
|
||||
|
||||
if(uniqueSourceEntry == null) {
|
||||
return expression;
|
||||
}
|
||||
|
||||
String source_talend_type = uniqueSourceEntry.getType();
|
||||
String target_talend_type = targetTableEntry.getType();
|
||||
|
||||
String convertFunction = autoConverterMap.get(contact(source_talend_type, ":", target_talend_type));
|
||||
|
||||
if(convertFunction!=null && !convertFunction.isEmpty()) {
|
||||
StringBuilder strbuilder = new StringBuilder();
|
||||
|
||||
if(uniqueSourceEntry.isNullable()) {
|
||||
strbuilder.append("(((").append(expression).append(") == null) ? null : (");
|
||||
}
|
||||
|
||||
expression = convertFunction.replace("${0}", expression);
|
||||
|
||||
String pattern = null;
|
||||
if((JavaTypesManager.STRING.getId().equals(source_talend_type)||JavaTypesManager.OBJECT.getId().equals(source_talend_type)) && JavaTypesManager.DATE.getId().equals(target_talend_type)) {
|
||||
if(targetColumn!=null) {
|
||||
pattern = targetColumn.getPattern();
|
||||
}
|
||||
|
||||
if(pattern == null || pattern.isEmpty()) {
|
||||
pattern = "\"dd-MM-yyyy\"";
|
||||
}
|
||||
|
||||
} else if(JavaTypesManager.DATE.getId().equals(source_talend_type) && JavaTypesManager.STRING.getId().equals(target_talend_type)) {
|
||||
IMetadataColumn sourceColumn = locationMap4Column.get(uniqueLocation);
|
||||
|
||||
if(sourceColumn!=null) {
|
||||
pattern = sourceColumn.getPattern();
|
||||
}
|
||||
|
||||
if(pattern == null || pattern.isEmpty()) {
|
||||
pattern = "\"dd-MM-yyyy\"";
|
||||
}
|
||||
}
|
||||
|
||||
if(pattern != null) {
|
||||
expression = expression.replace("${1}", pattern);
|
||||
}
|
||||
|
||||
strbuilder.append(expression);
|
||||
|
||||
if(uniqueSourceEntry.isNullable()) {
|
||||
strbuilder.append("))");
|
||||
}
|
||||
|
||||
return strbuilder.toString();
|
||||
}
|
||||
|
||||
return expression;
|
||||
}
|
||||
|
||||
java.util.regex.Pattern locationPattern = java.util.regex.Pattern.compile(LanguageProvider.getJavaLanguage().getLocationPattern());
|
||||
|
||||
private TableEntryLocation getUniqueEntryLocation(String expression) {
|
||||
java.util.regex.Matcher matcher = locationPattern.matcher(expression);
|
||||
if(matcher.matches()) {
|
||||
return new TableEntryLocation(matcher.group(1), matcher.group(2));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
StringBuilder strbuilder = new StringBuilder(20);
|
||||
|
||||
private String contact(String... content) {
|
||||
strbuilder.setLength(0);
|
||||
for(String each : content) {
|
||||
strbuilder.append(each);
|
||||
}
|
||||
return strbuilder.toString();
|
||||
}
|
||||
|
||||
public String generate(Object argument) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,169 @@
|
||||
<%@ jet
|
||||
imports="
|
||||
java.util.ArrayList
|
||||
java.util.List
|
||||
org.talend.designer.mapper.external.data.ExternalMapperData
|
||||
org.talend.designer.mapper.external.data.ExternalMapperTable
|
||||
org.talend.designer.mapper.external.data.ExternalMapperTableEntry
|
||||
org.talend.designer.codegen.config.CodeGeneratorArgument
|
||||
org.talend.designer.mapper.MapperComponent
|
||||
org.talend.core.model.process.IElementParameter
|
||||
org.talend.core.model.process.INode
|
||||
org.talend.core.model.process.IConnection
|
||||
java.util.HashMap
|
||||
java.util.Map
|
||||
org.talend.core.model.process.ElementParameterParser
|
||||
"
|
||||
skeleton="tMap_commons.skeleton"
|
||||
%>
|
||||
|
||||
<%
|
||||
|
||||
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
|
||||
MapperComponent node = (MapperComponent) codeGenArgument.getArgument();
|
||||
boolean stats = codeGenArgument.isStatistics();
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
ExternalMapperData data = (ExternalMapperData) node.getExternalData();
|
||||
|
||||
String componentName = node.getUniqueName();
|
||||
boolean isVirtualIn = componentName.endsWith("TMAP_IN");
|
||||
boolean isVirtualOut = componentName.endsWith("TMAP_OUT");
|
||||
|
||||
List<IConnection> inputConnections = (List<IConnection>) node.getIncomingConnections();
|
||||
|
||||
boolean isLog4jEnabled = ("true").equals(ElementParameterParser.getValue(node.getProcess(), "__LOG4J_ACTIVATE__"));
|
||||
|
||||
String uniqueNameComponent = componentName.replaceAll("_TMAP_IN", "");
|
||||
uniqueNameComponent = uniqueNameComponent.replaceAll("_TMAP_OUT", "");
|
||||
|
||||
if(isVirtualIn) {
|
||||
String searchedComponentName = componentName.replaceAll("TMAP_IN", "TMAP_OUT");
|
||||
List<? extends INode> generatedNodes = node.getProcess().getGeneratingNodes();
|
||||
for(INode loopNode : generatedNodes) {
|
||||
if(loopNode.getUniqueName().equals(searchedComponentName)) {
|
||||
inputConnections = (List<IConnection>) loopNode.getIncomingConnections();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Bug partially fixed, see bug:785
|
||||
// Bug partially fixed, see bug:3966
|
||||
|
||||
boolean hasIterate = hasIterateConnectionBefore(inputConnections, node.getProcess().getGraphicalNodes());
|
||||
|
||||
|
||||
%>
|
||||
// ###############################
|
||||
// # Lookup hashes releasing
|
||||
<%
|
||||
|
||||
if(!isVirtualOut) {
|
||||
|
||||
HashMap<String, IConnection> hNameToConnection = new HashMap<String, IConnection>();
|
||||
for (IConnection connection : inputConnections) {
|
||||
hNameToConnection.put(connection.getName(), connection);
|
||||
}
|
||||
|
||||
List<ExternalMapperTable> inputTablesList = new ArrayList<ExternalMapperTable>(data.getInputTables());
|
||||
int lstSizeInputs = inputTablesList.size();
|
||||
|
||||
if(lstSizeInputs > 1) {
|
||||
String mainTableName = inputTablesList.get(0).getName();
|
||||
|
||||
int joinedTableIndex = 0;
|
||||
int tmpJoinedTableIndex = 0;
|
||||
boolean hasPersistentLookup = false;
|
||||
for (int i = 0; i < lstSizeInputs; i++) {
|
||||
ExternalMapperTable inputTable = (ExternalMapperTable) inputTablesList.get(i);
|
||||
|
||||
if(hNameToConnection.get(inputTable.getName()) != null) {
|
||||
if(inputTable.isPersistent()
|
||||
&& !"ALL_ROWS".equals(inputTable.getMatchingMode())
|
||||
) {
|
||||
joinedTableIndex = tmpJoinedTableIndex;
|
||||
hasPersistentLookup = true;
|
||||
}
|
||||
|
||||
tmpJoinedTableIndex++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(hasPersistentLookup) {
|
||||
%>
|
||||
fsi_<%=uniqueNameComponent%>_<%=joinedTableIndex%>.endGet();
|
||||
<%
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
for (int i = 1; i < lstSizeInputs; i++) {
|
||||
ExternalMapperTable inputTable = (ExternalMapperTable) inputTablesList.get(i);
|
||||
|
||||
|
||||
List<ExternalMapperTableEntry> tableEntries = inputTable.getMetadataTableEntries();
|
||||
if (tableEntries == null) {
|
||||
continue;
|
||||
}
|
||||
String tableName = inputTable.getName();
|
||||
IConnection connection = hNameToConnection.get(tableName);
|
||||
if(connection == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
String lookupMode = inputTable.getLookupMode();
|
||||
boolean isCacheOrReload = org.talend.designer.mapper.model.table.LOOKUP_MODE.CACHE_OR_RELOAD.name().equals(lookupMode);
|
||||
|
||||
if(!hasIterate) {
|
||||
%>
|
||||
if(tHash_Lookup_<%=tableName%> != null) {
|
||||
tHash_Lookup_<%=tableName%>.endGet();
|
||||
}
|
||||
globalMap.remove( "tHash_Lookup_<%=tableName%>" );
|
||||
|
||||
<%
|
||||
if(isCacheOrReload) {
|
||||
%>
|
||||
|
||||
tHash_Lookup_Cache_<%=tableName%>.endGet();
|
||||
tHash_Lookup_Cache_<%=tableName%> = null;
|
||||
tHash_Lookup_Real_<%=tableName%> = null;
|
||||
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
<%
|
||||
}
|
||||
}
|
||||
}
|
||||
%>
|
||||
// ###############################
|
||||
<%
|
||||
List<IConnection> outputConnections = (List<IConnection>) node.getOutgoingConnections();
|
||||
Map<String, IConnection> nameToOutputConnection = new HashMap<String, IConnection>();
|
||||
for (IConnection connection : outputConnections) {
|
||||
nameToOutputConnection.put(connection.getName(), connection);
|
||||
}
|
||||
|
||||
List<ExternalMapperTable> outputTables = data.getOutputTables();
|
||||
for(ExternalMapperTable outputTable : outputTables){
|
||||
String outputTableName = outputTable.getName();
|
||||
List<ExternalMapperTableEntry> tableEntries = outputTable.getMetadataTableEntries();
|
||||
if (tableEntries == null || nameToOutputConnection.get(outputTable.getName()) == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if(isLog4jEnabled){
|
||||
if(!isVirtualOut) {
|
||||
%>
|
||||
log.debug("<%=uniqueNameComponent%> - Written records count in the table '<%=outputTableName%>': " + count_<%=outputTableName%>_<%=uniqueNameComponent%> + ".");
|
||||
<%
|
||||
}
|
||||
}
|
||||
}
|
||||
%>
|
||||
@@ -0,0 +1,29 @@
|
||||
<%@ jet
|
||||
imports="
|
||||
java.util.ArrayList
|
||||
java.util.List
|
||||
org.talend.designer.mapper.external.data.ExternalMapperData
|
||||
org.talend.designer.mapper.external.data.ExternalMapperTable
|
||||
org.talend.designer.mapper.external.data.ExternalMapperTableEntry
|
||||
org.talend.designer.codegen.config.CodeGeneratorArgument
|
||||
org.talend.designer.mapper.MapperComponent
|
||||
org.talend.core.model.process.INode
|
||||
java.util.HashMap
|
||||
java.util.Map
|
||||
org.talend.core.model.process.IConnection
|
||||
org.talend.core.model.process.EConnectionType
|
||||
org.talend.core.model.process.ElementParameterParser
|
||||
org.talend.designer.mapper.model.tableentry.TableEntryLocation
|
||||
org.talend.designer.mapper.utils.DataMapExpressionParser
|
||||
org.talend.designer.mapper.language.LanguageProvider
|
||||
org.talend.core.model.metadata.IMetadataColumn
|
||||
org.talend.core.model.metadata.types.JavaTypesManager
|
||||
"
|
||||
skeleton="tMap_commons.skeleton"
|
||||
%>
|
||||
|
||||
<%@ include file="tMap_end.inc.javajet" %>
|
||||
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,143 @@
|
||||
<COMPONENT>
|
||||
<HEADER PLATEFORM="ALL"
|
||||
SERIAL=""
|
||||
VERSION="2.1"
|
||||
STATUS="ALPHA"
|
||||
COMPATIBILITY="WIN32"
|
||||
AUTHOR="Talend"
|
||||
RELEASE_DATE="20070703A"
|
||||
STARTABLE="false"
|
||||
EXTENSION="org.talend.designer.mapper"
|
||||
SCHEMA_AUTO_PROPAGATE="false"
|
||||
DATA_AUTO_PROPAGATE="false"
|
||||
HAS_CONDITIONAL_OUTPUTS="true"
|
||||
PARTITIONING="AUTO"
|
||||
LOG4J_ENABLED="true"
|
||||
>
|
||||
<SIGNATURE></SIGNATURE>
|
||||
</HEADER>
|
||||
|
||||
<FAMILIES>
|
||||
<FAMILY>Processing</FAMILY>
|
||||
</FAMILIES>
|
||||
<DOCUMENTATION>
|
||||
<URL/>
|
||||
</DOCUMENTATION>
|
||||
<CONNECTORS>
|
||||
<CONNECTOR BUILTIN="true" CTYPE="FLOW" MIN_INPUT="1" MIN_OUTPUT="1"/>
|
||||
<CONNECTOR CTYPE="LOOKUP" COMPONENT="tAdvancedHash"/>
|
||||
<CONNECTOR CTYPE="ITERATE" MAX_OUTPUT="0" MAX_INPUT="0"/>
|
||||
<CONNECTOR CTYPE="SUBJOB_OK" MAX_INPUT="0"/>
|
||||
<CONNECTOR CTYPE="SUBJOB_ERROR" MAX_INPUT="0"/>
|
||||
<CONNECTOR CTYPE="COMPONENT_OK" MAX_OUTPUT="0"/>
|
||||
<CONNECTOR CTYPE="COMPONENT_ERROR" MAX_OUTPUT="0"/>
|
||||
<CONNECTOR CTYPE="RUN_IF" MAX_OUTPUT="0"/>
|
||||
</CONNECTORS>
|
||||
<PARAMETERS>
|
||||
<PARAMETER NAME="MAP" FIELD="EXTERNAL" NUM_ROW="1">
|
||||
<DEFAULT/>
|
||||
</PARAMETER>
|
||||
<PARAMETER
|
||||
NAME="LINK_STYLE"
|
||||
FIELD="CLOSED_LIST"
|
||||
NUM_ROW="1"
|
||||
>
|
||||
<ITEMS DEFAULT="">
|
||||
<ITEM NAME="AUTO" VALUE="AUTO" />
|
||||
<ITEM NAME="BEZIER_CURVE" VALUE="BEZIER_CURVE" />
|
||||
<ITEM NAME="LINE" VALUE="LINE" />
|
||||
</ITEMS>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER NAME="TEMPORARY_DATA_DIRECTORY" FIELD="DIRECTORY"
|
||||
NUM_ROW="2" GROUP="STORE_ON_DISK"
|
||||
>
|
||||
<!--<DEFAULT>"__COMP_DEFAULT_FILE_DIR__/temp"</DEFAULT>
|
||||
--></PARAMETER>
|
||||
|
||||
<PARAMETER NAME="PREVIEW" FIELD="IMAGE" SHOW="true" NUM_ROW="4">
|
||||
<DEFAULT/>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="DIE_ON_ERROR"
|
||||
FIELD="CHECK"
|
||||
NUM_ROW="100"
|
||||
SHOW="false"
|
||||
>
|
||||
<DEFAULT>true</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="LKUP_PARALLELIZE"
|
||||
FIELD="CHECK"
|
||||
NUM_ROW="100"
|
||||
SHOW="false"
|
||||
>
|
||||
<DEFAULT>false</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
|
||||
<PARAMETER
|
||||
NAME="LEVENSHTEIN"
|
||||
FIELD = "TEXT"
|
||||
NUM_ROW="120"
|
||||
SHOW="false"
|
||||
>
|
||||
<DEFAULT>0</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="JACCARD"
|
||||
FIELD = "TEXT"
|
||||
NUM_ROW="120"
|
||||
SHOW="false"
|
||||
>
|
||||
<DEFAULT>0</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="ENABLE_AUTO_CONVERT_TYPE"
|
||||
FIELD="CHECK"
|
||||
NUM_ROW="110"
|
||||
SHOW="false"
|
||||
>
|
||||
<DEFAULT>false</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
</PARAMETERS>
|
||||
|
||||
<ADVANCED_PARAMETERS>
|
||||
<PARAMETER NAME="ROWS_BUFFER_SIZE" FIELD="TEXT"
|
||||
REQUIRED="true" NUM_ROW="1" SHOW="true" GROUP="STORE_ON_DISK"
|
||||
>
|
||||
<DEFAULT>2000000</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="CHANGE_HASH_AND_EQUALS_FOR_BIGDECIMAL"
|
||||
FIELD="CHECK"
|
||||
NUM_ROW="10"
|
||||
>
|
||||
<DEFAULT>true</DEFAULT>
|
||||
</PARAMETER>
|
||||
</ADVANCED_PARAMETERS>
|
||||
|
||||
<CODEGENERATION>
|
||||
<TEMPLATES INPUT="TMAP_OUT" OUTPUT="TMAP_IN">
|
||||
|
||||
<TEMPLATE NAME="TMAP_OUT" COMPONENT="tMapOut">
|
||||
<LINK_TO NAME="TMAP_IN" CTYPE="ROWS_END"/>
|
||||
</TEMPLATE>
|
||||
|
||||
<TEMPLATE NAME="TMAP_IN" COMPONENT="tMapIn"/>
|
||||
|
||||
</TEMPLATES>
|
||||
</CODEGENERATION>
|
||||
<RETURNS/>
|
||||
|
||||
<PLUGINDEPENDENCIES>
|
||||
<PLUGINDEPENDENCY ID="org.talend.designer.abstractmap" />
|
||||
</PLUGINDEPENDENCIES>
|
||||
|
||||
</COMPONENT>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,46 @@
|
||||
<%@ jet
|
||||
imports="
|
||||
java.util.ArrayList
|
||||
java.util.Collections
|
||||
java.util.Comparator
|
||||
java.util.List
|
||||
java.util.HashMap
|
||||
java.util.Map
|
||||
org.talend.designer.codegen.config.CodeGeneratorArgument
|
||||
org.talend.commons.utils.generation.CodeGenerationUtils
|
||||
org.talend.designer.mapper.MapperComponent
|
||||
org.talend.designer.mapper.external.data.ExternalMapperData
|
||||
org.talend.designer.mapper.external.data.ExternalMapperTable
|
||||
org.talend.designer.mapper.external.data.ExternalMapperTableEntry
|
||||
org.talend.designer.mapper.language.ILanguage
|
||||
org.talend.designer.mapper.language.generation.JavaGenerationManager
|
||||
org.talend.designer.mapper.language.generation.HashedMetadataTable
|
||||
org.talend.designer.mapper.language.LanguageProvider
|
||||
org.talend.designer.mapper.model.tableentry.TableEntryLocation
|
||||
org.talend.designer.mapper.utils.DataMapExpressionParser
|
||||
org.talend.core.model.process.IConnection
|
||||
org.talend.core.model.process.EConnectionType
|
||||
org.talend.core.model.metadata.IMetadataTable
|
||||
org.talend.core.model.metadata.IMetadataColumn
|
||||
org.talend.core.model.metadata.types.JavaTypesManager
|
||||
org.talend.core.model.metadata.types.JavaType
|
||||
org.talend.core.model.process.BlockCode
|
||||
org.talend.core.model.process.INode
|
||||
org.talend.core.model.process.ElementParameterParser
|
||||
org.talend.core.GlobalServiceRegister
|
||||
org.talend.core.model.metadata.IAutoConvertTypesService
|
||||
org.talend.core.model.metadata.types.AutoConversionType
|
||||
"
|
||||
|
||||
skeleton="tMap_commons.skeleton"
|
||||
|
||||
%>
|
||||
|
||||
<%@ include file="tMap_main.inc.javajet" %>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
HELP=org.talend.help.tMap
|
||||
LONG_NAME=Allows joins, column or row filtering, transformations, and multiple outputs
|
||||
MAP.NAME=Map Editor:
|
||||
PREVIEW.NAME=Preview
|
||||
STORE_ON_DISK.NAME=Store on disk
|
||||
TEMPORARY_DATA_DIRECTORY.NAME=Temp data directory path:
|
||||
ROWS_BUFFER_SIZE.NAME=Max buffer size (nb of rows):
|
||||
LINK_STYLE.NAME=Mapping links display as:
|
||||
LINK_STYLE.ITEM.AUTO=Auto
|
||||
LINK_STYLE.ITEM.BEZIER_CURVE=Curves
|
||||
LINK_STYLE.ITEM.LINE=Lines (fast)
|
||||
CHANGE_HASH_AND_EQUALS_FOR_BIGDECIMAL.NAME=Ignore trailing zeros for BigDecimal
|
||||
@@ -0,0 +1,10 @@
|
||||
LONG_NAME=Erm\u00F6glicht Joins, Spalten- oder Zeilenfilter, Transformationen und multiple Ausgaben
|
||||
MAP.NAME=Map Editor\:
|
||||
PREVIEW.NAME=Vorschau
|
||||
STORE_ON_DISK.NAME=Speichere auf Festplatte
|
||||
TEMPORARY_DATA_DIRECTORY.NAME=Verzeichnis f\u00FCr tempor\u00E4re Daten:
|
||||
ROWS_BUFFER_SIZE.NAME=Maximale Puffergr\u00F6\u00DFe (Anzahl Zeilen)
|
||||
LINK_STYLE.NAME=Mapping Verbindungen anzeigen als:
|
||||
LINK_STYLE.ITEM.AUTO=Auto
|
||||
LINK_STYLE.ITEM.BEZIER_CURVE=Kurven
|
||||
LINK_STYLE.ITEM.LINE=Linien (schnell)
|
||||
@@ -0,0 +1,12 @@
|
||||
HELP=org.talend.help.tMap
|
||||
LONG_NAME=Permet d'effectuer des jointures, des filtres de colonnes ou de lignes, des transformations et de multiples sorties
|
||||
MAP.NAME=\u00C9diteur de mapping
|
||||
PREVIEW.NAME=Aper\u00E7u
|
||||
STORE_ON_DISK.NAME=Stocker sur le disque
|
||||
TEMPORARY_DATA_DIRECTORY.NAME=Chemin du r\u00E9pertoire des donn\u00E9es temporaires :
|
||||
ROWS_BUFFER_SIZE.NAME=Taille maximale de la m\u00E9moire tampon (nombre de lignes) :
|
||||
LINK_STYLE.NAME=Les liens de mapping s'affichent comme\u00A0:
|
||||
LINK_STYLE.ITEM.AUTO=Auto
|
||||
LINK_STYLE.ITEM.BEZIER_CURVE=Courbes
|
||||
LINK_STYLE.ITEM.LINE=Lignes (rapide)
|
||||
CHANGE_HASH_AND_EQUALS_FOR_BIGDECIMAL.NAME=Ignorer les z\u00E9ros de fin pour BigDecimal
|
||||
@@ -0,0 +1,10 @@
|
||||
LONG_NAME=Permetti join, colonne o righe filtrate, trasforazioni, e output multipli
|
||||
MAP.NAME=Editor Map:
|
||||
PREVIEW.NAME=Anteprima
|
||||
STORE_ON_DISK.NAME=Salva su disco
|
||||
TEMPORARY_DATA_DIRECTORY.NAME=Temp data directory path:
|
||||
ROWS_BUFFER_SIZE.NAME=Grandezza buffer (n. di record)
|
||||
LINK_STYLE.NAME=Mappa collegameti come:
|
||||
LINK_STYLE.ITEM.AUTO=Auto
|
||||
LINK_STYLE.ITEM.BEZIER_CURVE=Curve
|
||||
LINK_STYLE.ITEM.LINE=Linee (veloce)
|
||||
@@ -0,0 +1,12 @@
|
||||
HELP=org.talend.help.tMap
|
||||
LONG_NAME=\u7D50\u5408\u3001\u30AB\u30E9\u30E0\u3001\u884C\u306E\u3044\u305A\u308C\u304B\u306E\u30D5\u30A3\u30EB\u30BF\u30EA\u30F3\u30B0\u3001\u5909\u63DB\u3001\u8907\u6570\u51FA\u529B\u3092\u8A31\u53EF\u3057\u307E\u3059
|
||||
MAP.NAME=\u30DE\u30C3\u30D7\u30A8\u30C7\u30A3\u30BF\u30FC
|
||||
PREVIEW.NAME=\u30D7\u30EC\u30D3\u30E5\u30FC
|
||||
STORE_ON_DISK.NAME=\u30C7\u30A3\u30B9\u30AF\u306B\u4FDD\u7BA1
|
||||
TEMPORARY_DATA_DIRECTORY.NAME=\u4E00\u6642\u30C7\u30FC\u30BF\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30FC\u30D1\u30B9
|
||||
ROWS_BUFFER_SIZE.NAME=\u6700\u5927\u30D0\u30C3\u30D5\u30A1\u30FC\u30B5\u30A4\u30BA\uFF08\u884C\u6570\uFF09
|
||||
LINK_STYLE.NAME=\u30DE\u30C3\u30D4\u30F3\u30B0\u30EA\u30F3\u30AF\u3092\u6B21\u306E\u3088\u3046\u306B\u8868\u793A:
|
||||
LINK_STYLE.ITEM.AUTO=\u81EA\u52D5
|
||||
LINK_STYLE.ITEM.BEZIER_CURVE=\u66F2\u7DDA
|
||||
LINK_STYLE.ITEM.LINE=\u76F4\u7DDA\uFF08\u9AD8\u901F\uFF09
|
||||
CHANGE_HASH_AND_EQUALS_FOR_BIGDECIMAL.NAME=BigDecimal\u3067\u672B\u5C3E\u306E0\u3092\u7121\u52B9\u5316
|
||||
@@ -0,0 +1,11 @@
|
||||
HELP=org.talend.help.tMap
|
||||
LONG_NAME=\u30b8\u30e7\u30a4\u30f3\u3001\u30ed\u30a6\u307e\u305f\u306f\u30ab\u30e9\u30e0\u306e\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\u3001\u5909\u63db\u3001\u30de\u30eb\u30c1\u51fa\u529b\u3092\u30b5\u30dd\u30fc\u30c8
|
||||
MAP.NAME=\u30de\u30c3\u30d7\u30a8\u30c7\u30a3\u30bf:
|
||||
PREVIEW.NAME=\u30D7\u30EC\u30D3\u30E5\u30FC
|
||||
STORE_ON_DISK.NAME=\u30c7\u30a3\u30b9\u30af\u306b\u4fdd\u5b58
|
||||
TEMPORARY_DATA_DIRECTORY.NAME=\u4e00\u6642\u30c7\u30fc\u30bf\u30c7\u30a3\u30ec\u30af\u30c8\u30ea:
|
||||
ROWS_BUFFER_SIZE.NAME=\u6700\u5927\u30d0\u30c3\u30d5\u30a1\u30b5\u30a4\u30ba\uff08\u30ed\u30a6\u6570\uff09:
|
||||
LINK_STYLE.NAME=\u30de\u30c3\u30d4\u30f3\u30b0\u30ea\u30f3\u30af\u8868\u793a:
|
||||
LINK_STYLE.ITEM.AUTO=\u81EA\u52D5
|
||||
LINK_STYLE.ITEM.BEZIER_CURVE=\u66F2\u7DDA
|
||||
LINK_STYLE.ITEM.LINE=\u76F4\u7DDA\uFF08\u9AD8\u901F\uFF09
|
||||
@@ -0,0 +1,2 @@
|
||||
PREVIEW.NAME=\u041F\u0440\u0435\u0434\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440
|
||||
STORE_ON_DISK.NAME=\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043D\u0430 \u0434\u0438\u0441\u043A
|
||||
@@ -0,0 +1 @@
|
||||
STORE_ON_DISK.NAME=Ulo\u017Ei\u0165 na disk
|
||||
@@ -0,0 +1 @@
|
||||
STORE_ON_DISK.NAME=Ulo\u017Ei\u0165 na disk
|
||||
@@ -0,0 +1,12 @@
|
||||
HELP=org.talend.help.tMap
|
||||
LONG_NAME=\u5141\u8BB8\u8FDE\u63A5\u3001\u5217\u6216\u884C\u7B5B\u9009\u3001\u8F6C\u6362\u4EE5\u53CA\u591A\u4E2A\u8F93\u51FA
|
||||
MAP.NAME=Map \u7F16\u8F91\u5668:
|
||||
PREVIEW.NAME=\u9884\u89C8
|
||||
STORE_ON_DISK.NAME=\u5B58\u50A8\u5728\u78C1\u76D8\u4E0A
|
||||
TEMPORARY_DATA_DIRECTORY.NAME=\u4E34\u65F6\u6570\u636E\u76EE\u5F55\u8DEF\u5F84:
|
||||
ROWS_BUFFER_SIZE.NAME=\u6700\u5927\u7F13\u51B2\u533A\u5927\u5C0F (\u884C\u6570):
|
||||
LINK_STYLE.NAME=\u6620\u5C04\u8FDE\u63A5\u663E\u793A\u4E3A:
|
||||
LINK_STYLE.ITEM.AUTO=\u81EA\u52A8
|
||||
LINK_STYLE.ITEM.BEZIER_CURVE=\u66F2\u7EBF
|
||||
LINK_STYLE.ITEM.LINE=\u76F4\u7EBF (\u5FEB)
|
||||
CHANGE_HASH_AND_EQUALS_FOR_BIGDECIMAL.NAME=\u5FFD\u7565 BigDecimal \u7684\u5C3E\u968F\u96F6
|
||||
@@ -0,0 +1,43 @@
|
||||
<%@ jet
|
||||
imports="
|
||||
org.talend.core.model.process.INode
|
||||
org.talend.core.model.process.ElementParameterParser
|
||||
org.talend.designer.codegen.config.CodeGeneratorArgument
|
||||
"
|
||||
%>
|
||||
<%@ include file="../templates/DB/HelpClass/HelpClass.javajet"%>
|
||||
<%
|
||||
class ConnectionUtil extends DefaultConnectionUtil{
|
||||
|
||||
public void createURL(INode node) {
|
||||
super.createURL(node);
|
||||
String dbVersion = ElementParameterParser.getValue(node, "__DB_VERSION__");
|
||||
String jdbcURL = "jdbc:mysql";
|
||||
if("MARIADB".equals(dbVersion)){
|
||||
jdbcURL = "jdbc:mariadb";
|
||||
}
|
||||
final boolean supportBulkComponent = true;
|
||||
%>
|
||||
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/Mysql/jdbcurl4connection_output.javajet"%>
|
||||
<%
|
||||
}
|
||||
|
||||
public String getDirverClassName(INode node){
|
||||
String dbVersion = ElementParameterParser.getValue(node, "__DB_VERSION__");
|
||||
if("MARIADB".equals(dbVersion)){
|
||||
return "org.mariadb.jdbc.Driver";
|
||||
} else if ("MYSQL_8".equals(dbVersion)){
|
||||
return "com.mysql.cj.jdbc.Driver";
|
||||
} else {
|
||||
return "com.mysql.jdbc.Driver";
|
||||
}
|
||||
}
|
||||
}//end class
|
||||
|
||||
connUtil = new ConnectionUtil();
|
||||
%>
|
||||
<%//----------------------------component codes-----------------------------------------%>
|
||||
|
||||
<%@ include file="../templates/DB/AbstractDBConnection.javajet"%>
|
||||
|
||||
globalMap.put("db_<%=cid%>",<%=dbname%>);
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,203 @@
|
||||
<COMPONENT>
|
||||
|
||||
<HEADER
|
||||
PLATEFORM="ALL"
|
||||
SERIAL=""
|
||||
VERSION="0.102"
|
||||
STATUS="ALPHA"
|
||||
|
||||
COMPATIBILITY="ALL"
|
||||
AUTHOR="Talend"
|
||||
RELEASE_DATE="20050320A"
|
||||
STARTABLE="true"
|
||||
LOG4J_ENABLED="true"
|
||||
>
|
||||
<SIGNATURE/>
|
||||
</HEADER>
|
||||
|
||||
<FAMILIES>
|
||||
<FAMILY>Databases/DB Specifics/MySQL</FAMILY>
|
||||
<FAMILY>ELT/Connections</FAMILY>
|
||||
</FAMILIES>
|
||||
|
||||
<DOCUMENTATION>
|
||||
<URL/>
|
||||
</DOCUMENTATION>
|
||||
|
||||
<CONNECTORS>
|
||||
<CONNECTOR CTYPE="FLOW" MAX_INPUT="0" MAX_OUTPUT="0"/>
|
||||
<CONNECTOR CTYPE="ITERATE" MAX_OUTPUT="0" MAX_INPUT="1"/>
|
||||
<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="PROPERTY"
|
||||
FIELD="PROPERTY_TYPE"
|
||||
SHOW="true"
|
||||
NUM_ROW="1"
|
||||
REPOSITORY_VALUE="DATABASE:MYSQL"
|
||||
/>
|
||||
|
||||
<PARAMETER
|
||||
NAME="DB_VERSION"
|
||||
FIELD="CLOSED_LIST"
|
||||
NUM_ROW="10"
|
||||
REPOSITORY_VALUE="DB_VERSION">
|
||||
<ITEMS DEFAULT="MYSQL_8">
|
||||
<ITEM NAME="MYSQL_8" VALUE="MYSQL_8" />
|
||||
<ITEM NAME="MYSQL_5" VALUE="MYSQL_5" />
|
||||
<ITEM NAME="MARIADB" VALUE="MARIADB" />
|
||||
</ITEMS>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="HOST"
|
||||
FIELD="TEXT"
|
||||
NUM_ROW="20"
|
||||
REPOSITORY_VALUE="SERVER_NAME"
|
||||
>
|
||||
<DEFAULT>""</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="TYPE"
|
||||
FIELD="TEXT"
|
||||
NUM_ROW="3"
|
||||
SHOW="false"
|
||||
REPOSITORY_VALUE="TYPE"
|
||||
>
|
||||
<DEFAULT>MySQL</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="PORT"
|
||||
FIELD="TEXT"
|
||||
NUM_ROW="20"
|
||||
REPOSITORY_VALUE="PORT"
|
||||
>
|
||||
<DEFAULT>"3306"</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="DBNAME"
|
||||
FIELD="TEXT"
|
||||
NUM_ROW="30"
|
||||
REPOSITORY_VALUE="SID"
|
||||
REQUIRED="true"
|
||||
>
|
||||
<DEFAULT>""</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="PROPERTIES"
|
||||
FIELD="TEXT"
|
||||
NUM_ROW="30"
|
||||
REPOSITORY_VALUE="PROPERTIES_STRING">
|
||||
<DEFAULT>"noDatetimeStringSync=true"</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="USER"
|
||||
FIELD="TEXT"
|
||||
NUM_ROW="40"
|
||||
REPOSITORY_VALUE="USERNAME"
|
||||
REQUIRED="true"
|
||||
>
|
||||
<DEFAULT>""</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="PASS"
|
||||
FIELD="PASSWORD"
|
||||
NUM_ROW="40"
|
||||
REPOSITORY_VALUE="PASSWORD"
|
||||
REQUIRED="true"
|
||||
>
|
||||
<DEFAULT>""</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="ENCODING"
|
||||
FIELD="ENCODING_TYPE"
|
||||
NUM_ROW="50"
|
||||
REQUIRED="true"
|
||||
SHOW="false"
|
||||
>
|
||||
<DEFAULT>"ISO-8859-15"</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="USE_SHARED_CONNECTION"
|
||||
FIELD="CHECK"
|
||||
NUM_ROW="60"
|
||||
REQUIRED="true"
|
||||
SHOW_IF="SPECIFY_DATASOURCE_ALIAS=='false'"
|
||||
>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="SHARED_CONNECTION_NAME"
|
||||
FIELD="TEXT"
|
||||
NUM_ROW="60"
|
||||
REQUIRED="true"
|
||||
SHOW_IF="(USE_SHARED_CONNECTION == 'true' AND SPECIFY_DATASOURCE_ALIAS=='false')"
|
||||
>
|
||||
<DEFAULT></DEFAULT>
|
||||
</PARAMETER>
|
||||
<PARAMETER
|
||||
NAME="NOTE"
|
||||
FIELD="LABEL"
|
||||
NUM_ROW="63"
|
||||
GROUP="DATASOURCE"
|
||||
SHOW_IF="USE_SHARED_CONNECTION=='false'"
|
||||
>
|
||||
<DEFAULT>This option only applies when deploying and running in the Talend Runtime</DEFAULT>
|
||||
</PARAMETER>
|
||||
<PARAMETER
|
||||
NAME="SPECIFY_DATASOURCE_ALIAS"
|
||||
FIELD="CHECK"
|
||||
NUM_ROW="64"
|
||||
REQUIRED="true"
|
||||
GROUP="DATASOURCE"
|
||||
SHOW_IF="USE_SHARED_CONNECTION=='false'"
|
||||
>
|
||||
</PARAMETER>
|
||||
<PARAMETER
|
||||
NAME="DATASOURCE_ALIAS"
|
||||
FIELD="TEXT"
|
||||
NUM_ROW="65"
|
||||
REQUIRED="true"
|
||||
GROUP="DATASOURCE"
|
||||
SHOW_IF="(SPECIFY_DATASOURCE_ALIAS=='true' AND USE_SHARED_CONNECTION=='false')"
|
||||
>
|
||||
<DEFAULT>""</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
</PARAMETERS>
|
||||
<ADVANCED_PARAMETERS>
|
||||
<PARAMETER
|
||||
NAME="AUTO_COMMIT"
|
||||
FIELD="CHECK"
|
||||
NUM_ROW="10">
|
||||
<DEFAULT>false</DEFAULT>
|
||||
</PARAMETER>
|
||||
</ADVANCED_PARAMETERS>
|
||||
|
||||
<CODEGENERATION>
|
||||
<IMPORTS>
|
||||
<IMPORT NAME="Mysql_Driver8" MODULE="mysql-connector-java-8.0.18.jar" MVN="mvn:mysql/mysql-connector-java/8.0.18" REQUIRED_IF="(DB_VERSION == 'MYSQL_8')" />
|
||||
<IMPORT NAME="Mysql_Driver5" MODULE="mysql-connector-java-5.1.49.jar" MVN="mvn:mysql/mysql-connector-java/5.1.49" REQUIRED_IF="(DB_VERSION == 'MYSQL_5')" />
|
||||
<IMPORT NAME="Mysql_MARIADB" MODULE="mariadb-java-client-2.5.3.jar" MVN="mvn:org.mariadb.jdbc/mariadb-java-client/2.5.3" REQUIRED_IF="(DB_VERSION == 'MARIADB')" />
|
||||
<IMPORT NAME="slf4j-api-1.7.29.jar" MODULE="slf4j-api-1.7.29.jar" MVN="mvn:org.slf4j/slf4j-api/1.7.29" REQUIRED_IF="(USE_SHARED_CONNECTION == 'true' AND SPECIFY_DATASOURCE_ALIAS=='false')" />
|
||||
<IMPORT NAME="slf4j-log4j12-1.7.29.jar" MODULE="slf4j-log4j12-1.7.29.jar" MVN="mvn:org.slf4j/slf4j-log4j12/1.7.29" REQUIRED_IF="(USE_SHARED_CONNECTION == 'true' AND SPECIFY_DATASOURCE_ALIAS=='false')" />
|
||||
</IMPORTS>
|
||||
</CODEGENERATION>
|
||||
|
||||
<RETURNS/>
|
||||
</COMPONENT>
|
||||
@@ -0,0 +1,38 @@
|
||||
DBD-ODBC.INFO=Required for ODBC-like connection
|
||||
DBD-Oracle.INFO=Required for Oracle
|
||||
DBD-Pg.INFO=Required for PostgreSQL
|
||||
DBD-mysql.INFO=Required for MySQL
|
||||
DBNAME.NAME=Database
|
||||
ENCODING.NAME=Encoding
|
||||
HELP=org.talend.help.tMysqlConnection
|
||||
HOST.NAME=Host
|
||||
LONG_NAME=Creates a connection to a MySQL database
|
||||
NB_LINE.NAME=Number of line
|
||||
NULL_CHAR.NAME=Null Char
|
||||
PASS.NAME=Password
|
||||
PORT.NAME=Port
|
||||
QUERY.NAME=Query
|
||||
QUERYSTORE.NAME=Query Type
|
||||
SCHEMA.NAME=Schema
|
||||
SCHEMA_DB.NAME=Schema
|
||||
SQL_SYNTAX.NAME=Sql Syntax
|
||||
STRING_QUOTE.NAME=String Quote
|
||||
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc driver)
|
||||
TYPE.ITEM.MYSQL=MySQL
|
||||
TYPE.ITEM.ODBC=Generic ODBC
|
||||
TYPE.ITEM.ORACLE=Oracle
|
||||
TYPE.ITEM.PGSQL=PostgreSQL
|
||||
TYPE.NAME=Database Driver
|
||||
USER.NAME=Username
|
||||
PROPERTIES.NAME=Additional JDBC Parameters
|
||||
USE_SHARED_CONNECTION.NAME=Use or register a shared DB Connection
|
||||
SHARED_CONNECTION_NAME.NAME=Shared DB Connection Name
|
||||
SPECIFY_DATASOURCE_ALIAS.NAME=Specify a data source alias
|
||||
DATASOURCE.NAME=Data source
|
||||
DATASOURCE_ALIAS.NAME=Data source alias
|
||||
AUTO_COMMIT.NAME=Auto Commit
|
||||
PROPERTY.NAME=Property Type
|
||||
DB_VERSION.NAME=DB Version
|
||||
DB_VERSION.ITEM.MYSQL_5=Mysql 5
|
||||
DB_VERSION.ITEM.MYSQL_8=Mysql 8
|
||||
DB_VERSION.ITEM.MARIADB=MariaDB
|
||||
@@ -0,0 +1,30 @@
|
||||
DBD-ODBC.INFO=F\u00FCr ODBC-\u00E4hnliche Verbindung ben\u00F6tigt
|
||||
DBD-Oracle.INFO=F\u00FCr Oracle ben\u00F6tigt
|
||||
DBD-Pg.INFO=F\u00FCr PostgreSQL ben\u00F6tigt
|
||||
DBD-mysql.INFO=F\u00FCr MySQL ben\u00F6tigt
|
||||
ENCODING.NAME=Encoding
|
||||
HOST.NAME=Host
|
||||
LONG_NAME=Baut eine Verbindung zur MySQL Datenbank auf
|
||||
PASS.NAME=Passwort
|
||||
PORT.NAME=Port
|
||||
QUERY.NAME=Abfrage
|
||||
QUERYSTORE.NAME=Abfragetyp
|
||||
SCHEMA.NAME=Schema
|
||||
SCHEMA_DB.NAME=Schema
|
||||
SQL_SYNTAX.NAME=SQL Syntax
|
||||
STRING_QUOTE.NAME=Text Quotierung
|
||||
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc Treiber)
|
||||
TYPE.ITEM.MYSQL=MySQL
|
||||
TYPE.ITEM.ODBC=Generischer ODBC
|
||||
TYPE.ITEM.ORACLE=Oracle
|
||||
TYPE.ITEM.PGSQL=PostgreSQL
|
||||
TYPE.NAME=Datenbanktreiber
|
||||
USER.NAME=Benutzername
|
||||
PROPERTIES.NAME=Zus\u00E4tzliche JDBC Parameter
|
||||
USE_SHARED_CONNECTION.NAME=Verwende oder melde eine geteilte DB Verbindung an
|
||||
SHARED_CONNECTION_NAME.NAME=Gemeinsam verwendeter DB Verbindungsname
|
||||
AUTO_COMMIT.NAME=Autocommit
|
||||
PROPERTY.NAME=Eigenschaftstyp
|
||||
DB_VERSION.NAME=Datenbankversion
|
||||
DB_VERSION.ITEM.MYSQL_5=Mysql 5
|
||||
DATASOURCE.NAME=Datenquelle
|
||||
@@ -0,0 +1,16 @@
|
||||
ENCODING.NAME=Codificaci\u00F3n
|
||||
HOST.NAME=Host
|
||||
LONG_NAME=Crea una conexi\u00F3n a una base de datos MySQL
|
||||
PASS.NAME=Contrase\u00F1a
|
||||
PORT.NAME=Puerto
|
||||
SCHEMA.NAME=Esquema
|
||||
SCHEMA_DB.NAME=Esquema
|
||||
SQL_SYNTAX.NAME=Sintaxis SQL
|
||||
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Controlador ODBC)
|
||||
TYPE.ITEM.MYSQL=MySQL
|
||||
TYPE.ITEM.ODBC=ODBC Gen\u00E9rico
|
||||
TYPE.ITEM.ORACLE=Oracle
|
||||
TYPE.ITEM.PGSQL=PostgreSQL
|
||||
TYPE.NAME=Controlador de base de datos
|
||||
USER.NAME=Nombre de usuario
|
||||
AUTO_COMMIT.NAME=Auto Commit
|
||||
@@ -0,0 +1,38 @@
|
||||
DBD-ODBC.INFO=Requis pour les connexions de type ODBC
|
||||
DBD-Oracle.INFO=Requis pour Oracle
|
||||
DBD-Pg.INFO=Requis pour PostgreSQL
|
||||
DBD-mysql.INFO=Requis pour MySQL
|
||||
DBNAME.NAME=Base de donn\u00E9es
|
||||
ENCODING.NAME=Encodage
|
||||
HELP=org.talend.help.tMysqlConnection
|
||||
HOST.NAME=H\u00F4te
|
||||
LONG_NAME=Cr\u00E9e une connexion \u00E0 une base de donn\u00E9es MySQL
|
||||
NB_LINE.NAME=Nombre de lignes
|
||||
NULL_CHAR.NAME=Caract\u00E8re Null
|
||||
PASS.NAME=Mot de passe
|
||||
PORT.NAME=Port
|
||||
QUERY.NAME=Requ\u00EAte
|
||||
QUERYSTORE.NAME=Type de requ\u00EAte
|
||||
SCHEMA.NAME=Sch\u00E9ma
|
||||
SCHEMA_DB.NAME=Sch\u00E9ma
|
||||
SQL_SYNTAX.NAME=Syntaxe SQL
|
||||
STRING_QUOTE.NAME=S\u00E9parateur de cha\u00EEne de caract\u00E8res
|
||||
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (pilote ODBC)
|
||||
TYPE.ITEM.MYSQL=MySQL
|
||||
TYPE.ITEM.ODBC=ODBC g\u00E9n\u00E9rique
|
||||
TYPE.ITEM.ORACLE=Oracle
|
||||
TYPE.ITEM.PGSQL=PostgreSQL
|
||||
TYPE.NAME=Pilote de la base de donn\u00E9es
|
||||
USER.NAME=Utilisateur
|
||||
PROPERTIES.NAME=Param\u00E8tres suppl\u00E9mentaires JDBC
|
||||
USE_SHARED_CONNECTION.NAME=Utiliser ou enregistrer une connexion partag\u00E9e \u00E0 une base de donn\u00E9es
|
||||
SHARED_CONNECTION_NAME.NAME=Nom de la connexion partag\u00E9e \u00E0 la base de donn\u00E9es
|
||||
SPECIFY_DATASOURCE_ALIAS.NAME=Sp\u00E9cifier un alias de source de donn\u00E9es
|
||||
DATASOURCE.NAME=Source de donn\u00E9es
|
||||
DATASOURCE_ALIAS.NAME=Alias de la source de donn\u00E9es
|
||||
AUTO_COMMIT.NAME=Commit auto
|
||||
PROPERTY.NAME=Type de propri\u00E9t\u00E9
|
||||
DB_VERSION.NAME=Version de la base de donn\u00E9es
|
||||
DB_VERSION.ITEM.MYSQL_5=MySQL 5
|
||||
DB_VERSION.ITEM.MYSQL_8=MySQL 8
|
||||
DB_VERSION.ITEM.MARIADB=MariaDB
|
||||
@@ -0,0 +1,26 @@
|
||||
DBD-ODBC.INFO=Richiesto per connessione ODBC-like
|
||||
DBD-Oracle.INFO=Richiesto per Oracle
|
||||
DBD-Pg.INFO=Richiesto per PostgreSQL
|
||||
DBD-mysql.INFO=Richiesto per MySQL
|
||||
ENCODING.NAME=Codifica
|
||||
HOST.NAME=Host
|
||||
LONG_NAME=Crea una connesione ad un DB MySQL
|
||||
NULL_CHAR.NAME=Carattere Nullo
|
||||
PASS.NAME=Password
|
||||
PORT.NAME=Porta
|
||||
QUERY.NAME=Query
|
||||
QUERYSTORE.NAME=Tipo query
|
||||
SCHEMA.NAME=Schema
|
||||
SCHEMA_DB.NAME=Schema
|
||||
SQL_SYNTAX.NAME=Sintassi SQL
|
||||
STRING_QUOTE.NAME=Quota stringa
|
||||
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc driver)
|
||||
TYPE.ITEM.MYSQL=MySQL
|
||||
TYPE.ITEM.ODBC=ODBC Generico
|
||||
TYPE.ITEM.ORACLE=Oracle
|
||||
TYPE.ITEM.PGSQL=PostgreSQL
|
||||
TYPE.NAME=Database Driver
|
||||
USER.NAME=Username
|
||||
PROPERTIES.NAME=Parametri aggiuntivi JDBC
|
||||
PROPERTY.NAME=Tipo propriet\u00E0
|
||||
DB_VERSION.NAME=Versione Db
|
||||
@@ -0,0 +1,38 @@
|
||||
DBD-ODBC.INFO=ODBC\u306E\u3088\u3046\u306A\u63A5\u7D9A\u3067\u5FC5\u9808
|
||||
DBD-Oracle.INFO=Oracle\u3067\u5FC5\u9808
|
||||
DBD-Pg.INFO=PostgreSQL\u3067\u5FC5\u9808
|
||||
DBD-mysql.INFO=MySQL\u3067\u5FC5\u9808
|
||||
DBNAME.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9
|
||||
ENCODING.NAME=\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0
|
||||
HELP=org.talend.help.tMysqlConnection
|
||||
HOST.NAME=\u30DB\u30B9\u30C8
|
||||
LONG_NAME=MySQL\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3078\u306E\u63A5\u7D9A\u3092\u4F5C\u6210\u3057\u307E\u3059
|
||||
NB_LINE.NAME=\u884C\u6570
|
||||
NULL_CHAR.NAME=Null\u6587\u5B57
|
||||
PASS.NAME=\u30D1\u30B9\u30EF\u30FC\u30C9
|
||||
PORT.NAME=\u30DD\u30FC\u30C8
|
||||
QUERY.NAME=\u30AF\u30A8\u30EA\u30FC
|
||||
QUERYSTORE.NAME=\u30AF\u30A8\u30EA\u30FC\u30BF\u30A4\u30D7
|
||||
SCHEMA.NAME=\u30B9\u30AD\u30FC\u30DE
|
||||
SCHEMA_DB.NAME=\u30B9\u30AD\u30FC\u30DE
|
||||
SQL_SYNTAX.NAME=Sql\u69CB\u6587
|
||||
STRING_QUOTE.NAME=\u5F15\u7528\u7B26
|
||||
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc\u30C9\u30E9\u30A4\u30D0\u30FC)
|
||||
TYPE.ITEM.MYSQL=MySQL
|
||||
TYPE.ITEM.ODBC=\u6C4E\u7528ODBC
|
||||
TYPE.ITEM.ORACLE=Oracle
|
||||
TYPE.ITEM.PGSQL=PostgreSQL
|
||||
TYPE.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30C9\u30E9\u30A4\u30D0\u30FC
|
||||
USER.NAME=\u30E6\u30FC\u30B6\u30FC\u540D
|
||||
PROPERTIES.NAME=\u8FFD\u52A0\u306EJDBC\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC
|
||||
USE_SHARED_CONNECTION.NAME=\u5171\u6709DB\u63A5\u7D9A\u306E\u4F7F\u7528\u307E\u305F\u306F\u767B\u9332
|
||||
SHARED_CONNECTION_NAME.NAME=\u5171\u6709DB\u63A5\u7D9A\u540D
|
||||
SPECIFY_DATASOURCE_ALIAS.NAME=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u30A8\u30A4\u30EA\u30A2\u30B9\u3092\u6307\u5B9A
|
||||
DATASOURCE.NAME=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9
|
||||
DATASOURCE_ALIAS.NAME=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u30A8\u30A4\u30EA\u30A2\u30B9
|
||||
AUTO_COMMIT.NAME=\u81EA\u52D5\u30B3\u30DF\u30C3\u30C8
|
||||
PROPERTY.NAME=\u30D7\u30ED\u30D1\u30C6\u30A3\u30BF\u30A4\u30D7
|
||||
DB_VERSION.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D0\u30FC\u30B8\u30E7\u30F3
|
||||
DB_VERSION.ITEM.MYSQL_5=Mysql 5
|
||||
DB_VERSION.ITEM.MYSQL_8=Mysql8
|
||||
DB_VERSION.ITEM.MARIADB=MariaDB
|
||||
@@ -0,0 +1,32 @@
|
||||
DBD-ODBC.INFO=ODBC-like connection\u306E\u5834\u5408\u306F\u5FC5\u9808
|
||||
DBD-Oracle.INFO=Oracle\u306E\u5834\u5408\u306F\u5FC5\u9808
|
||||
DBD-Pg.INFO=PostgreSQL\u306E\u5834\u5408\u306F\u5FC5\u9808
|
||||
DBD-mysql.INFO=MySQL\u306E\u5834\u5408\u306F\u5FC5\u9808
|
||||
DBNAME.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9
|
||||
ENCODING.NAME=\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0
|
||||
HELP=org.talend.help.tMysqlConnection
|
||||
HOST.NAME=\u30DB\u30B9\u30C8
|
||||
LONG_NAME=MySQL\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3078\u306E\u63A5\u7D9A\u3092\u4F5C\u6210
|
||||
NB_LINE.NAME=\u884c\u6570
|
||||
NULL_CHAR.NAME=Null\u30AD\u30E3\u30E9\u30AF\u30BF
|
||||
PASS.NAME=\u30D1\u30B9\u30EF\u30FC\u30C9
|
||||
PORT.NAME=\u30DD\u30FC\u30C8
|
||||
QUERY.NAME=\u30AF\u30A8\u30EA
|
||||
QUERYSTORE.NAME=\u30AF\u30A8\u30EA\u30BF\u30A4\u30D7
|
||||
SCHEMA.NAME=\u30B9\u30AD\u30FC\u30DE
|
||||
SCHEMA_DB.NAME=\u30B9\u30AD\u30FC\u30DE
|
||||
SQL_SYNTAX.NAME=SQL\u69CB\u6587
|
||||
STRING_QUOTE.NAME=\u6587\u5B57\u5217\u306E\u5F15\u7528
|
||||
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc \u30C9\u30E9\u30A4\u30D0)
|
||||
TYPE.ITEM.MYSQL=MySQL
|
||||
TYPE.ITEM.ODBC=\u6c4e\u7528ODBC
|
||||
TYPE.ITEM.ORACLE=Oracle
|
||||
TYPE.ITEM.PGSQL=PostgreSQL
|
||||
TYPE.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30C9\u30E9\u30A4\u30D0
|
||||
USER.NAME=\u30e6\u30fc\u30b6\u540d
|
||||
PROPERTIES.NAME=\u8ffd\u52a0\u306eJDBC\u30d1\u30e9\u30e1\u30fc\u30bf
|
||||
USE_SHARED_CONNECTION.NAME=\u5171\u6709DB\u63a5\u7d9a\u3092\u4f7f\u7528/\u767b\u9332
|
||||
SHARED_CONNECTION_NAME.NAME=\u5171\u6709DB\u63A5\u7D9A\u540D
|
||||
AUTO_COMMIT.NAME=\u81EA\u52D5\u30B3\u30DF\u30C3\u30C8
|
||||
PROPERTY.NAME=\u30D7\u30ED\u30D1\u30C6\u30A3\u30BF\u30A4\u30D7
|
||||
DB_VERSION.NAME=DB\u30D0\u30FC\u30B8\u30E7\u30F3
|
||||
@@ -0,0 +1,23 @@
|
||||
DBD-ODBC.INFO=\u041D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C \u0434\u043B\u044F \u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0439 ODBC \u0442\u0438\u043F\u0430
|
||||
DBD-Oracle.INFO=\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F Oracle
|
||||
DBD-Pg.INFO=\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F PostgreSQL
|
||||
DBD-mysql.INFO=\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F MySQL
|
||||
ENCODING.NAME=\u041A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430
|
||||
HOST.NAME=\u0425\u043E\u0441\u0442
|
||||
NULL_CHAR.NAME=\u041F\u0443\u0441\u0442\u043E\u0439 \u0441\u0438\u043C\u0432\u043E\u043B
|
||||
PASS.NAME=\u041F\u0430\u0440\u043E\u043B\u044C
|
||||
PORT.NAME=\u041F\u043E\u0440\u0442
|
||||
QUERY.NAME=\u0417\u0430\u043F\u0440\u043E\u0441
|
||||
QUERYSTORE.NAME=\u0422\u0438\u043F \u0437\u0430\u043F\u0440\u043E\u0441\u0430
|
||||
SCHEMA.NAME=\u0421\u0445\u0435\u043C\u0430
|
||||
SCHEMA_DB.NAME=\u0421\u0445\u0435\u043C\u0430
|
||||
SQL_SYNTAX.NAME=SQL \u0441\u0438\u043D\u0442\u0430\u043A\u0441\u0438\u0441
|
||||
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc driver)
|
||||
TYPE.ITEM.MYSQL=MySQL
|
||||
TYPE.ITEM.ODBC=Generic ODBC
|
||||
TYPE.ITEM.ORACLE=Oracle
|
||||
TYPE.ITEM.PGSQL=PostgreSQL
|
||||
TYPE.NAME=\u0414\u0440\u0430\u0439\u0432\u0435\u0440 \u0431\u0430\u0437\u044B \u0434\u0430\u043D\u043D\u044B\u0445
|
||||
USER.NAME=\u0418\u043C\u044F \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F
|
||||
DB_VERSION.NAME=\u0412\u0435\u0440\u0441\u0438\u044F \u0411\u0414
|
||||
DB_VERSION.ITEM.MYSQL_5=Mysql 5
|
||||
@@ -0,0 +1,8 @@
|
||||
ENCODING.NAME=K\u00F3dovanie
|
||||
HOST.NAME=Host
|
||||
PASS.NAME=Heslo
|
||||
PORT.NAME=Port
|
||||
SCHEMA.NAME=Sch\u00E9ma
|
||||
SCHEMA_DB.NAME=Sch\u00E9ma
|
||||
USER.NAME=U\u017E\u00EDvate\u013Esk\u00E9 Meno
|
||||
DB_VERSION.ITEM.MYSQL_5=Mysql 5
|
||||
@@ -0,0 +1,9 @@
|
||||
ENCODING.NAME=K<EFBFBD>dovanie
|
||||
HOST.NAME=Host
|
||||
PASS.NAME=Heslo
|
||||
PORT.NAME=Port
|
||||
SCHEMA.NAME=Sch<EFBFBD>ma
|
||||
SCHEMA_DB.NAME=Sch<EFBFBD>ma
|
||||
USER.NAME=U\u017E<37>vate\u013Esk<73> Meno
|
||||
DB_VERSION.ITEM.MYSQL_4=Mysql 4
|
||||
DB_VERSION.ITEM.MYSQL_5=Mysql 5
|
||||
@@ -0,0 +1,38 @@
|
||||
DBD-ODBC.INFO=\u4E3A\u7C7B\u4F3C ODBC \u8FDE\u63A5\u6240\u5FC5\u9700
|
||||
DBD-Oracle.INFO=\u4E3A Oracle \u6240\u5FC5\u9700
|
||||
DBD-Pg.INFO=\u4E3A PostgreSQL \u6240\u5FC5\u9700
|
||||
DBD-mysql.INFO=\u4E3A MySQL \u6240\u5FC5\u9700
|
||||
DBNAME.NAME=\u6570\u636E\u5E93
|
||||
ENCODING.NAME=\u7F16\u7801
|
||||
HELP=org.talend.help.tMysqlConnection
|
||||
HOST.NAME=\u4E3B\u673A
|
||||
LONG_NAME=\u521B\u5EFA\u5230 MySQL \u6570\u636E\u5E93\u7684\u8FDE\u63A5
|
||||
NB_LINE.NAME=\u884C\u6570
|
||||
NULL_CHAR.NAME=Null \u5B57\u7B26
|
||||
PASS.NAME=\u5BC6\u7801
|
||||
PORT.NAME=\u7AEF\u53E3
|
||||
QUERY.NAME=\u67E5\u8BE2
|
||||
QUERYSTORE.NAME=\u67E5\u8BE2\u7C7B\u578B
|
||||
SCHEMA.NAME=Schema
|
||||
SCHEMA_DB.NAME=Schema
|
||||
SQL_SYNTAX.NAME=Sql \u8BED\u6CD5
|
||||
STRING_QUOTE.NAME=\u5B57\u7B26\u4E32\u5F15\u7528
|
||||
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc \u9A71\u52A8)
|
||||
TYPE.ITEM.MYSQL=MySQL
|
||||
TYPE.ITEM.ODBC=\u901A\u7528 ODBC
|
||||
TYPE.ITEM.ORACLE=\u5B9E\u6570\u7EDD\u5BF9\u503C
|
||||
TYPE.ITEM.PGSQL=PostgreSQL
|
||||
TYPE.NAME=\u6570\u636E\u5E93\u9A71\u52A8
|
||||
USER.NAME=\u7528\u6237\u540D
|
||||
PROPERTIES.NAME=\u9644\u52A0 JDBC \u53C2\u6570
|
||||
USE_SHARED_CONNECTION.NAME=\u4F7F\u7528\u6216\u6CE8\u518C\u5171\u4EAB\u6570\u636E\u5E93\u8FDE\u63A5
|
||||
SHARED_CONNECTION_NAME.NAME=\u5171\u4EAB\u6570\u636E\u5E93\u8FDE\u63A5\u540D\u79F0
|
||||
SPECIFY_DATASOURCE_ALIAS.NAME=\u6307\u5B9A\u6570\u636E\u6E90\u522B\u540D
|
||||
DATASOURCE.NAME=\u6570\u636E\u6E90
|
||||
DATASOURCE_ALIAS.NAME=\u6570\u636E\u6E90\u522B\u540D
|
||||
AUTO_COMMIT.NAME=\u81EA\u52A8\u63D0\u4EA4
|
||||
PROPERTY.NAME=\u5C5E\u6027\u7C7B\u578B
|
||||
DB_VERSION.NAME=\u6570\u636E\u5E93\u7248\u672C
|
||||
DB_VERSION.ITEM.MYSQL_5=Mysql 5
|
||||
DB_VERSION.ITEM.MYSQL_8=Mysql 8
|
||||
DB_VERSION.ITEM.MARIADB=MariaDB
|
||||
@@ -0,0 +1,343 @@
|
||||
GNU General Public License
|
||||
**************************
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
675 Mass Ave, Cambridge, MA 02139, USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
Appendix: How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) 19yy <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
|
||||
@@ -0,0 +1,126 @@
|
||||
<%@ 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.designer.codegen.config.CodeGeneratorArgument
|
||||
org.talend.core.model.process.IConnection
|
||||
org.talend.core.model.process.IConnectionCategory
|
||||
org.talend.core.model.metadata.types.JavaTypesManager
|
||||
java.util.List
|
||||
java.util.Map
|
||||
"
|
||||
%>
|
||||
<%@ include file="../templates/DB/Input/HelpClass.javajet"%>
|
||||
<%
|
||||
|
||||
class DBInputBeginUtil extends DefaultDBInputUtil{
|
||||
|
||||
public void beforeComponentProcess(INode node){
|
||||
super.beforeComponentProcess(node);
|
||||
cid = node.getUniqueName();
|
||||
%>
|
||||
java.util.Calendar calendar_<%=cid%> = java.util.Calendar.getInstance();
|
||||
calendar_<%=cid%>.set(0, 0, 0, 0, 0, 0);
|
||||
java.util.Date year0_<%=cid%> = calendar_<%=cid%>.getTime();
|
||||
<%
|
||||
}
|
||||
|
||||
public void setURL(INode node) {
|
||||
String dbVersion = ElementParameterParser.getValue(node, "__DB_VERSION__");
|
||||
String jdbcURL = "jdbc:mysql";
|
||||
if("MARIADB".equals(dbVersion)){
|
||||
jdbcURL = "jdbc:mariadb";
|
||||
}
|
||||
%>
|
||||
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/Mysql/jdbcurl4basic.javajet"%>
|
||||
<%
|
||||
}
|
||||
|
||||
public String getDirverClassName(INode node){
|
||||
String dbVersion = ElementParameterParser.getValue(node, "__DB_VERSION__");
|
||||
if("MARIADB".equals(dbVersion)){
|
||||
return "org.mariadb.jdbc.Driver";
|
||||
} else if ("MYSQL_8".equals(dbVersion)){
|
||||
return "com.mysql.cj.jdbc.Driver";
|
||||
} else {
|
||||
return "com.mysql.jdbc.Driver";
|
||||
}
|
||||
}
|
||||
|
||||
public void createStatement(INode node) {
|
||||
super.createStatement(node);
|
||||
String enableStream = ElementParameterParser.getValue(node, "__ENABLE_STREAM__");
|
||||
boolean useExistMySQLConn = "true".equalsIgnoreCase(ElementParameterParser.getValue(node,"__USE_EXISTING_CONNECTION__"));
|
||||
String dbVersion = "";
|
||||
if (useExistMySQLConn) {
|
||||
List< ? extends INode> nodes = node.getProcess().getNodesOfType("tMysqlConnection");
|
||||
String connectionMySQL = ElementParameterParser.getValue(node,"__CONNECTION__");
|
||||
for (INode ne : nodes) {
|
||||
if (connectionMySQL.equals(ne.getUniqueName())) {
|
||||
dbVersion = ElementParameterParser.getValue(ne, "__DB_VERSION__");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
dbVersion = ElementParameterParser.getValue(node, "__DB_VERSION__");
|
||||
}
|
||||
if(("true").equals(enableStream)&&(!"MARIADB".equals(dbVersion))&&(!"MYSQL_8".equals(dbVersion))) {
|
||||
%>
|
||||
if(stmt_<%=cid %> instanceof com.mysql.jdbc.Statement){
|
||||
((com.mysql.jdbc.Statement)stmt_<%=cid %>).enableStreamingResults();
|
||||
}else if(stmt_<%=cid %> instanceof com.mysql.jdbc.jdbc2.optional.JDBC4StatementWrapper){
|
||||
((com.mysql.jdbc.jdbc2.optional.JDBC4StatementWrapper)stmt_<%=cid %>).enableStreamingResults();
|
||||
}
|
||||
<%
|
||||
} else if (("true").equals(enableStream) && ("MYSQL_8".equals(dbVersion))){
|
||||
%>
|
||||
if(stmt_<%=cid %> instanceof com.mysql.cj.jdbc.StatementImpl){
|
||||
((com.mysql.cj.jdbc.StatementImpl)stmt_<%=cid %>).enableStreamingResults();
|
||||
}else if(stmt_<%=cid %> instanceof com.mysql.cj.jdbc.StatementWrapper){
|
||||
((com.mysql.cj.jdbc.StatementWrapper)stmt_<%=cid %>).enableStreamingResults();
|
||||
}
|
||||
<%
|
||||
}
|
||||
}
|
||||
|
||||
public void generateYearResultSet(String firstConnName, IMetadataColumn column, int currentColNo) {
|
||||
%>
|
||||
//check if year is null in DB
|
||||
String yearStringValue_<%=cid %> = rs_<%=cid%>.getString(<%if(isDynamic){%>column_index_<%=cid%><%}else{%><%=currentColNo%><%}%>);
|
||||
if (null != yearStringValue_<%=cid %>) {
|
||||
Integer yearValue_<%=cid%> = rs_<%=cid%>.getInt(<%if(isDynamic){%>column_index_<%=cid%><%}else{%><%=currentColNo%><%}%>);
|
||||
calendar_<%=cid %>.set(yearValue_<%=cid%>, 0, 1);
|
||||
<%=firstConnName%>.<%=column.getLabel()%> = calendar_<%=cid %>.getTime();
|
||||
} else {
|
||||
<%=firstConnName%>.<%=column.getLabel()%> = null;
|
||||
}
|
||||
<%
|
||||
}
|
||||
|
||||
//-----------according schema type to generate ResultSet
|
||||
public void generateTimestampResultSet(String firstConnName, IMetadataColumn column, int currentColNo) {
|
||||
if ("YEAR".equalsIgnoreCase(column.getType())) {
|
||||
generateYearResultSet(firstConnName, column, currentColNo);
|
||||
} else {
|
||||
%>
|
||||
if(rs_<%=cid %>.getString(<%if(isDynamic){%>column_index_<%=cid%><%}else{%><%=currentColNo%><%}%>) != null) {
|
||||
String dateString_<%=cid%> = rs_<%=cid%>.getString(<%if(isDynamic){%>column_index_<%=cid%><%}else{%><%=currentColNo%><%}%>);
|
||||
if (!("0000-00-00").equals(dateString_<%=cid%>) && !("0000-00-00 00:00:00").equals(dateString_<%=cid%>)) {
|
||||
<%=firstConnName%>.<%=column.getLabel()%> = rs_<%=cid%>.getTimestamp(<%if(isDynamic){%>column_index_<%=cid%><%}else{%><%=currentColNo%><%}%>);
|
||||
} else {
|
||||
<%=firstConnName%>.<%=column.getLabel()%> = (java.util.Date) year0_<%=cid%>.clone();
|
||||
}
|
||||
} else {
|
||||
<%=firstConnName%>.<%=column.getLabel()%> = null;
|
||||
}
|
||||
<%
|
||||
}
|
||||
}
|
||||
|
||||
//---------end according schema type to generate ResultSet
|
||||
}//end class
|
||||
|
||||
dbInputBeginUtil = new DBInputBeginUtil();
|
||||
%>
|
||||
<%@ include file="../templates/DB/Input/AbstractDBInputBegin.javajet"%>
|
||||
@@ -0,0 +1,51 @@
|
||||
<%@ jet
|
||||
imports="
|
||||
org.talend.core.model.process.INode
|
||||
org.talend.designer.codegen.config.CodeGeneratorArgument
|
||||
org.talend.core.model.process.ElementParameterParser
|
||||
"
|
||||
%>
|
||||
<%@ include file="../templates/Log4j/Log4jDBConnUtil.javajet"%>
|
||||
<%
|
||||
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
|
||||
INode node = (INode)codeGenArgument.getArgument();
|
||||
String cid = node.getUniqueName();
|
||||
String useExistingConn = ElementParameterParser.getValue(node,"__USE_EXISTING_CONNECTION__");
|
||||
%>
|
||||
}
|
||||
}finally{
|
||||
if (rs_<%=cid%> != null) {
|
||||
rs_<%=cid%>.close();
|
||||
}
|
||||
if (stmt_<%=cid%> != null) {
|
||||
stmt_<%=cid%>.close();
|
||||
}
|
||||
<%
|
||||
if(!("true").equals(useExistingConn))
|
||||
{
|
||||
%>
|
||||
if(conn_<%=cid%> != null && !conn_<%=cid%>.isClosed()) {
|
||||
<%log4jCodeGenerateUtil.close(node);%>
|
||||
}
|
||||
<%
|
||||
}
|
||||
%>
|
||||
}
|
||||
|
||||
<%
|
||||
boolean isAmazonAurora = node.isVirtualGenerateNode() && (cid.matches("^.*?tAmazonAuroraInput_\\d+_in$") || cid.matches("^.*?tDBInput_\\d+_in$"));
|
||||
if(isAmazonAurora){
|
||||
// why 3: ==> "_in".length()
|
||||
%>
|
||||
globalMap.put("<%= cid.substring(0,cid.length() - 3) %>_NB_LINE",nb_line_<%=cid%>);
|
||||
<%
|
||||
}else{
|
||||
%>
|
||||
globalMap.put("<%=cid %>_NB_LINE",nb_line_<%=cid%>);
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
<%
|
||||
log4jCodeGenerateUtil.retrieveRecordsCount(node);
|
||||
%>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
@@ -0,0 +1,282 @@
|
||||
<COMPONENT>
|
||||
|
||||
<HEADER
|
||||
PLATEFORM="ALL"
|
||||
SERIAL=""
|
||||
VERSION="0.102"
|
||||
STATUS="ALPHA"
|
||||
|
||||
COMPATIBILITY="ALL"
|
||||
AUTHOR="Talend"
|
||||
RELEASE_DATE="20070312A"
|
||||
STARTABLE="true"
|
||||
LOG4J_ENABLED="true"
|
||||
>
|
||||
<SIGNATURE/>
|
||||
</HEADER>
|
||||
|
||||
<FAMILIES>
|
||||
<FAMILY>Databases/DB Specifics/MySQL</FAMILY>
|
||||
</FAMILIES>
|
||||
|
||||
<DOCUMENTATION>
|
||||
<URL/>
|
||||
</DOCUMENTATION>
|
||||
|
||||
<CONNECTORS>
|
||||
<CONNECTOR CTYPE="FLOW" MAX_INPUT="0" MAX_OUTPUT="1"/>
|
||||
<CONNECTOR CTYPE="ITERATE" MAX_OUTPUT="1" MAX_INPUT="1"/>
|
||||
<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="PROPERTY"
|
||||
FIELD="PROPERTY_TYPE"
|
||||
NUM_ROW="1"
|
||||
REPOSITORY_VALUE="DATABASE:MYSQL"
|
||||
SHOW_IF="USE_EXISTING_CONNECTION == 'false'"
|
||||
/>
|
||||
|
||||
<PARAMETER
|
||||
NAME="DB_VERSION"
|
||||
FIELD="CLOSED_LIST"
|
||||
NUM_ROW="10"
|
||||
REPOSITORY_VALUE="DB_VERSION"
|
||||
SHOW_IF="USE_EXISTING_CONNECTION == 'false'">
|
||||
<ITEMS DEFAULT="MYSQL_8">
|
||||
<ITEM NAME="MYSQL_8" VALUE="MYSQL_8" />
|
||||
<ITEM NAME="MYSQL_5" VALUE="MYSQL_5" />
|
||||
<ITEM NAME="MARIADB" VALUE="MARIADB" />
|
||||
</ITEMS>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="USE_EXISTING_CONNECTION"
|
||||
FIELD="CHECK"
|
||||
NUM_ROW="15"
|
||||
>
|
||||
<DEFAULT>false</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="CONNECTION"
|
||||
FIELD="COMPONENT_LIST"
|
||||
REQUIRED="true" FILTER="tMysqlConnection"
|
||||
NUM_ROW="15"
|
||||
SHOW_IF="USE_EXISTING_CONNECTION == 'true'"
|
||||
DYNAMIC_SETTINGS="true"
|
||||
/>
|
||||
|
||||
<PARAMETER
|
||||
NAME="HOST"
|
||||
FIELD="TEXT"
|
||||
NUM_ROW="20"
|
||||
REPOSITORY_VALUE="SERVER_NAME"
|
||||
REQUIRED="true"
|
||||
SHOW_IF="USE_EXISTING_CONNECTION == 'false'"
|
||||
>
|
||||
<DEFAULT>""</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="PORT"
|
||||
FIELD="TEXT"
|
||||
NUM_ROW="20"
|
||||
REPOSITORY_VALUE="PORT"
|
||||
REQUIRED="true"
|
||||
SHOW_IF="USE_EXISTING_CONNECTION == 'false'"
|
||||
>
|
||||
<DEFAULT>"3306"</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="DBNAME"
|
||||
FIELD="TEXT"
|
||||
NUM_ROW="20"
|
||||
REPOSITORY_VALUE="SID"
|
||||
REQUIRED="true"
|
||||
SHOW_IF="USE_EXISTING_CONNECTION == 'false'"
|
||||
>
|
||||
<DEFAULT>""</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="TYPE"
|
||||
FIELD="TEXT"
|
||||
NUM_ROW="20"
|
||||
SHOW="false"
|
||||
REPOSITORY_VALUE="TYPE"
|
||||
>
|
||||
<DEFAULT>MySQL</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="USER"
|
||||
FIELD="TEXT"
|
||||
NUM_ROW="25"
|
||||
REPOSITORY_VALUE="USERNAME"
|
||||
REQUIRED="true"
|
||||
SHOW_IF="USE_EXISTING_CONNECTION == 'false'"
|
||||
>
|
||||
<DEFAULT>""</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="PASS"
|
||||
FIELD="PASSWORD"
|
||||
NUM_ROW="25"
|
||||
REPOSITORY_VALUE="PASSWORD"
|
||||
REQUIRED="true"
|
||||
SHOW_IF="USE_EXISTING_CONNECTION == 'false'"
|
||||
>
|
||||
<DEFAULT>""</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="SCHEMA"
|
||||
FIELD="SCHEMA_TYPE"
|
||||
NUM_ROW="30"
|
||||
>
|
||||
<DEFAULT>""</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="TABLE"
|
||||
FIELD="DBTABLE"
|
||||
NUM_ROW="35"
|
||||
>
|
||||
<DEFAULT>""</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="QUERYSTORE"
|
||||
FIELD="QUERYSTORE_TYPE"
|
||||
NUM_ROW="40"
|
||||
>
|
||||
<DEFAULT>""</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="GUESS_SCHEMA"
|
||||
FIELD="GUESS_SCHEMA"
|
||||
NUM_ROW="40"
|
||||
>
|
||||
<DEFAULT>""</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="QUERY"
|
||||
FIELD="MEMO_SQL"
|
||||
NUM_ROW="45"
|
||||
REQUIRED="true"
|
||||
>
|
||||
<DEFAULT>"select id, name from employee"</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="NOTE"
|
||||
FIELD="LABEL"
|
||||
NUM_ROW="63"
|
||||
GROUP="DATASOURCE"
|
||||
SHOW_IF="USE_EXISTING_CONNECTION=='false'"
|
||||
>
|
||||
<DEFAULT>This option only applies when deploying and running in the Talend Runtime</DEFAULT>
|
||||
</PARAMETER>
|
||||
<PARAMETER
|
||||
NAME="SPECIFY_DATASOURCE_ALIAS"
|
||||
FIELD="CHECK"
|
||||
NUM_ROW="64"
|
||||
REQUIRED="true"
|
||||
GROUP="DATASOURCE"
|
||||
SHOW_IF="USE_EXISTING_CONNECTION=='false'"
|
||||
>
|
||||
</PARAMETER>
|
||||
<PARAMETER
|
||||
NAME="DATASOURCE_ALIAS"
|
||||
FIELD="TEXT"
|
||||
NUM_ROW="65"
|
||||
REQUIRED="true"
|
||||
GROUP="DATASOURCE"
|
||||
SHOW_IF="(SPECIFY_DATASOURCE_ALIAS=='true' AND USE_EXISTING_CONNECTION=='false')"
|
||||
>
|
||||
<DEFAULT>""</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="MAPPING"
|
||||
FIELD="MAPPING_TYPE"
|
||||
NUM_ROW="120"
|
||||
SHOW="false"
|
||||
>
|
||||
<DEFAULT>mysql_id</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
</PARAMETERS>
|
||||
|
||||
<ADVANCED_PARAMETERS>
|
||||
<PARAMETER
|
||||
NAME="PROPERTIES"
|
||||
FIELD="TEXT"
|
||||
NUM_ROW="4"
|
||||
REPOSITORY_VALUE="PROPERTIES_STRING"
|
||||
SHOW_IF="USE_EXISTING_CONNECTION == 'false'">
|
||||
<DEFAULT>"noDatetimeStringSync=true"</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="ENCODING"
|
||||
FIELD="ENCODING_TYPE"
|
||||
NUM_ROW="10"
|
||||
REQUIRED="true"
|
||||
SHOW="false"
|
||||
>
|
||||
<DEFAULT>"ISO-8859-15"</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="ENABLE_STREAM"
|
||||
FIELD="CHECK"
|
||||
NUM_ROW="20"
|
||||
SHOW_IF="DB_VERSION != 'MARIADB'"
|
||||
>
|
||||
<DEFAULT>false</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="TRIM_ALL_COLUMN"
|
||||
FIELD="CHECK"
|
||||
NUM_ROW="30">
|
||||
<DEFAULT>false</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="TRIM_COLUMN"
|
||||
FIELD="TABLE"
|
||||
NUM_ROW="40"
|
||||
NB_LINES="5"
|
||||
SHOW_IF="TRIM_ALL_COLUMN == 'false'">
|
||||
<ITEMS BASED_ON_SCHEMA="true">
|
||||
<ITEM NAME="TRIM" FIELD="CHECK"></ITEM>
|
||||
</ITEMS>
|
||||
</PARAMETER>
|
||||
</ADVANCED_PARAMETERS>
|
||||
|
||||
<CODEGENERATION>
|
||||
<IMPORTS>
|
||||
<IMPORT NAME="Mysql_Driver8" MODULE="mysql-connector-java-8.0.18.jar" MVN="mvn:mysql/mysql-connector-java/8.0.18" REQUIRED_IF="(DB_VERSION == 'MYSQL_8') AND (USE_EXISTING_CONNECTION == 'false')" />
|
||||
<IMPORT NAME="Mysql_Driver5" MODULE="mysql-connector-java-5.1.49.jar" MVN="mvn:mysql/mysql-connector-java/5.1.49" REQUIRED_IF="(DB_VERSION == 'MYSQL_5') AND (USE_EXISTING_CONNECTION == 'false')" />
|
||||
<IMPORT NAME="Mysql_MARIADB" MODULE="mariadb-java-client-2.5.3.jar" MVN="mvn:org.mariadb.jdbc/mariadb-java-client/2.5.3" REQUIRED_IF="(DB_VERSION == 'MARIADB') AND (USE_EXISTING_CONNECTION == 'false')" />
|
||||
</IMPORTS>
|
||||
</CODEGENERATION>
|
||||
|
||||
<RETURNS>
|
||||
<RETURN NAME="NB_LINE" TYPE="id_Integer" AVAILABILITY="AFTER"/>
|
||||
<RETURN NAME="QUERY" TYPE="id_String" AVAILABILITY="FLOW"/>
|
||||
</RETURNS>
|
||||
</COMPONENT>
|
||||
@@ -0,0 +1,45 @@
|
||||
DBD-ODBC.INFO=Required for ODBC-like connection
|
||||
DBD-Oracle.INFO=Required for Oracle
|
||||
DBD-Pg.INFO=Required for PostgreSQL
|
||||
DBD-mysql.INFO=Required for MySQL
|
||||
DBNAME.NAME=Database
|
||||
DBTABLE.NAME=Table Name
|
||||
ENABLE_STREAM.NAME=Enable stream
|
||||
ENCODING.NAME=Encoding
|
||||
HELP=org.talend.help.tMysqlInput
|
||||
HOST.NAME=Host
|
||||
LONG_NAME=Reads a MySQL table and extracts fields based on an SQL query
|
||||
NB_LINE.NAME=Number of line
|
||||
NULL_CHAR.NAME=Null Char
|
||||
PASS.NAME=Password
|
||||
PORT.NAME=Port
|
||||
PROPERTIES.NAME=Additional JDBC Parameters
|
||||
QUERY.NAME=Query
|
||||
QUERYSTORE.NAME=Query Type
|
||||
SCHEMA.NAME=Schema
|
||||
SCHEMA_DB.NAME=Schema
|
||||
SQL_SYNTAX.NAME=Sql Syntax
|
||||
STRING_QUOTE.NAME=String Quote
|
||||
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc driver)
|
||||
TYPE.ITEM.MYSQL=MySQL
|
||||
TYPE.ITEM.ODBC=Generic ODBC
|
||||
TYPE.ITEM.ORACLE=Oracle
|
||||
TYPE.ITEM.PGSQL=PostgreSQL
|
||||
TYPE.NAME=Database Driver
|
||||
USER.NAME=Username
|
||||
USE_EXISTING_CONNECTION.NAME=Use an existing connection
|
||||
TRIM_ALL_COLUMN.NAME=Trim all the String/Char columns
|
||||
TRIM_COLUMN.NAME=Trim column
|
||||
TRIM_COLUMN.ITEM.TRIM=Trim
|
||||
TABLE.NAME=Table Name
|
||||
GUESS_SCHEMA.NAME=Guess Schema
|
||||
CONNECTION.NAME=Component List
|
||||
PROPERTY.NAME=Property Type
|
||||
MAPPING.NAME=Mapping
|
||||
DB_VERSION.NAME=DB Version
|
||||
DB_VERSION.ITEM.MYSQL_5=Mysql 5
|
||||
DB_VERSION.ITEM.MYSQL_8=Mysql 8
|
||||
DB_VERSION.ITEM.MARIADB=MariaDB
|
||||
SPECIFY_DATASOURCE_ALIAS.NAME=Specify a data source alias
|
||||
DATASOURCE.NAME=Data source
|
||||
DATASOURCE_ALIAS.NAME=Data source alias
|
||||
@@ -0,0 +1,35 @@
|
||||
DBD-ODBC.INFO=F\u00FCr ODBC-\u00E4hnliche Verbindung ben\u00F6tigt
|
||||
DBD-Oracle.INFO=F\u00FCr Oracle ben\u00F6tigt
|
||||
DBD-Pg.INFO=F\u00FCr PostgreSQL ben\u00F6tigt
|
||||
DBD-mysql.INFO=F\u00FCr MySQL ben\u00F6tigt
|
||||
DBTABLE.NAME=Tabellenname
|
||||
ENCODING.NAME=Encoding
|
||||
HOST.NAME=Host
|
||||
PASS.NAME=Passwort
|
||||
PORT.NAME=Port
|
||||
PROPERTIES.NAME=Zus\u00E4tzliche JDBC Parameter
|
||||
QUERY.NAME=Abfrage
|
||||
QUERYSTORE.NAME=Abfragetyp
|
||||
SCHEMA.NAME=Schema
|
||||
SCHEMA_DB.NAME=Schema
|
||||
SQL_SYNTAX.NAME=SQL Syntax
|
||||
STRING_QUOTE.NAME=Text Quotierung
|
||||
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc Treiber)
|
||||
TYPE.ITEM.MYSQL=MySQL
|
||||
TYPE.ITEM.ODBC=Generischer ODBC
|
||||
TYPE.ITEM.ORACLE=Oracle
|
||||
TYPE.ITEM.PGSQL=PostgreSQL
|
||||
TYPE.NAME=Datenbanktreiber
|
||||
USER.NAME=Benutzername
|
||||
USE_EXISTING_CONNECTION.NAME=eine bestehende Verbindung verwenden
|
||||
TRIM_ALL_COLUMN.NAME=Trimme alle Zeichenketten/Zeichen-Spalten
|
||||
TRIM_COLUMN.NAME=Trimmt Spalte
|
||||
TRIM_COLUMN.ITEM.TRIM=Trimmen
|
||||
TABLE.NAME=Tabellenname
|
||||
GUESS_SCHEMA.NAME=Errate Schema
|
||||
CONNECTION.NAME=Komponenten Liste
|
||||
PROPERTY.NAME=Eigenschaftstyp
|
||||
DB_VERSION.NAME=Datenbankversion
|
||||
DB_VERSION.ITEM.MYSQL_5=Mysql 5
|
||||
MAPPING.NAME=Mapping
|
||||
DATASOURCE.NAME=Datenquelle
|
||||
@@ -0,0 +1,15 @@
|
||||
ENCODING.NAME=Codificaci\u00F3n
|
||||
HOST.NAME=Host
|
||||
PASS.NAME=Contrase\u00F1a
|
||||
PORT.NAME=Puerto
|
||||
SCHEMA.NAME=Esquema
|
||||
SCHEMA_DB.NAME=Esquema
|
||||
SQL_SYNTAX.NAME=Sintaxis SQL
|
||||
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Controlador ODBC)
|
||||
TYPE.ITEM.MYSQL=MySQL
|
||||
TYPE.ITEM.ODBC=ODBC Gen\u00E9rico
|
||||
TYPE.ITEM.ORACLE=Oracle
|
||||
TYPE.ITEM.PGSQL=PostgreSQL
|
||||
TYPE.NAME=Controlador de base de datos
|
||||
USER.NAME=Nombre de usuario
|
||||
USE_EXISTING_CONNECTION.NAME=Usar una conexi\u00F3n existente
|
||||
@@ -0,0 +1,45 @@
|
||||
DBD-ODBC.INFO=Requis pour les connexions de type ODBC
|
||||
DBD-Oracle.INFO=Requis pour Oracle
|
||||
DBD-Pg.INFO=Requis pour PostgreSQL
|
||||
DBD-mysql.INFO=Requis pour MySQL
|
||||
DBNAME.NAME=Base de donn\u00E9es
|
||||
DBTABLE.NAME=Nom de la table
|
||||
ENABLE_STREAM.NAME=Activer le flux
|
||||
ENCODING.NAME=Encodage
|
||||
HELP=org.talend.help.tMysqlInput
|
||||
HOST.NAME=H\u00F4te
|
||||
LONG_NAME=Lit une table MySQL et extrait des champs \u00E0 partir d'une requ\u00EAte SQL
|
||||
NB_LINE.NAME=Nombre de lignes
|
||||
NULL_CHAR.NAME=Caract\u00E8re Null
|
||||
PASS.NAME=Mot de passe
|
||||
PORT.NAME=Port
|
||||
PROPERTIES.NAME=Param\u00E8tres suppl\u00E9mentaires JDBC
|
||||
QUERY.NAME=Requ\u00EAte
|
||||
QUERYSTORE.NAME=Type de requ\u00EAte
|
||||
SCHEMA.NAME=Sch\u00E9ma
|
||||
SCHEMA_DB.NAME=Sch\u00E9ma
|
||||
SQL_SYNTAX.NAME=Syntaxe SQL
|
||||
STRING_QUOTE.NAME=S\u00E9parateur de cha\u00EEne de caract\u00E8res
|
||||
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (pilote ODBC)
|
||||
TYPE.ITEM.MYSQL=MySQL
|
||||
TYPE.ITEM.ODBC=ODBC g\u00E9n\u00E9rique
|
||||
TYPE.ITEM.ORACLE=Oracle
|
||||
TYPE.ITEM.PGSQL=PostgreSQL
|
||||
TYPE.NAME=Pilote de la base de donn\u00E9es
|
||||
USER.NAME=Utilisateur
|
||||
USE_EXISTING_CONNECTION.NAME=Utiliser une connexion existante
|
||||
TRIM_ALL_COLUMN.NAME=Supprimer les espaces entourant toutes les colonnes String/Char
|
||||
TRIM_COLUMN.NAME=Colonnes \u00E0 rogner
|
||||
TRIM_COLUMN.ITEM.TRIM=Supprimer les espaces en d\u00E9but et en fin de champ
|
||||
TABLE.NAME=Nom de la table
|
||||
GUESS_SCHEMA.NAME=D\u00E9tecter le sch\u00E9ma
|
||||
CONNECTION.NAME=Liste des composants
|
||||
PROPERTY.NAME=Type de propri\u00E9t\u00E9
|
||||
MAPPING.NAME=Mapping
|
||||
DB_VERSION.NAME=Version de la base de donn\u00E9es
|
||||
DB_VERSION.ITEM.MYSQL_5=MySQL 5
|
||||
DB_VERSION.ITEM.MYSQL_8=MySQL 8
|
||||
DB_VERSION.ITEM.MARIADB=MariaDB
|
||||
SPECIFY_DATASOURCE_ALIAS.NAME=Sp\u00E9cifier un alias de source de donn\u00E9es
|
||||
DATASOURCE.NAME=Source de donn\u00E9es
|
||||
DATASOURCE_ALIAS.NAME=Alias de la source de donn\u00E9es
|
||||
@@ -0,0 +1,35 @@
|
||||
DBD-ODBC.INFO=Richiesto per connessione ODBC-like
|
||||
DBD-Oracle.INFO=Richiesto per Oracle
|
||||
DBD-Pg.INFO=Richiesto per PostgreSQL
|
||||
DBD-mysql.INFO=Richiesto per MySQL
|
||||
DBTABLE.NAME=Nome Tabella
|
||||
ENCODING.NAME=Codifica
|
||||
HOST.NAME=Host
|
||||
LONG_NAME=Leggi tabella MySQL ed estrai i campi tramite query SQL
|
||||
NULL_CHAR.NAME=Carattere Nullo
|
||||
PASS.NAME=Password
|
||||
PORT.NAME=Porta
|
||||
PROPERTIES.NAME=Parametri aggiuntivi JDBC
|
||||
QUERY.NAME=Query
|
||||
QUERYSTORE.NAME=Tipo query
|
||||
SCHEMA.NAME=Schema
|
||||
SCHEMA_DB.NAME=Schema
|
||||
SQL_SYNTAX.NAME=Sintassi SQL
|
||||
STRING_QUOTE.NAME=Quota stringa
|
||||
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc driver)
|
||||
TYPE.ITEM.MYSQL=MySQL
|
||||
TYPE.ITEM.ODBC=ODBC Generico
|
||||
TYPE.ITEM.ORACLE=Oracle
|
||||
TYPE.ITEM.PGSQL=PostgreSQL
|
||||
TYPE.NAME=Database Driver
|
||||
USER.NAME=Username
|
||||
USE_EXISTING_CONNECTION.NAME=Usa una connessione esistente
|
||||
TRIM_ALL_COLUMN.NAME=Regola colonne String/Char
|
||||
TRIM_COLUMN.NAME=Regola colonna
|
||||
TRIM_COLUMN.ITEM.TRIM=Regola
|
||||
TABLE.NAME=Nome Tabella
|
||||
GUESS_SCHEMA.NAME=Intuire schema
|
||||
CONNECTION.NAME=Lista componente
|
||||
PROPERTY.NAME=Tipo propriet\u00E0
|
||||
DB_VERSION.NAME=Versione Db
|
||||
MAPPING.NAME=Mapping
|
||||
@@ -0,0 +1,45 @@
|
||||
DBD-ODBC.INFO=ODBC\u306E\u3088\u3046\u306A\u63A5\u7D9A\u3067\u5FC5\u9808
|
||||
DBD-Oracle.INFO=Oracle\u3067\u5FC5\u9808
|
||||
DBD-Pg.INFO=PostgreSQL\u3067\u5FC5\u9808
|
||||
DBD-mysql.INFO=MySQL\u3067\u5FC5\u9808
|
||||
DBNAME.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9
|
||||
DBTABLE.NAME=\u30C6\u30FC\u30D6\u30EB\u540D
|
||||
ENABLE_STREAM.NAME=\u30B9\u30C8\u30EA\u30FC\u30E0\u3092\u6709\u52B9\u5316
|
||||
ENCODING.NAME=\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0
|
||||
HELP=org.talend.help.tMysqlInput
|
||||
HOST.NAME=\u30DB\u30B9\u30C8
|
||||
LONG_NAME=MySQL\u30C6\u30FC\u30D6\u30EB\u3092\u8AAD\u307F\u53D6\u308A\u3001SQL\u30AF\u30A8\u30EA\u30FC\u306B\u57FA\u3065\u3044\u3066\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u62BD\u51FA\u3057\u307E\u3059\u3002
|
||||
NB_LINE.NAME=\u884C\u6570
|
||||
NULL_CHAR.NAME=Null\u6587\u5B57
|
||||
PASS.NAME=\u30D1\u30B9\u30EF\u30FC\u30C9
|
||||
PORT.NAME=\u30DD\u30FC\u30C8
|
||||
PROPERTIES.NAME=\u8FFD\u52A0\u306EJDBC\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC
|
||||
QUERY.NAME=\u30AF\u30A8\u30EA\u30FC
|
||||
QUERYSTORE.NAME=\u30AF\u30A8\u30EA\u30FC\u30BF\u30A4\u30D7
|
||||
SCHEMA.NAME=\u30B9\u30AD\u30FC\u30DE
|
||||
SCHEMA_DB.NAME=\u30B9\u30AD\u30FC\u30DE
|
||||
SQL_SYNTAX.NAME=Sql\u69CB\u6587
|
||||
STRING_QUOTE.NAME=\u5F15\u7528\u7B26
|
||||
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc\u30C9\u30E9\u30A4\u30D0\u30FC)
|
||||
TYPE.ITEM.MYSQL=MySQL
|
||||
TYPE.ITEM.ODBC=\u6C4E\u7528ODBC
|
||||
TYPE.ITEM.ORACLE=Oracle
|
||||
TYPE.ITEM.PGSQL=PostgreSQL
|
||||
TYPE.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30C9\u30E9\u30A4\u30D0\u30FC
|
||||
USER.NAME=\u30E6\u30FC\u30B6\u30FC\u540D
|
||||
USE_EXISTING_CONNECTION.NAME=\u65E2\u5B58\u306E\u63A5\u7D9A\u3092\u4F7F\u7528
|
||||
TRIM_ALL_COLUMN.NAME=\u3059\u3079\u3066\u306E\u6587\u5B57\u5217/\u6587\u5B57\u306E\u30AB\u30E9\u30E0\u3092\u30C8\u30EA\u30E0
|
||||
TRIM_COLUMN.NAME=\u30AB\u30E9\u30E0\u306E\u30C8\u30EA\u30E0
|
||||
TRIM_COLUMN.ITEM.TRIM=\u30C8\u30EA\u30E0
|
||||
TABLE.NAME=\u30C6\u30FC\u30D6\u30EB\u540D
|
||||
GUESS_SCHEMA.NAME=\u30B9\u30AD\u30FC\u30DE\u3092\u63A8\u6E2C
|
||||
CONNECTION.NAME=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30EA\u30B9\u30C8
|
||||
PROPERTY.NAME=\u30D7\u30ED\u30D1\u30C6\u30A3\u30BF\u30A4\u30D7
|
||||
MAPPING.NAME=\u30DE\u30C3\u30D4\u30F3\u30B0
|
||||
DB_VERSION.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D0\u30FC\u30B8\u30E7\u30F3
|
||||
DB_VERSION.ITEM.MYSQL_5=Mysql 5
|
||||
DB_VERSION.ITEM.MYSQL_8=Mysql8
|
||||
DB_VERSION.ITEM.MARIADB=MariaDB
|
||||
SPECIFY_DATASOURCE_ALIAS.NAME=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u30A8\u30A4\u30EA\u30A2\u30B9\u3092\u6307\u5B9A
|
||||
DATASOURCE.NAME=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9
|
||||
DATASOURCE_ALIAS.NAME=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u30A8\u30A4\u30EA\u30A2\u30B9
|
||||
@@ -0,0 +1,38 @@
|
||||
DBD-ODBC.INFO=ODBC-like connection\u306E\u5834\u5408\u306F\u5FC5\u9808
|
||||
DBD-Oracle.INFO=Oracle\u306E\u5834\u5408\u306F\u5FC5\u9808
|
||||
DBD-Pg.INFO=PostgreSQL\u306E\u5834\u5408\u306F\u5FC5\u9808
|
||||
DBD-mysql.INFO=MySQL\u306E\u5834\u5408\u306F\u5FC5\u9808
|
||||
DBNAME.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9
|
||||
DBTABLE.NAME=\u30C6\u30FC\u30D6\u30EB\u540D
|
||||
ENABLE_STREAM.NAME=\u30B9\u30C8\u30EA\u30FC\u30E0\u3092\u6709\u52B9\u306B\u3059\u308B
|
||||
ENCODING.NAME=\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0
|
||||
HELP=org.talend.help.tMysqlInput
|
||||
HOST.NAME=\u30DB\u30B9\u30C8
|
||||
LONG_NAME=MySQL\u30c6\u30fc\u30d6\u30eb\u3092\u8aad\u8fbc\u307f\u3001SQL\u30af\u30a8\u30ea\u306b\u57fa\u3065\u304d\u3001\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u62bd\u51fa
|
||||
NB_LINE.NAME=\u884c\u6570
|
||||
NULL_CHAR.NAME=Null\u30AD\u30E3\u30E9\u30AF\u30BF
|
||||
PASS.NAME=\u30D1\u30B9\u30EF\u30FC\u30C9
|
||||
PORT.NAME=\u30DD\u30FC\u30C8
|
||||
PROPERTIES.NAME=\u8ffd\u52a0\u306eJDBC\u30d1\u30e9\u30e1\u30fc\u30bf
|
||||
QUERY.NAME=\u30AF\u30A8\u30EA
|
||||
QUERYSTORE.NAME=\u30AF\u30A8\u30EA\u30BF\u30A4\u30D7
|
||||
SCHEMA.NAME=\u30B9\u30AD\u30FC\u30DE
|
||||
SCHEMA_DB.NAME=\u30B9\u30AD\u30FC\u30DE
|
||||
SQL_SYNTAX.NAME=SQL\u69CB\u6587
|
||||
STRING_QUOTE.NAME=\u6587\u5B57\u5217\u306E\u5F15\u7528
|
||||
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc \u30C9\u30E9\u30A4\u30D0)
|
||||
TYPE.ITEM.MYSQL=MySQL
|
||||
TYPE.ITEM.ODBC=\u6c4e\u7528ODBC
|
||||
TYPE.ITEM.ORACLE=Oracle
|
||||
TYPE.ITEM.PGSQL=PostgreSQL
|
||||
TYPE.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30C9\u30E9\u30A4\u30D0
|
||||
USER.NAME=\u30e6\u30fc\u30b6\u540d
|
||||
USE_EXISTING_CONNECTION.NAME=\u65e2\u5b58\u63a5\u7d9a\u3092\u4f7f\u7528
|
||||
TRIM_ALL_COLUMN.NAME=\u5168\u6587\u5b57\u5217\u30ab\u30e9\u30e0\u3092\u30c8\u30ea\u30df\u30f3\u30b0
|
||||
TRIM_COLUMN.NAME=\u30ab\u30e9\u30e0\u3092\u30c8\u30ea\u30df\u30f3\u30b0
|
||||
TRIM_COLUMN.ITEM.TRIM=\u30c8\u30ea\u30df\u30f3\u30b0
|
||||
TABLE.NAME=\u30C6\u30FC\u30D6\u30EB\u540D
|
||||
GUESS_SCHEMA.NAME=\u30B9\u30AD\u30FC\u30DE\u3092\u63A8\u5B9A\u3059\u308B
|
||||
CONNECTION.NAME=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30EA\u30B9\u30C8
|
||||
PROPERTY.NAME=\u30D7\u30ED\u30D1\u30C6\u30A3\u30BF\u30A4\u30D7
|
||||
DB_VERSION.NAME=DB\u30D0\u30FC\u30B8\u30E7\u30F3
|
||||
@@ -0,0 +1,31 @@
|
||||
DBD-ODBC.INFO=\u041D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C \u0434\u043B\u044F \u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0439 ODBC \u0442\u0438\u043F\u0430
|
||||
DBD-Oracle.INFO=\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F Oracle
|
||||
DBD-Pg.INFO=\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F PostgreSQL
|
||||
DBD-mysql.INFO=\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F MySQL
|
||||
DBTABLE.NAME=\u0418\u043C\u044F \u0442\u0430\u0431\u043B\u0438\u0446\u044B
|
||||
ENABLE_STREAM.NAME=\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0441\u0442\u0440\u0438\u043C
|
||||
ENCODING.NAME=\u041A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430
|
||||
HOST.NAME=\u0425\u043E\u0441\u0442
|
||||
NULL_CHAR.NAME=\u041F\u0443\u0441\u0442\u043E\u0439 \u0441\u0438\u043C\u0432\u043E\u043B
|
||||
PASS.NAME=\u041F\u0430\u0440\u043E\u043B\u044C
|
||||
PORT.NAME=\u041F\u043E\u0440\u0442
|
||||
QUERY.NAME=\u0417\u0430\u043F\u0440\u043E\u0441
|
||||
QUERYSTORE.NAME=\u0422\u0438\u043F \u0437\u0430\u043F\u0440\u043E\u0441\u0430
|
||||
SCHEMA.NAME=\u0421\u0445\u0435\u043C\u0430
|
||||
SCHEMA_DB.NAME=\u0421\u0445\u0435\u043C\u0430
|
||||
SQL_SYNTAX.NAME=SQL \u0441\u0438\u043D\u0442\u0430\u043A\u0441\u0438\u0441
|
||||
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc driver)
|
||||
TYPE.ITEM.MYSQL=MySQL
|
||||
TYPE.ITEM.ODBC=Generic ODBC
|
||||
TYPE.ITEM.ORACLE=Oracle
|
||||
TYPE.ITEM.PGSQL=PostgreSQL
|
||||
TYPE.NAME=\u0414\u0440\u0430\u0439\u0432\u0435\u0440 \u0431\u0430\u0437\u044B \u0434\u0430\u043D\u043D\u044B\u0445
|
||||
USER.NAME=\u0418\u043C\u044F \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F
|
||||
USE_EXISTING_CONNECTION.NAME=\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0435\u0435 \u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435
|
||||
TRIM_ALL_COLUMN.NAME="\u041E\u0431\u0440\u0435\u0437\u0430\u0442\u044C" \u0432\u0441\u0435 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0435 \u043F\u043E\u043B\u044F
|
||||
TRIM_COLUMN.NAME="\u041E\u0431\u0440\u0435\u0437\u0430\u0442\u044C" \u0441\u0442\u043E\u043B\u0431\u0435\u0446
|
||||
TABLE.NAME=\u0418\u043C\u044F \u0442\u0430\u0431\u043B\u0438\u0446\u044B
|
||||
GUESS_SCHEMA.NAME=\u041F\u0440\u0435\u0434\u043F\u043E\u043B\u043E\u0436\u0438\u0442\u044C \u0441\u0445\u0435\u043C\u0443
|
||||
CONNECTION.NAME=\u041B\u0438\u0441\u0442 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442
|
||||
DB_VERSION.NAME=\u0412\u0435\u0440\u0441\u0438\u044F \u0411\u0414
|
||||
DB_VERSION.ITEM.MYSQL_5=Mysql 5
|
||||
@@ -0,0 +1,10 @@
|
||||
DBTABLE.NAME=N\u00E1zov Tabu\u013Eky
|
||||
ENCODING.NAME=K\u00F3dovanie
|
||||
HOST.NAME=Host
|
||||
PASS.NAME=Heslo
|
||||
PORT.NAME=Port
|
||||
SCHEMA.NAME=Sch\u00E9ma
|
||||
SCHEMA_DB.NAME=Sch\u00E9ma
|
||||
USER.NAME=U\u017E\u00EDvate\u013Esk\u00E9 Meno
|
||||
TABLE.NAME=N\u00E1zov Tabu\u013Eky
|
||||
DB_VERSION.ITEM.MYSQL_5=Mysql 5
|
||||
@@ -0,0 +1,11 @@
|
||||
DBTABLE.NAME=N<EFBFBD>zov Tabu\u013Eky
|
||||
ENCODING.NAME=K<EFBFBD>dovanie
|
||||
HOST.NAME=Host
|
||||
PASS.NAME=Heslo
|
||||
PORT.NAME=Port
|
||||
SCHEMA.NAME=Sch<EFBFBD>ma
|
||||
SCHEMA_DB.NAME=Sch<EFBFBD>ma
|
||||
USER.NAME=U\u017E<37>vate\u013Esk<73> Meno
|
||||
TABLE.NAME=N<EFBFBD>zov Tabu\u013Eky
|
||||
DB_VERSION.ITEM.MYSQL_4=Mysql 4
|
||||
DB_VERSION.ITEM.MYSQL_5=Mysql 5
|
||||
@@ -0,0 +1,45 @@
|
||||
DBD-ODBC.INFO=\u4E3A\u7C7B\u4F3C ODBC \u8FDE\u63A5\u6240\u5FC5\u9700
|
||||
DBD-Oracle.INFO=\u4E3A Oracle \u6240\u5FC5\u9700
|
||||
DBD-Pg.INFO=\u4E3A PostgreSQL \u6240\u5FC5\u9700
|
||||
DBD-mysql.INFO=\u4E3A MySQL \u6240\u5FC5\u9700
|
||||
DBNAME.NAME=\u6570\u636E\u5E93
|
||||
DBTABLE.NAME=\u8868\u540D\u79F0
|
||||
ENABLE_STREAM.NAME=\u542F\u7528\u6D41
|
||||
ENCODING.NAME=\u7F16\u7801
|
||||
HELP=org.talend.help.tMysqlInput
|
||||
HOST.NAME=\u4E3B\u673A
|
||||
LONG_NAME=\u8BFB\u53D6 MySQL \u8868\u5E76\u57FA\u4E8E SQL \u67E5\u8BE2\u63D0\u53D6\u5B57\u6BB5
|
||||
NB_LINE.NAME=\u884C\u6570
|
||||
NULL_CHAR.NAME=Null \u5B57\u7B26
|
||||
PASS.NAME=\u5BC6\u7801
|
||||
PORT.NAME=\u7AEF\u53E3
|
||||
PROPERTIES.NAME=\u9644\u52A0 JDBC \u53C2\u6570
|
||||
QUERY.NAME=\u67E5\u8BE2
|
||||
QUERYSTORE.NAME=\u67E5\u8BE2\u7C7B\u578B
|
||||
SCHEMA.NAME=Schema
|
||||
SCHEMA_DB.NAME=Schema
|
||||
SQL_SYNTAX.NAME=Sql \u8BED\u6CD5
|
||||
STRING_QUOTE.NAME=\u5B57\u7B26\u4E32\u5F15\u7528
|
||||
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc \u9A71\u52A8)
|
||||
TYPE.ITEM.MYSQL=MySQL
|
||||
TYPE.ITEM.ODBC=\u901A\u7528 ODBC
|
||||
TYPE.ITEM.ORACLE=\u5B9E\u6570\u7EDD\u5BF9\u503C
|
||||
TYPE.ITEM.PGSQL=PostgreSQL
|
||||
TYPE.NAME=\u6570\u636E\u5E93\u9A71\u52A8
|
||||
USER.NAME=\u7528\u6237\u540D
|
||||
USE_EXISTING_CONNECTION.NAME=\u4F7F\u7528\u4E00\u4E2A\u73B0\u6709\u8FDE\u63A5
|
||||
TRIM_ALL_COLUMN.NAME=\u526A\u88C1\u6240\u6709\u7684\u5B57\u7B26\u4E32/\u5B57\u7B26\u5217
|
||||
TRIM_COLUMN.NAME=\u526A\u88C1\u5217
|
||||
TRIM_COLUMN.ITEM.TRIM=\u526A\u88C1
|
||||
TABLE.NAME=\u8868\u540D\u79F0
|
||||
GUESS_SCHEMA.NAME=\u63A8\u6D4B Schema
|
||||
CONNECTION.NAME=\u7EC4\u4EF6\u5217\u8868
|
||||
PROPERTY.NAME=\u5C5E\u6027\u7C7B\u578B
|
||||
MAPPING.NAME=\u6620\u5C04
|
||||
DB_VERSION.NAME=\u6570\u636E\u5E93\u7248\u672C
|
||||
DB_VERSION.ITEM.MYSQL_5=Mysql 5
|
||||
DB_VERSION.ITEM.MYSQL_8=Mysql 8
|
||||
DB_VERSION.ITEM.MARIADB=MariaDB
|
||||
SPECIFY_DATASOURCE_ALIAS.NAME=\u6307\u5B9A\u6570\u636E\u6E90\u522B\u540D
|
||||
DATASOURCE.NAME=\u6570\u636E\u6E90
|
||||
DATASOURCE_ALIAS.NAME=\u6570\u636E\u6E90\u522B\u540D
|
||||
@@ -0,0 +1,604 @@
|
||||
<%@ jet
|
||||
imports="
|
||||
org.talend.designer.codegen.config.CodeGeneratorArgument
|
||||
org.talend.core.model.process.INode
|
||||
org.talend.core.model.process.ElementParameterParser
|
||||
org.talend.core.model.metadata.IMetadataTable
|
||||
org.talend.core.model.metadata.types.JavaTypesManager
|
||||
org.talend.core.model.metadata.MappingTypeRetriever
|
||||
org.talend.core.model.metadata.MetadataTalendType
|
||||
org.talend.core.model.process.IProcess
|
||||
org.talend.core.model.process.IConnection
|
||||
java.util.List
|
||||
java.util.ArrayList
|
||||
java.util.Map
|
||||
java.util.HashMap
|
||||
"
|
||||
skeleton="../templates/db_output_bulk.skeleton"
|
||||
%>
|
||||
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/Log4j/DBLogUtil.javajet"%>
|
||||
<%
|
||||
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
|
||||
INode node = (INode)codeGenArgument.getArgument();
|
||||
String cid = node.getUniqueName();
|
||||
|
||||
boolean isAmazonAurora = node.isVirtualGenerateNode() && (cid.matches("^.*?tAmazonAuroraOutput_\\d+_out$") || cid.matches("^.*?tDBOutput_\\d+_out$"));
|
||||
|
||||
if(isAmazonAurora){
|
||||
cid = cid.substring(0,cid.length()-4);// 4 ==> "_out".length();
|
||||
}
|
||||
|
||||
dbLog = new DBLogUtil(node);
|
||||
|
||||
IProcess process = node.getProcess();
|
||||
|
||||
String dbtypeDefinition = ElementParameterParser.getValue(node, "__TYPE__");
|
||||
|
||||
List<Map<String, String>> addCols =
|
||||
(List<Map<String,String>>)ElementParameterParser.getObjectValue(
|
||||
node,"__ADD_COLS__" );
|
||||
|
||||
boolean useFieldOptions = ("true").equals(ElementParameterParser.getValue(node, "__USE_FIELD_OPTIONS__"));
|
||||
|
||||
List<Map<String, String>> fieldOptions = (List<Map<String,String>>)ElementParameterParser.getObjectValue(node, "__FIELD_OPTIONS__");
|
||||
|
||||
String dbname= ElementParameterParser.getValue(node, "__DBNAME__");
|
||||
|
||||
String dbproperties = ElementParameterParser.getValue(node, "__PROPERTIES__");
|
||||
|
||||
String dbhost = ElementParameterParser.getValue(node, "__HOST__");
|
||||
|
||||
String dbport = ElementParameterParser.getValue(node, "__PORT__");
|
||||
|
||||
String dbuser= ElementParameterParser.getValue(node, "__USER__");
|
||||
|
||||
String table = ElementParameterParser.getValue(node,"__TABLE__");
|
||||
|
||||
String dbmsId = ElementParameterParser.getValue(node,"__MAPPING__");
|
||||
|
||||
String dataAction = ElementParameterParser.getValue(node,"__DATA_ACTION__");
|
||||
|
||||
String tableAction = ElementParameterParser.getValue(node,"__TABLE_ACTION__");
|
||||
|
||||
String commitEvery = ElementParameterParser.getValue(node, "__COMMIT_EVERY__");
|
||||
boolean extendedInsert = false;
|
||||
|
||||
String dbVersion = "" ;
|
||||
|
||||
if ("INSERT".equalsIgnoreCase(dataAction)) {
|
||||
extendedInsert = ("true").equals(ElementParameterParser.getValue(node, "__EXTENDINSERT__"));
|
||||
|
||||
//to fixed: bug8422
|
||||
if((cid.equals("talendLogs_DB") || cid.equals("talendStats_DB") || cid.equals("talendMeter_DB"))){
|
||||
extendedInsert = false;
|
||||
}
|
||||
|
||||
}else {
|
||||
extendedInsert = false;
|
||||
}
|
||||
|
||||
String numPerInsert = ElementParameterParser.getValue(node, "__NB_ROWS_PER_INSERT__");
|
||||
|
||||
boolean isEnableDebug = ("true").equals(ElementParameterParser.getValue(node,"__ENABLE_DEBUG_MODE__"));
|
||||
|
||||
boolean useBatchSize = ("true").equals(ElementParameterParser.getValue(node,"__USE_BATCH_SIZE__"));
|
||||
String batchSize=ElementParameterParser.getValue(node,"__BATCH_SIZE__");
|
||||
%>
|
||||
|
||||
<%
|
||||
getManager(dbmsId, cid, node);
|
||||
|
||||
boolean isDynamic = false;
|
||||
List<IMetadataTable> metadatas = node.getMetadataList();
|
||||
if ((metadatas!=null)&&(metadatas.size()>0)) {
|
||||
IMetadataTable metadata = metadatas.get(0);
|
||||
isDynamic = metadata.isDynamicSchema();
|
||||
}
|
||||
|
||||
List<IMetadataColumn> columnList = getColumnList(node);
|
||||
List<Column> stmtStructure = null;
|
||||
Manager manager = null;
|
||||
if(columnList != null && columnList.size() > 0) {
|
||||
stmtStructure = getManager(dbmsId, cid).createColumnList(columnList, useFieldOptions, fieldOptions, addCols);
|
||||
isDynamic = isDynamic && !getManager(dbmsId, cid).isDynamicColumnReplaced();
|
||||
}
|
||||
%>
|
||||
|
||||
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/DB/Output/CheckKeysForUpdateAndDelete.javajet"%>
|
||||
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/DB/Output/CheckKeysForUpdateOnDuplicateKey.javajet"%>
|
||||
|
||||
int nb_line_<%=cid%> = 0;
|
||||
int nb_line_update_<%=cid%> = 0;
|
||||
int nb_line_inserted_<%=cid%> = 0;
|
||||
int nb_line_deleted_<%=cid%> = 0;
|
||||
int nb_line_rejected_<%=cid%> = 0;
|
||||
|
||||
int deletedCount_<%=cid%>=0;
|
||||
int updatedCount_<%=cid%>=0;
|
||||
int insertedCount_<%=cid%>=0;
|
||||
int rowsToCommitCount_<%=cid%>=0;
|
||||
int rejectedCount_<%=cid%>=0;
|
||||
|
||||
String tableName_<%=cid%> = <%=table%>;
|
||||
boolean whetherReject_<%=cid%> = false;
|
||||
|
||||
java.util.Calendar calendar_<%=cid %> = java.util.Calendar.getInstance();
|
||||
calendar_<%=cid %>.set(1, 0, 1, 0, 0, 0);
|
||||
long year1_<%=cid %> = calendar_<%=cid %>.getTime().getTime();
|
||||
calendar_<%=cid %>.set(10000, 0, 1, 0, 0, 0);
|
||||
long year10000_<%=cid %> = calendar_<%=cid %>.getTime().getTime();
|
||||
long date_<%=cid %>;
|
||||
|
||||
java.sql.Connection conn_<%=cid%> = null;
|
||||
<%
|
||||
|
||||
boolean useExistingConnection = "true".equalsIgnoreCase(ElementParameterParser.getValue(node,"__USE_EXISTING_CONNECTION__"));
|
||||
|
||||
if(useExistingConnection) {
|
||||
String connection = ElementParameterParser.getValue(node,"__CONNECTION__");
|
||||
String conn = "conn_" + connection;
|
||||
if(isAmazonAurora){
|
||||
conn += "_in";
|
||||
dbVersion = "MYSQL_5";
|
||||
}else{
|
||||
List< ? extends INode> nodes = process.getNodesOfType("tMysqlConnection");
|
||||
for (INode ne:nodes) {
|
||||
if (connection.equals(ne.getUniqueName())) {
|
||||
dbVersion = ElementParameterParser.getValue(ne, "__DB_VERSION__");
|
||||
}
|
||||
}
|
||||
}
|
||||
%>
|
||||
conn_<%=cid%> = (java.sql.Connection)globalMap.get("<%=conn%>");
|
||||
<%dbLog.conn().useExistConn("conn_"+cid+".getMetaData().getURL()", "conn_"+cid+".getMetaData().getUserName()");%>
|
||||
<%
|
||||
} else {
|
||||
%>
|
||||
<%
|
||||
boolean specify_alias = "true".equals(ElementParameterParser.getValue(node, "__SPECIFY_DATASOURCE_ALIAS__"));
|
||||
if(specify_alias){
|
||||
String alias = ElementParameterParser.getValue(node, "__DATASOURCE_ALIAS__");
|
||||
%>
|
||||
java.util.Map<String, routines.system.TalendDataSource> dataSources_<%=cid%> = (java.util.Map<String, routines.system.TalendDataSource>) globalMap.get(KEY_DB_DATASOURCES);
|
||||
if (null != dataSources_<%=cid%>) {
|
||||
String dsAlias_<%=cid%> = <%=(null != alias && !("".equals(alias)))?alias:"\"\""%>;
|
||||
if (dataSources_<%=cid%>.get(dsAlias_<%=cid%>) == null) {
|
||||
throw new RuntimeException("No DataSource with alias: " + dsAlias_<%=cid%> + " available!");
|
||||
}
|
||||
conn_<%=cid%> = dataSources_<%=cid%>.get(dsAlias_<%=cid%>).getConnection();
|
||||
} else {
|
||||
<%
|
||||
}
|
||||
dbVersion = ElementParameterParser.getValue(node, "__DB_VERSION__");
|
||||
String drverClass = "com.mysql.jdbc.Driver";
|
||||
String jdbcURL = "jdbc:mysql";
|
||||
if("MARIADB".equals(dbVersion)){
|
||||
drverClass = "org.mariadb.jdbc.Driver";
|
||||
jdbcURL = "jdbc:mariadb";
|
||||
} else if ("MYSQL_8".equals(dbVersion)) {
|
||||
drverClass = "com.mysql.cj.jdbc.Driver";
|
||||
}
|
||||
|
||||
final boolean supportBulkComponent = true;
|
||||
%>
|
||||
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/Mysql/jdbcurl4connection_output.javajet"%>
|
||||
|
||||
String driverClass_<%=cid%> = "<%=drverClass%>";
|
||||
<%dbLog.conn().logJDBCDriver(dbLog.var("driverClass"));%>
|
||||
String dbUser_<%=cid %> = <%=dbuser%>;
|
||||
<%
|
||||
String passwordFieldName = "__PASS__";
|
||||
%>
|
||||
|
||||
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/password.javajet"%>
|
||||
|
||||
String dbPwd_<%=cid %> = decryptedPassword_<%=cid%>;
|
||||
java.lang.Class.forName(driverClass_<%=cid%>);
|
||||
<%dbLog.conn().connTry(dbLog.var("url"), dbLog.var("dbUser"));%>
|
||||
conn_<%=cid%> = java.sql.DriverManager.getConnection(url_<%=cid %>, dbUser_<%=cid%>, dbPwd_<%=cid%>);
|
||||
<%dbLog.conn().connDone(dbLog.var("url"));%>
|
||||
<%
|
||||
if(specify_alias){
|
||||
%>
|
||||
}
|
||||
<%
|
||||
}
|
||||
%>
|
||||
resourceMap.put("conn_<%=cid%>", conn_<%=cid%>);
|
||||
<%
|
||||
}
|
||||
if(!useExistingConnection) {
|
||||
if(!("").equals(commitEvery)&&!("0").equals(commitEvery)){
|
||||
%>
|
||||
conn_<%=cid%>.setAutoCommit(false);
|
||||
int commitEvery_<%=cid%> = <%=commitEvery%>;
|
||||
int commitCounter_<%=cid%> = 0;
|
||||
<%
|
||||
}
|
||||
}
|
||||
dbLog.commit().logAutoCommit("conn_"+cid+".getAutoCommit()");
|
||||
%>
|
||||
<%
|
||||
if (useBatchSize && ("MYSQL_8".equals(dbVersion) || "MYSQL_5".equals(dbVersion) || "MARIADB".equals(dbVersion)) && (("UPDATE").equals(dataAction)||("DELETE").equals(dataAction))) {
|
||||
if(!("").equals(batchSize)&&!("0").equals(batchSize)) {
|
||||
%>
|
||||
int batchSize_<%=cid%> = <%=batchSize%>;
|
||||
int batchSizeCounter_<%=cid%>=0;
|
||||
<%
|
||||
}
|
||||
}
|
||||
%>
|
||||
|
||||
<%
|
||||
if(!isDynamic) {
|
||||
%>
|
||||
int count_<%=cid%>=0;
|
||||
<%
|
||||
///// hint options/////
|
||||
boolean useHintOptions = ("true").equals(ElementParameterParser.getValue(node,"__USE_HINT_OPTIONS__"));
|
||||
Map<String, String> hintsValues = null;
|
||||
if (useHintOptions) {
|
||||
List<Map<String, String>> hintOptions = (List<Map<String,String>>)ElementParameterParser.getObjectValue(node, "__HINT_OPTIONS__");
|
||||
hintsValues = new HashMap<String, String>();
|
||||
String hintValue = null;
|
||||
boolean firstInsert = true;
|
||||
boolean firstUpdate = true;
|
||||
boolean firstDelete = true;
|
||||
boolean firstTableName = true;
|
||||
for(java.util.Map<String, String> option : hintOptions) {
|
||||
//get
|
||||
hintValue = option.get("HINT");
|
||||
//set
|
||||
if ("INSERT".equalsIgnoreCase(option.get("SQL_STMT"))){
|
||||
if(firstInsert){
|
||||
hintsValues.put("INSERT", hintValue) ;
|
||||
firstInsert = false;
|
||||
}else {
|
||||
hintsValues.put("INSERT", hintsValues.get("INSERT") + "+" + hintValue) ;
|
||||
}
|
||||
}else if ("UPDATE".equalsIgnoreCase(option.get("SQL_STMT"))) {
|
||||
if(firstUpdate){
|
||||
hintsValues.put("UPDATE", hintValue) ;
|
||||
firstUpdate = false;
|
||||
}else {
|
||||
hintsValues.put("UPDATE", hintsValues.get("UPDATE") + "+" + hintValue) ;
|
||||
}
|
||||
}else if ("DELETE".equalsIgnoreCase(option.get("SQL_STMT"))) {
|
||||
if (firstDelete){
|
||||
hintsValues.put("DELETE", hintValue) ;
|
||||
firstDelete =false;
|
||||
}else {
|
||||
hintsValues.put("DELETE", hintsValues.get("DELETE") + "+" + hintValue) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//// hint options end ////
|
||||
|
||||
if(columnList != null && columnList.size() > 0) {
|
||||
%>
|
||||
<%@ include file="../templates/_tableActionForOutput.javajet"%>
|
||||
<%
|
||||
Map<String, StringBuilder> actionSQLMap = getManager(dbmsId, cid).createProcessSQL(stmtStructure);
|
||||
StringBuilder insertColName = actionSQLMap.get(INSERT_COLUMN_NAME);
|
||||
StringBuilder insertValueStmt = actionSQLMap.get(INSERT_VALUE_STMT);
|
||||
StringBuilder updateSetStmt = actionSQLMap.get(UPDATE_SET_STMT);
|
||||
StringBuilder updateWhereStmt = actionSQLMap.get(UPDATE_WHERE_STMT);
|
||||
StringBuilder deleteWhereStmt = actionSQLMap.get(DELETE_WHERE_STMT);
|
||||
|
||||
boolean supportDuplicateUpdate = "true".equalsIgnoreCase(ElementParameterParser.getValue(node,"__ON_DUPLICATE_KEY_UPDATE__"));
|
||||
|
||||
if(("INSERT").equals(dataAction)) {
|
||||
|
||||
if (supportDuplicateUpdate) {
|
||||
List<Map<String, String>> duplicateKeys = (List<Map<String,String>>)ElementParameterParser.getObjectValue( node,"__DUPLICATED_KEYS__" );
|
||||
|
||||
if (duplicateKeys.size() > 0) {
|
||||
%>
|
||||
StringBuffer duplidateClause_<%=cid%> = new StringBuffer(" ON DUPLICATE KEY UPDATE ");
|
||||
<%
|
||||
for (int i=0; i< duplicateKeys.size() ; i++) {
|
||||
if (i >0) {
|
||||
%>
|
||||
duplidateClause_<%=cid%>.append(",");
|
||||
<%
|
||||
}
|
||||
%>
|
||||
duplidateClause_<%=cid%>.append ("`" + <%=duplicateKeys.get(i).get("DUPLICATED_KEY")%> + "`");
|
||||
duplidateClause_<%=cid%>.append ("=");
|
||||
duplidateClause_<%=cid%>.append (<%=duplicateKeys.get(i).get("DUPLICATED_VALUE")%>);
|
||||
<%
|
||||
}
|
||||
}
|
||||
}
|
||||
%>
|
||||
|
||||
<%
|
||||
if(!extendedInsert) {
|
||||
%>
|
||||
String insert_<%=cid%> = "INSERT INTO `" + <%=table%> + "` (<%=insertColName.toString()%>) VALUES (<%=insertValueStmt.toString()%>)";
|
||||
<%
|
||||
if (supportDuplicateUpdate) {
|
||||
%>
|
||||
insert_<%=cid%> += duplidateClause_<%=cid%>.toString();
|
||||
<%
|
||||
}
|
||||
%>
|
||||
<%@ include file="../templates/_hintInsert.javajet" %>
|
||||
|
||||
<%
|
||||
//to fixed: bug8422
|
||||
if(!(cid.equals("talendLogs_DB") || cid.equals("talendStats_DB") || cid.equals("talendMeter_DB"))){%>
|
||||
java.sql.PreparedStatement pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(insert_<%=cid%>);
|
||||
resourceMap.put("pstmt_<%=cid %>", pstmt_<%=cid %>);
|
||||
<%}%>
|
||||
|
||||
<%
|
||||
//to fixed: bug8422
|
||||
if((cid.equals("talendLogs_DB") || cid.equals("talendStats_DB") || cid.equals("talendMeter_DB"))){ %>
|
||||
java.sql.PreparedStatement pstmt_<%=cid %> = null;
|
||||
// [%connection%][psmt][tableName]
|
||||
String keyPsmt_<%=cid %> = conn_<%=cid%> + "[psmt]" + "[" + <%=table%> + "]";
|
||||
pstmt_<%=cid %> = SharedDBPreparedStatement.getSharedPreparedStatement(conn_<%=cid%>,insert_<%=cid%>,keyPsmt_<%=cid%>);
|
||||
resourceMap.put("pstmt_<%=cid %>", pstmt_<%=cid %>);
|
||||
<%}%>
|
||||
|
||||
<%
|
||||
} else {//extended-insert mode(begin)
|
||||
if ("MYSQL_4".equals(dbVersion)) {
|
||||
%>
|
||||
class BufferLine_<%=cid%> {
|
||||
<%
|
||||
for(Column column : stmtStructure) {
|
||||
if(!column.isReplaced() && !column.isAddCol() && column.isInsertable()) {
|
||||
String typeToGenerate = JavaTypesManager.getTypeToGenerate(column.getColumn().getTalendType(), column.getColumn().isNullable());
|
||||
%>
|
||||
<%=typeToGenerate%> <%=column.getName()%>;
|
||||
<%
|
||||
}
|
||||
}
|
||||
%>
|
||||
|
||||
public BufferLine_<%=cid%>(
|
||||
<%
|
||||
int count = 0;
|
||||
for(Column column : stmtStructure) {
|
||||
if(!column.isReplaced() && !column.isAddCol() && column.isInsertable()) {
|
||||
if(count != 0) {
|
||||
%>
|
||||
,
|
||||
<%
|
||||
}
|
||||
String typeToGenerate = JavaTypesManager.getTypeToGenerate(column.getColumn().getTalendType(), column.getColumn().isNullable());
|
||||
%>
|
||||
<%=typeToGenerate%> <%=column.getName()%>
|
||||
<%
|
||||
count++;
|
||||
}
|
||||
}
|
||||
%>
|
||||
){
|
||||
<%
|
||||
for(Column column : stmtStructure) {
|
||||
if(!column.isReplaced() && !column.isAddCol() && column.isInsertable()) {
|
||||
%>
|
||||
this.<%=column.getName()%> = <%=column.getName()%>;
|
||||
<%
|
||||
}
|
||||
}
|
||||
%>
|
||||
}
|
||||
}
|
||||
|
||||
java.util.List<BufferLine_<%=cid%>> exInsertColValueList<%=cid%> = new java.util.ArrayList();
|
||||
BufferLine_<%=cid%> exInsertColValue<%=cid%> = null;
|
||||
|
||||
|
||||
StringBuilder extendInsertValueStmt_<%=cid%> = new StringBuilder();
|
||||
for(int i=0;i < <%=numPerInsert%>;i++){
|
||||
extendInsertValueStmt_<%=cid%>.append("(<%=insertValueStmt.toString()%>)");
|
||||
if (i!=<%=numPerInsert%>-1) extendInsertValueStmt_<%=cid%>.append(",");
|
||||
}
|
||||
|
||||
|
||||
String insert_<%=cid%> = "INSERT INTO `"+<%=table%>+"` (<%=insertColName.toString()%>) VALUES " + extendInsertValueStmt_<%=cid%>.toString();
|
||||
<%
|
||||
if (supportDuplicateUpdate) {
|
||||
%>
|
||||
insert_<%=cid%> += duplidateClause_<%=cid%>.toString();
|
||||
<%
|
||||
}
|
||||
%>
|
||||
<%@ include file="../templates/_hintInsert.javajet" %>
|
||||
java.sql.PreparedStatement pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(insert_<%=cid%>);
|
||||
resourceMap.put("pstmt_<%=cid %>", pstmt_<%=cid %>);
|
||||
|
||||
String insertColName<%=cid%> = "<%=insertColName.toString()%>";
|
||||
String insertColValue<%=cid%> = "<%=insertValueStmt.toString()%>";
|
||||
int rowCount<%=cid%> = 0;
|
||||
<%
|
||||
} else if ("MYSQL_8".equals(dbVersion) || "MYSQL_5".equals(dbVersion) || "MARIADB".equals(dbVersion)) {
|
||||
%>
|
||||
String insert_<%=cid%> = "INSERT INTO `" + <%=table%> + "` (<%=insertColName.toString()%>) VALUES (<%=insertValueStmt.toString()%>)";
|
||||
<%
|
||||
if (supportDuplicateUpdate) {
|
||||
%>
|
||||
insert_<%=cid%> += duplidateClause_<%=cid%>.toString();
|
||||
<%
|
||||
}
|
||||
%>
|
||||
int batchSize_<%=cid%> = <%=numPerInsert%>;
|
||||
int batchSizeCounter_<%=cid%>=0;
|
||||
<%@ include file="../templates/_hintInsert.javajet" %>
|
||||
java.sql.PreparedStatement pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(insert_<%=cid%>);
|
||||
resourceMap.put("pstmt_<%=cid %>", pstmt_<%=cid %>);
|
||||
|
||||
<%
|
||||
}
|
||||
}//extended-insert mode(end)
|
||||
} else if (("UPDATE").equals(dataAction)) {
|
||||
%>
|
||||
String update_<%=cid%> = "UPDATE `" + <%=table%> + "` SET <%=updateSetStmt.toString()%> WHERE <%=updateWhereStmt.toString()%>";
|
||||
<%@ include file="../templates/_hintUpdate.javajet" %>
|
||||
java.sql.PreparedStatement pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(update_<%=cid%>);
|
||||
resourceMap.put("pstmt_<%=cid %>", pstmt_<%=cid %>);
|
||||
<%
|
||||
} else if (("INSERT_OR_UPDATE").equals(dataAction)) {
|
||||
%>
|
||||
java.sql.PreparedStatement pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement("SELECT COUNT(1) FROM `" + <%=table%> + "` WHERE <%=updateWhereStmt.toString()%>");
|
||||
resourceMap.put("pstmt_<%=cid %>", pstmt_<%=cid %>);
|
||||
String insert_<%=cid%> = "INSERT INTO `" + <%=table%> + "` (<%=insertColName.toString()%>) VALUES (<%=insertValueStmt.toString()%>)";
|
||||
<%@ include file="../templates/_hintInsert.javajet" %>
|
||||
java.sql.PreparedStatement pstmtInsert_<%=cid %> = conn_<%=cid%>.prepareStatement(insert_<%=cid%>);
|
||||
resourceMap.put("pstmtInsert_<%=cid %>", pstmtInsert_<%=cid %>);
|
||||
String update_<%=cid%> = "UPDATE `" + <%=table%> + "` SET <%=updateSetStmt.toString()%> WHERE <%=updateWhereStmt.toString()%>";
|
||||
<%@ include file="../templates/_hintUpdate.javajet" %>
|
||||
java.sql.PreparedStatement pstmtUpdate_<%=cid %> = conn_<%=cid%>.prepareStatement(update_<%=cid%>);
|
||||
resourceMap.put("pstmtUpdate_<%=cid %>", pstmtUpdate_<%=cid %>);
|
||||
<%
|
||||
} else if (("UPDATE_OR_INSERT").equals(dataAction)) {
|
||||
%>
|
||||
String update_<%=cid%> = "UPDATE `" + <%=table%> + "` SET <%=updateSetStmt.toString()%> WHERE <%=updateWhereStmt.toString()%>";
|
||||
<%@ include file="../templates/_hintUpdate.javajet" %>
|
||||
java.sql.PreparedStatement pstmtUpdate_<%=cid %> = conn_<%=cid%>.prepareStatement(update_<%=cid%>);
|
||||
resourceMap.put("pstmtUpdate_<%=cid %>", pstmtUpdate_<%=cid %>);
|
||||
String insert_<%=cid%> = "INSERT INTO `" + <%=table%> + "` (<%=insertColName.toString()%>) VALUES (<%=insertValueStmt.toString()%>)";
|
||||
<%@ include file="../templates/_hintInsert.javajet" %>
|
||||
java.sql.PreparedStatement pstmtInsert_<%=cid %> = conn_<%=cid%>.prepareStatement(insert_<%=cid%>);
|
||||
resourceMap.put("pstmtInsert_<%=cid %>", pstmtInsert_<%=cid %>);
|
||||
<%
|
||||
} else if (("DELETE").equals(dataAction)) {
|
||||
%>
|
||||
String delete_<%=cid%> = "DELETE FROM `" + <%=table%> + "` WHERE <%=deleteWhereStmt.toString()%>";
|
||||
<%@ include file="../templates/_hintDelete.javajet" %>
|
||||
java.sql.PreparedStatement pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(delete_<%=cid%>);
|
||||
resourceMap.put("pstmt_<%=cid %>", pstmt_<%=cid %>);
|
||||
<%
|
||||
} else if(("REPLACE").equals(dataAction)) {
|
||||
%>
|
||||
String replace_<%=cid%> = "REPLACE INTO `" + <%=table%> + "` (<%=insertColName.toString()%>) VALUES (<%=insertValueStmt.toString()%>)";
|
||||
java.sql.PreparedStatement pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(replace_<%=cid%>);
|
||||
resourceMap.put("pstmt_<%=cid %>", pstmt_<%=cid %>);
|
||||
<%
|
||||
} else if(("INSERT_ON_DUPLICATE_KEY_UPDATE").equals(dataAction)) {
|
||||
%>
|
||||
String insertIgnore_<%=cid%> = "INSERT IGNORE INTO `" + <%=table%> + "` (<%=insertColName.toString()%>) VALUES (<%=insertValueStmt.toString()%>) ON DUPLICATE KEY UPDATE <%=updateSetStmt.toString()%>";
|
||||
java.sql.PreparedStatement pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(insertIgnore_<%=cid%>);
|
||||
resourceMap.put("pstmt_<%=cid %>", pstmt_<%=cid %>);
|
||||
<%
|
||||
} else if(("INSERT_IGNORE").equals(dataAction)) {
|
||||
%>
|
||||
String insert_<%=cid%> = "INSERT IGNORE INTO `" + <%=table%> + "` (<%=insertColName.toString()%>) VALUES (<%=insertValueStmt.toString()%>)";
|
||||
<%@ include file="../templates/_hintInsert.javajet" %>
|
||||
java.sql.PreparedStatement pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(insert_<%=cid%>);
|
||||
resourceMap.put("pstmt_<%=cid %>", pstmt_<%=cid %>);
|
||||
<%
|
||||
}
|
||||
if(isEnableDebug) {
|
||||
%>
|
||||
StringBuffer query_<%=cid%> = null;
|
||||
<%@ include file="../templates/DB/Output/splitSQLForAllDBInBegin.javajet" %>
|
||||
<%
|
||||
}
|
||||
}
|
||||
}
|
||||
if(isDynamic) {
|
||||
if ("MYSQL_4".equals(dbVersion) && extendedInsert) {
|
||||
%>
|
||||
|
||||
class BufferLine_<%=cid%> {
|
||||
<%
|
||||
for(Column column : stmtStructure) {
|
||||
if(!column.isReplaced() && !column.isAddCol() && column.isInsertable() && !column.isDynamic()) {
|
||||
String typeToGenerate = JavaTypesManager.getTypeToGenerate(column.getColumn().getTalendType(), column.getColumn().isNullable());
|
||||
%>
|
||||
<%=typeToGenerate%> <%=column.getName()%>;
|
||||
<%
|
||||
}
|
||||
}
|
||||
if(isDynamic) {
|
||||
Column dynamicColumn = getColumn(getDynamicColumn());
|
||||
String typeToGenerate = JavaTypesManager.getTypeToGenerate(dynamicColumn.getColumn().getTalendType(), dynamicColumn.getColumn().isNullable());
|
||||
if("Dynamic".equals(typeToGenerate)) {
|
||||
%>
|
||||
routines.system.Dynamic <%=dynamicColumn.getName()%>;
|
||||
<%
|
||||
}
|
||||
}
|
||||
%>
|
||||
|
||||
public BufferLine_<%=cid%>(
|
||||
<%
|
||||
int count = 0;
|
||||
for(Column column : stmtStructure) {
|
||||
if(!column.isReplaced() && !column.isAddCol() && column.isInsertable() && !column.isDynamic()) {
|
||||
if(count != 0) {
|
||||
%>
|
||||
,
|
||||
<%
|
||||
}
|
||||
String typeToGenerate = JavaTypesManager.getTypeToGenerate(column.getColumn().getTalendType(), column.getColumn().isNullable());
|
||||
%>
|
||||
<%=typeToGenerate%> <%=column.getName()%>
|
||||
<%
|
||||
count++;
|
||||
}
|
||||
}
|
||||
if(isDynamic) {
|
||||
Column dynamicColumn = getColumn(getDynamicColumn());
|
||||
String typeToGenerate = JavaTypesManager.getTypeToGenerate(dynamicColumn.getColumn().getTalendType(), dynamicColumn.getColumn().isNullable());
|
||||
if("Dynamic".equals(typeToGenerate)) {
|
||||
%>
|
||||
, routines.system.Dynamic <%=dynamicColumn.getName()%>
|
||||
<%
|
||||
}
|
||||
}
|
||||
|
||||
%>
|
||||
){
|
||||
<%
|
||||
for(Column column : stmtStructure) {
|
||||
if(!column.isReplaced() && !column.isAddCol() && column.isInsertable() && !column.isDynamic()) {
|
||||
%>
|
||||
this.<%=column.getName()%> = <%=column.getName()%>;
|
||||
<%
|
||||
}
|
||||
}
|
||||
if(isDynamic) {
|
||||
Column dynamicColumn = getColumn(getDynamicColumn());
|
||||
String typeToGenerate = JavaTypesManager.getTypeToGenerate(dynamicColumn.getColumn().getTalendType(), dynamicColumn.getColumn().isNullable());
|
||||
if("Dynamic".equals(typeToGenerate)) {
|
||||
%>
|
||||
this.<%=dynamicColumn.getName()%>=<%=dynamicColumn.getName()%>;
|
||||
<%
|
||||
}
|
||||
}
|
||||
%>
|
||||
}
|
||||
}
|
||||
|
||||
java.util.List<BufferLine_<%=cid%>> exInsertColValueList<%=cid%> = new java.util.ArrayList();
|
||||
BufferLine_<%=cid%> exInsertColValue<%=cid%> = null;
|
||||
String insert_<%=cid%>="";
|
||||
String insertColValue<%=cid%>="";
|
||||
String insertColName<%=cid%>="";
|
||||
int counter<%=cid%>=1;
|
||||
<%
|
||||
}else if (("MYSQL_8".equals(dbVersion) || "MYSQL_5".equals(dbVersion) || "MARIADB".equals(dbVersion)) && extendedInsert){
|
||||
%>
|
||||
int batchSizeCounter_<%=cid%>=0;
|
||||
int batchSize_<%=cid%>=0;
|
||||
<%
|
||||
}
|
||||
%>
|
||||
java.sql.PreparedStatement pstmt_<%=cid %> =null;
|
||||
java.sql.PreparedStatement pstmtInsert_<%=cid %> =null;
|
||||
java.sql.PreparedStatement pstmtUpdate_<%=cid %> =null;
|
||||
int rowCount<%=cid%>=0;
|
||||
<%if(isEnableDebug) {%>
|
||||
StringBuffer query_<%=cid%> = null;
|
||||
<%@ include file="../templates/DB/Output/splitSQLForAllDBInDynamicBegin.javajet" %>
|
||||
<%
|
||||
}
|
||||
}
|
||||
%>
|
||||
@@ -0,0 +1,561 @@
|
||||
<%@ jet
|
||||
imports="
|
||||
org.talend.designer.codegen.config.CodeGeneratorArgument
|
||||
org.talend.core.model.process.INode
|
||||
org.talend.core.model.process.ElementParameterParser
|
||||
org.talend.core.model.process.IConnection
|
||||
org.talend.core.model.metadata.IMetadataTable
|
||||
org.talend.core.model.metadata.types.JavaTypesManager
|
||||
org.talend.core.model.metadata.MappingTypeRetriever
|
||||
org.talend.core.model.metadata.MetadataTalendType
|
||||
org.talend.core.model.process.IProcess
|
||||
java.util.List
|
||||
java.util.ArrayList
|
||||
java.util.Map
|
||||
java.util.HashMap
|
||||
"
|
||||
skeleton="../templates/db_output_bulk.skeleton"
|
||||
%>
|
||||
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/Log4j/DBLogUtil.javajet"%>
|
||||
<%
|
||||
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
|
||||
INode node = (INode)codeGenArgument.getArgument();
|
||||
String cid = node.getUniqueName();
|
||||
|
||||
boolean isAmazonAurora = node.isVirtualGenerateNode() && (cid.matches("^.*?tAmazonAuroraOutput_\\d+_out$") || cid.matches("^.*?tDBOutput_\\d+_out$"));
|
||||
|
||||
if(isAmazonAurora){
|
||||
cid = cid.substring(0,cid.length()-4);
|
||||
}
|
||||
|
||||
dbLog = new DBLogUtil(node);
|
||||
IProcess process = node.getProcess();
|
||||
|
||||
String dbmsId = ElementParameterParser.getValue(node,"__MAPPING__");
|
||||
|
||||
List<Map<String, String>> addCols =
|
||||
(List<Map<String,String>>)ElementParameterParser.getObjectValue(node,"__ADD_COLS__");
|
||||
|
||||
boolean useFieldOptions = ("true").equals(ElementParameterParser.getValue(node, "__USE_FIELD_OPTIONS__"));
|
||||
|
||||
List<Map<String, String>> fieldOptions = (List<Map<String,String>>)ElementParameterParser.getObjectValue(node, "__FIELD_OPTIONS__");
|
||||
|
||||
String dataAction = ElementParameterParser.getValue(node,"__DATA_ACTION__");
|
||||
|
||||
String commitEvery = ElementParameterParser.getValue(node, "__COMMIT_EVERY__");
|
||||
|
||||
boolean setAutoCommit = false;
|
||||
|
||||
boolean useExistingConnection = "true".equals(ElementParameterParser.getValue(node,"__USE_EXISTING_CONNECTION__"));;
|
||||
|
||||
boolean extendedInsert = false;
|
||||
|
||||
boolean supportDuplicateUpdate = "true".equalsIgnoreCase(ElementParameterParser.getValue(node,"__ON_DUPLICATE_KEY_UPDATE__"));
|
||||
|
||||
String dieOnError = ElementParameterParser.getValue(node, "__DIE_ON_ERROR__");
|
||||
boolean onErrDie = "true".equals(dieOnError);
|
||||
|
||||
boolean useBatchSize = ("true").equals(ElementParameterParser.getValue(node,"__USE_BATCH_SIZE__"));
|
||||
|
||||
String rejectConnName = null;
|
||||
List<? extends IConnection> rejectConns = node.getOutgoingConnections("REJECT");
|
||||
if(rejectConns != null && rejectConns.size() > 0) {
|
||||
IConnection rejectConn = rejectConns.get(0);
|
||||
rejectConnName = rejectConn.getName();
|
||||
}
|
||||
|
||||
if ("INSERT".equalsIgnoreCase(dataAction)) {
|
||||
extendedInsert = ("true").equals(ElementParameterParser.getValue(node, "__EXTENDINSERT__"));
|
||||
|
||||
//to fixed: bug8422
|
||||
if((cid.equals("talendLogs_DB") || cid.equals("talendStats_DB") || cid.equals("talendMeter_DB"))){
|
||||
extendedInsert = false;
|
||||
}
|
||||
|
||||
}else {
|
||||
extendedInsert = false;
|
||||
}
|
||||
|
||||
String tableName = ElementParameterParser.getValue(node,"__TABLE__");
|
||||
|
||||
String numPerInsert = ElementParameterParser.getValue(node, "__NB_ROWS_PER_INSERT__");
|
||||
|
||||
String incomingConnName = null;
|
||||
List<IMetadataColumn> columnList = getColumnList(node);
|
||||
|
||||
List< ? extends IConnection> conns = node.getIncomingConnections();
|
||||
if(conns!=null && conns.size()>0){
|
||||
IConnection conn = conns.get(0);
|
||||
incomingConnName = conn.getName();
|
||||
}
|
||||
|
||||
boolean isDynamic = false;
|
||||
List<IMetadataTable> metadatas = node.getMetadataList();
|
||||
if ((metadatas!=null)&&(metadatas.size()>0)) {
|
||||
IMetadataTable metadata = metadatas.get(0);
|
||||
isDynamic = metadata.isDynamicSchema();
|
||||
}
|
||||
|
||||
List<Column> stmtStructure = getManager(dbmsId, cid).createColumnList(columnList, useFieldOptions, fieldOptions, addCols);
|
||||
isDynamic = isDynamic && !getManager(dbmsId, cid).isDynamicColumnReplaced();
|
||||
|
||||
String dbVersion = "" ;
|
||||
String connection = ElementParameterParser.getValue(node,"__CONNECTION__");
|
||||
if(useExistingConnection) {
|
||||
if(isAmazonAurora){
|
||||
dbVersion = "MYSQL_5";
|
||||
}else{
|
||||
List<? extends INode> nodes = process.getNodesOfType("tMysqlConnection");
|
||||
for (INode ne:nodes) {
|
||||
if (connection.equals(ne.getUniqueName())) {
|
||||
dbVersion = ElementParameterParser.getValue(ne, "__DB_VERSION__");
|
||||
setAutoCommit = "true".equals(ElementParameterParser.getValue(ne, "__AUTO_COMMIT__"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
dbVersion = ElementParameterParser.getValue(node, "__DB_VERSION__");
|
||||
}
|
||||
|
||||
if(extendedInsert){
|
||||
|
||||
if ("MYSQL_4".equals(dbVersion)) {
|
||||
class ExtendInsertOperation{
|
||||
public String generateType(String typeToGenerate){
|
||||
if(("byte[]").equals(typeToGenerate)){
|
||||
typeToGenerate = "Bytes";
|
||||
}else if(("java.util.Date").equals(typeToGenerate)){
|
||||
typeToGenerate = "Date";
|
||||
}else if(("Integer").equals(typeToGenerate)){
|
||||
typeToGenerate = "Int";
|
||||
}else if(("List").equals(typeToGenerate)){
|
||||
typeToGenerate = "Object";
|
||||
}else{
|
||||
typeToGenerate=typeToGenerate.substring(0,1).toUpperCase()+typeToGenerate.substring(1);
|
||||
}
|
||||
return typeToGenerate;
|
||||
}
|
||||
|
||||
public void generateSetStmt(String typeToGenerate,Column column,String cid){
|
||||
boolean isObject = false;
|
||||
String prefix = "pstmt_";
|
||||
%>
|
||||
|
||||
<%
|
||||
if(("Character").equals(typeToGenerate)) {
|
||||
isObject = true;
|
||||
%>
|
||||
if(bufferL<%=cid%>.<%=column.getName()%>==null){
|
||||
<%=prefix+cid%>.setNull(count<%=cid%>,java.sql.Types.CHAR);
|
||||
<%
|
||||
}else if(("Date").equals(typeToGenerate)){
|
||||
isObject = true;
|
||||
%>
|
||||
if(bufferL<%=cid%>.<%=column.getName()%>==null){
|
||||
<%=prefix+cid%>.setNull(count<%=cid%>,java.sql.Types.DATE);
|
||||
<%
|
||||
}else if(("byte[]").equals(typeToGenerate)){
|
||||
isObject = true;
|
||||
%>
|
||||
if(bufferL<%=cid%>.<%=column.getName()%>==null){
|
||||
<%=prefix+cid%>.setNull(count<%=cid%>,java.sql.Types.ARRAY);
|
||||
<%
|
||||
}else if(("Long").equals(typeToGenerate)||("Byte").equals(typeToGenerate)||("Integer").equals(typeToGenerate)||("Short").equals(typeToGenerate)){
|
||||
isObject = true;
|
||||
%>
|
||||
if(bufferL<%=cid%>.<%=column.getName()%>==null){
|
||||
<%=prefix+cid%>.setNull(count<%=cid%>,java.sql.Types.INTEGER);
|
||||
<%
|
||||
}else if(("String").equals(typeToGenerate)){
|
||||
isObject = true;
|
||||
%>
|
||||
if(bufferL<%=cid%>.<%=column.getName()%>==null){
|
||||
<%=prefix+cid%>.setNull(count<%=cid%>,java.sql.Types.VARCHAR);
|
||||
<%
|
||||
}else if(("Object").equals(typeToGenerate)){
|
||||
isObject = true;
|
||||
%>
|
||||
if(bufferL<%=cid%>.<%=column.getName()%>==null){
|
||||
<%=prefix+cid%>.setNull(count<%=cid%>,java.sql.Types.OTHER);
|
||||
<%
|
||||
}else if(("Boolean").equals(typeToGenerate)){
|
||||
isObject = true;
|
||||
%>
|
||||
if(bufferL<%=cid%>.<%=column.getName()%>==null){
|
||||
<%=prefix+cid%>.setNull(count<%=cid%>,java.sql.Types.BOOLEAN);
|
||||
<%
|
||||
}else if(("Double").equals(typeToGenerate)){
|
||||
isObject = true;
|
||||
%>
|
||||
if(bufferL<%=cid%>.<%=column.getName()%>==null){
|
||||
<%=prefix+cid%>.setNull(count<%=cid%>,java.sql.Types.DOUBLE);
|
||||
<%
|
||||
}else if(("Float").equals(typeToGenerate)){
|
||||
isObject = true;
|
||||
%>
|
||||
if(bufferL<%=cid%>.<%=column.getName()%>==null){
|
||||
<%=prefix+cid%>.setNull(count<%=cid%>,java.sql.Types.FLOAT);
|
||||
<%
|
||||
}
|
||||
if(isObject){
|
||||
%>
|
||||
|
||||
}else{
|
||||
|
||||
<%
|
||||
}
|
||||
typeToGenerate = generateType(typeToGenerate);
|
||||
|
||||
if(("Char").equals(typeToGenerate)||("Character").equals(typeToGenerate)){
|
||||
%>
|
||||
<%
|
||||
if(isObject) {
|
||||
%>
|
||||
if(bufferL<%=cid%>.<%=column.getName()%>==null){
|
||||
<%
|
||||
} else {
|
||||
%>
|
||||
if(("null").equals(String.valueOf(bufferL<%=cid%>.<%=column.getName()%>).toLowerCase())){
|
||||
<%
|
||||
}
|
||||
%>
|
||||
<%=prefix+cid%>.setNull(count<%=cid%>,java.sql.Types.CHAR);
|
||||
|
||||
} else if(bufferL<%=cid%>.<%=column.getName()%> == '\0') {
|
||||
|
||||
<%=prefix+cid%>.setString(count<%=cid%>,"");
|
||||
|
||||
} else {
|
||||
|
||||
<%=prefix+cid%>.setString(count<%=cid%>,String.valueOf(bufferL<%=cid%>.<%=column.getName()%>));
|
||||
}
|
||||
<%
|
||||
}else if(("Date").equals(typeToGenerate)){
|
||||
%>
|
||||
if(bufferL<%=cid%>.<%=column.getName()%>!=null){
|
||||
// timestamp < min java date value (year 1) || timestamp > max mysql value (year 10000) => set 0000-00-00 as date in MySQL
|
||||
date_<%=cid %> = bufferL<%=cid%>.<%=column.getName()%>.getTime();
|
||||
if (date_<%=cid %> < year1_<%=cid %> || date_<%=cid %> >= year10000_<%=cid %>) {
|
||||
<%=prefix+cid%>.setString(count<%=cid%>, "0000-00-00 00:00:00");
|
||||
} else {
|
||||
<%=prefix+cid%>.setTimestamp(count<%=cid%>, new java.sql.Timestamp(date_<%=cid %>));
|
||||
}
|
||||
}else{
|
||||
|
||||
<%=prefix+cid%>.setNull(count<%=cid%>,java.sql.Types.DATE);
|
||||
|
||||
}
|
||||
<%
|
||||
}else{
|
||||
%>
|
||||
<%=prefix+cid%>.set<%=typeToGenerate%>(count<%=cid%>,bufferL<%=cid%>.<%=column.getName()%>);
|
||||
<%
|
||||
}
|
||||
if(isObject){
|
||||
%>
|
||||
|
||||
}
|
||||
|
||||
<%
|
||||
}
|
||||
}
|
||||
}
|
||||
ExtendInsertOperation eiOperation = new ExtendInsertOperation();
|
||||
%>
|
||||
|
||||
|
||||
if(rowCount<%=cid%>!=0){
|
||||
|
||||
StringBuilder extendInsertValueStmt = new StringBuilder();
|
||||
for(int i=0 ; i < rowCount<%=cid%> ; i++){
|
||||
extendInsertValueStmt.append("("+insertColValue<%=cid%>+")");
|
||||
if (i != rowCount<%=cid%> - 1) extendInsertValueStmt.append(",");
|
||||
}
|
||||
|
||||
|
||||
insert_<%=cid%> = "INSERT INTO `"+<%=tableName%>+"` ("+insertColName<%=cid%>+") VALUES "+extendInsertValueStmt.toString();
|
||||
<%if (supportDuplicateUpdate) {
|
||||
%>
|
||||
<%
|
||||
List<Map<String, String>> duplicateKeys =
|
||||
(List<Map<String,String>>)ElementParameterParser.getObjectValue(
|
||||
node,"__DUPLICATED_KEYS__" );
|
||||
|
||||
if (duplicateKeys.size() > 0) {
|
||||
%>
|
||||
insert_<%=cid%> += " ON DUPLICATE KEY UPDATE ";
|
||||
duplidateClause_<%=cid%> = new StringBuffer("");
|
||||
<%
|
||||
for (int i=0; i< duplicateKeys.size() ; i++) {
|
||||
if (i >0) {
|
||||
%>
|
||||
duplidateClause_<%=cid%>.append(",");
|
||||
<%
|
||||
}
|
||||
%>
|
||||
duplidateClause_<%=cid%>.append ("`" + <%=duplicateKeys.get(i).get("DUPLICATED_KEY")%> + "`");
|
||||
duplidateClause_<%=cid%>.append ("=");
|
||||
duplidateClause_<%=cid%>.append (<%=duplicateKeys.get(i).get("DUPLICATED_VALUE")%>);
|
||||
<%
|
||||
}
|
||||
%>
|
||||
insert_<%=cid%> += duplidateClause_<%=cid%>.toString();
|
||||
<%
|
||||
}
|
||||
%>
|
||||
<%
|
||||
}%>
|
||||
|
||||
|
||||
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(insert_<%=cid%>);
|
||||
|
||||
int row2Count<%=cid%> = 0;
|
||||
<%
|
||||
if(isDynamic) {
|
||||
%>
|
||||
int count<%=cid%> = 1;
|
||||
<%
|
||||
} else {
|
||||
%>
|
||||
int count<%=cid%> = 0;
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
for(BufferLine_<%=cid%> bufferL<%=cid%> : exInsertColValueList<%=cid%>){
|
||||
<%
|
||||
if(!isDynamic) {
|
||||
%>
|
||||
count<%=cid%> = row2Count<%=cid%>*<%=columnList.size()%>+1;
|
||||
<%
|
||||
}
|
||||
for(Column column : stmtStructure) {
|
||||
if(!column.isReplaced() && !column.isAddCol() && column.isInsertable() && !column.isDynamic()) {
|
||||
String typeToGenerate = JavaTypesManager.getTypeToGenerate(column.getColumn().getTalendType(), column.getColumn().isNullable());
|
||||
eiOperation.generateSetStmt(typeToGenerate, column, cid);
|
||||
%>
|
||||
count<%=cid%>++;
|
||||
<%
|
||||
}
|
||||
}
|
||||
if(isDynamic) {
|
||||
Column dynamicColumn = getColumn(getDynamicColumn());
|
||||
String typeToGenerate = JavaTypesManager.getTypeToGenerate(dynamicColumn.getColumn().getTalendType(), dynamicColumn.getColumn().isNullable());
|
||||
if("Dynamic".equals(typeToGenerate)) {
|
||||
%>
|
||||
int count_dyn_<%=cid%>=DynamicUtils.writeColumnsToDatabse(<%=incomingConnName%>.<%=dynamicColumn.getName()%>, pstmt_<%=cid%>, count<%=cid%>-1, "<%=dbmsId%>");
|
||||
count<%=cid%>+=count_dyn_<%=cid%>;
|
||||
<%
|
||||
}
|
||||
}
|
||||
%>
|
||||
row2Count<%=cid%>++;
|
||||
<%
|
||||
if(!useExistingConnection) {
|
||||
if(!("").equals(commitEvery)&&!("0").equals(commitEvery)){
|
||||
%>
|
||||
commitCounter_<%=cid%> += exInsertColValueList<%=cid%>.size();
|
||||
<%
|
||||
}
|
||||
}
|
||||
%>
|
||||
}
|
||||
try{
|
||||
int processedCount_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
|
||||
insertedCount_<%=cid%> += processedCount_<%=cid%>;
|
||||
rowsToCommitCount_<%=cid%> += processedCount_<%=cid%>;
|
||||
}catch(java.lang.Exception e){
|
||||
globalMap.put("<%=cid%>_ERROR_MESSAGE",e.getMessage());
|
||||
<% if(onErrDie){%>
|
||||
throw e;
|
||||
<% }else{
|
||||
dbLog.logPrintedException("e.getMessage()");
|
||||
%>
|
||||
System.err.println(e.getMessage());
|
||||
<%}%>
|
||||
}
|
||||
}
|
||||
<%
|
||||
} else if ("MYSQL_8".equals(dbVersion) || "MYSQL_5".equals(dbVersion) || "MARIADB".equals(dbVersion)) {
|
||||
//////////batch execute by batch size///////
|
||||
if(!("").equals(numPerInsert ) && !("0").equals(numPerInsert)) {
|
||||
%>
|
||||
<%if ((rejectConnName==null) && ("INSERT").equals(dataAction)) {
|
||||
%>
|
||||
try {
|
||||
if (batchSizeCounter_<%=cid%> != 0) {
|
||||
int countSum_<%=cid%> = 0;
|
||||
<%dbLog.batch().executeTry(dbLog.str(dataAction));%>
|
||||
for(int countEach_<%=cid%>: pstmt_<%=cid %>.executeBatch()) {
|
||||
countSum_<%=cid%> += (countEach_<%=cid%> == java.sql.Statement.EXECUTE_FAILED ? 0 : 1);
|
||||
}
|
||||
rowsToCommitCount_<%=cid%> += countSum_<%=cid%>;
|
||||
<%dbLog.batch().executeDone(dbLog.str(dataAction));%>
|
||||
<%if (("INSERT").equals(dataAction)) {
|
||||
%>
|
||||
insertedCount_<%=cid%> += countSum_<%=cid%>;
|
||||
<%
|
||||
}
|
||||
%>
|
||||
}
|
||||
|
||||
}catch (java.sql.BatchUpdateException e){
|
||||
globalMap.put(currentComponent+"_ERROR_MESSAGE",e.getMessage());
|
||||
<%if(("true").equals(dieOnError)) {
|
||||
%>
|
||||
throw(e);
|
||||
<%
|
||||
}else {
|
||||
%>
|
||||
int countSum_<%=cid%> = 0;
|
||||
for(int countEach_<%=cid%>: e.getUpdateCounts()) {
|
||||
countSum_<%=cid%> += (countEach_<%=cid%> < 0 ? 0 : countEach_<%=cid%>);
|
||||
}
|
||||
rowsToCommitCount_<%=cid%> += countSum_<%=cid%>;
|
||||
<%if (("INSERT").equals(dataAction)) {
|
||||
%>
|
||||
insertedCount_<%=cid%> += countSum_<%=cid%>;
|
||||
<%
|
||||
}
|
||||
dbLog.logPrintedException("e.getMessage()");
|
||||
%>
|
||||
System.err.println(e.getMessage());
|
||||
<%
|
||||
}%>
|
||||
}
|
||||
batchSizeCounter_<%=cid%> = 0;
|
||||
<%
|
||||
}
|
||||
%>
|
||||
<%
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(("INSERT_OR_UPDATE").equals(dataAction)) {
|
||||
%>
|
||||
if(pstmtUpdate_<%=cid%> != null){
|
||||
pstmtUpdate_<%=cid %>.close();
|
||||
resourceMap.remove("pstmtUpdate_<%=cid %>");
|
||||
}
|
||||
if(pstmtInsert_<%=cid %> != null){
|
||||
pstmtInsert_<%=cid %>.close();
|
||||
resourceMap.remove("pstmtInsert_<%=cid %>");
|
||||
}
|
||||
if(pstmt_<%=cid %> != null) {
|
||||
pstmt_<%=cid %>.close();
|
||||
resourceMap.remove("pstmt_<%=cid %>");
|
||||
}
|
||||
<%
|
||||
} else if(("UPDATE_OR_INSERT").equals(dataAction)) {
|
||||
%>
|
||||
if(pstmtUpdate_<%=cid%> != null){
|
||||
pstmtUpdate_<%=cid %>.close();
|
||||
resourceMap.remove("pstmtUpdate_<%=cid %>");
|
||||
}
|
||||
if(pstmtInsert_<%=cid %> != null){
|
||||
pstmtInsert_<%=cid %>.close();
|
||||
resourceMap.remove("pstmtInsert_<%=cid %>");
|
||||
}
|
||||
<%
|
||||
} else {
|
||||
%>
|
||||
<%if ((rejectConnName==null && ("MYSQL_8".equals(dbVersion) || "MYSQL_5".equals(dbVersion) || "MARIADB".equals(dbVersion)) && useBatchSize) && (("UPDATE").equals(dataAction) || ("DELETE").equals(dataAction))) {
|
||||
%>
|
||||
try {
|
||||
if(pstmt_<%=cid %> != null){
|
||||
int countSum_<%=cid%> = 0;
|
||||
<%dbLog.batch().executeTry(dbLog.str(dataAction));%>
|
||||
for(int countEach_<%=cid%>: pstmt_<%=cid %>.executeBatch()) {
|
||||
countSum_<%=cid%> += (countEach_<%=cid%> < 0 ? 0 : countEach_<%=cid%>);
|
||||
}
|
||||
rowsToCommitCount_<%=cid%> += countSum_<%=cid%>;
|
||||
<%dbLog.batch().executeDone(dbLog.str(dataAction));%>
|
||||
<%if (("UPDATE").equals(dataAction)) {
|
||||
%>
|
||||
updatedCount_<%=cid%> += countSum_<%=cid%>;
|
||||
<%
|
||||
}else if (("DELETE").equals(dataAction)) {
|
||||
%>
|
||||
deletedCount_<%=cid%> += countSum_<%=cid%>;
|
||||
<%
|
||||
}%>
|
||||
}
|
||||
}catch (java.sql.BatchUpdateException e){
|
||||
globalMap.put("<%=cid%>_ERROR_MESSAGE",e.getMessage());
|
||||
<%if(("true").equals(dieOnError)) {
|
||||
%>
|
||||
throw(e);
|
||||
<%
|
||||
}else {
|
||||
%>
|
||||
int countSum_<%=cid%> = 0;
|
||||
for(int countEach_<%=cid%>: e.getUpdateCounts()) {
|
||||
countSum_<%=cid%> += (countEach_<%=cid%> < 0 ? 0 : countEach_<%=cid%>);
|
||||
}
|
||||
rowsToCommitCount_<%=cid%> += countSum_<%=cid%>;
|
||||
<%if (("UPDATE").equals(dataAction)) {
|
||||
%>
|
||||
updatedCount_<%=cid%> += countSum_<%=cid%>;
|
||||
<%
|
||||
}else if (("DELETE").equals(dataAction)) {
|
||||
%>
|
||||
deletedCount_<%=cid%> += countSum_<%=cid%>;
|
||||
<%
|
||||
}
|
||||
dbLog.logPrintedException("e.getMessage()");%>
|
||||
System.err.println(e.getMessage());
|
||||
<%
|
||||
}%>
|
||||
}
|
||||
<%
|
||||
}%>
|
||||
|
||||
if(pstmt_<%=cid %> != null) {
|
||||
<%
|
||||
//to fixed: bug8422
|
||||
if(!(cid.equals("talendLogs_DB") || cid.equals("talendStats_DB") || cid.equals("talendMeter_DB"))){
|
||||
%>
|
||||
pstmt_<%=cid %>.close();
|
||||
resourceMap.remove("pstmt_<%=cid %>");
|
||||
<%
|
||||
}else{
|
||||
%>
|
||||
SharedDBPreparedStatement.releasePreparedStatement(keyPsmt_<%=cid%>);
|
||||
<%
|
||||
}
|
||||
%>
|
||||
}
|
||||
<%
|
||||
}
|
||||
%>
|
||||
resourceMap.put("statementClosed_<%=cid%>", true);
|
||||
<%
|
||||
if(!useExistingConnection){
|
||||
if(!("").equals(commitEvery) && !("0").equals(commitEvery))
|
||||
{
|
||||
%>
|
||||
if (commitCounter_<%=cid%> > 0 && rowsToCommitCount_<%=cid%> != 0) {
|
||||
<%dbLog.commit().commitTry(null, dbLog.var("rowsToCommitCount"));%>
|
||||
}
|
||||
conn_<%=cid%>.commit();
|
||||
if (commitCounter_<%=cid%> > 0 && rowsToCommitCount_<%=cid%> != 0) {
|
||||
<%dbLog.commit().commitDone(null);%>
|
||||
rowsToCommitCount_<%=cid%> = 0;
|
||||
}
|
||||
commitCounter_<%=cid%> = 0;
|
||||
<%
|
||||
}
|
||||
|
||||
commitEvery = "0";
|
||||
%>
|
||||
<%dbLog.conn().closeTry(null);%>
|
||||
conn_<%=cid%> .close();
|
||||
<%dbLog.conn().closeDone(null);%>
|
||||
resourceMap.put("finish_<%=cid%>", true);
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
<%@ include file="../templates/DB/Output/DBOutputEndGlobalVars.javajet"%>
|
||||
@@ -0,0 +1 @@
|
||||
<%@ include file="../templates/DB/Output/AbstractDBOutputFinally.javajet" %>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user