// ============================================================================
//
// Copyright (C) 2006-2012 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.core.model.metadata.types;
import org.talend.core.model.metadata.IMetadataColumn;
import org.talend.core.model.metadata.IMetadataTable;
/**
* DOC wyang class global comment. Detailled comment
*/
public class Java2STLangTypesHelper {
/**
* DOC return as: int int64, big_int, float, bool, char, string.
*
* @param metadataTable
* @param columnLabel
* @return
*/
public static String getSTLangType(IMetadataTable metadataTable, String columnLabel) {
IMetadataColumn column = metadataTable.getColumn(columnLabel);
String talendType = column.getTalendType();
String typeToGenerate = JavaTypesManager.getTypeToGenerate(talendType, false);
// Integers: int(Integer), long(Long), short(Short), byte(Byte), BigDecimal.
if (typeToGenerate.equals("int") || typeToGenerate.equals("short") || typeToGenerate.equals("byte")) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
return "int"; //$NON-NLS-1$
} else if (typeToGenerate.equals("long")) { //$NON-NLS-1$
return "int64"; //$NON-NLS-1$
} else if (typeToGenerate.equals("BigDecimal")) { //$NON-NLS-1$
return "big_int"; //$NON-NLS-1$
}
// Floats: float(Float), double(Double)
if (typeToGenerate.equals("float") || typeToGenerate.equals("double")) { //$NON-NLS-1$ //$NON-NLS-2$
return "float"; //$NON-NLS-1$
}
// Bool: bool(Boolean)
if (typeToGenerate.equals("bool")) { //$NON-NLS-1$
return "bool"; //$NON-NLS-1$
}
// Characters: char(Character)
if (typeToGenerate.equals("char")) { //$NON-NLS-1$
return "char"; //$NON-NLS-1$
}
// others treat as string
return "string"; //$NON-NLS-1$
}
/**
* DOC return as: int, long, double, float, string.
*
* @author rdubois
* @param metadataTable
* @param columnLabel
* @return
*/
public static String getPigType(IMetadataTable metadataTable, String columnLabel) { // This method returns the Pig type according to the talendType
IMetadataColumn column = metadataTable.getColumn(columnLabel);
String talendType = column.getTalendType();
String typeToGenerate = JavaTypesManager.getTypeToGenerate(talendType, false);
// Integers: int(Integer), long(Long), short(Short), byte(Byte), BigDecimal, double(Double).
if (typeToGenerate.equals("int") || typeToGenerate.equals("short") || typeToGenerate.equals("byte")) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
return "int"; //$NON-NLS-1$
} else if (typeToGenerate.equals("long")) { //$NON-NLS-1$
return "long"; //$NON-NLS-1$
} else if (typeToGenerate.equals("BigDecimal") || typeToGenerate.equals("double")) { //$NON-NLS-1$
return "double"; //$NON-NLS-1$
}
// Floats: float(Float)
if (typeToGenerate.equals("float")) { //$NON-NLS-1$ //$NON-NLS-2$
return "float"; //$NON-NLS-1$
}
// others treat as string
return "chararray"; //$NON-NLS-1$
}
/**
* DOC return as: int, long, double, float, string.
*
* @author rdubois
* @param metadataTable
* @param columnLabel
* @return
*/
public static String getHCatType(IMetadataTable metadataTable, String columnLabel) { // This method returns the Pig type according to the talendType
IMetadataColumn column = metadataTable.getColumn(columnLabel);
String talendType = column.getTalendType();
String typeToGenerate = JavaTypesManager.getTypeToGenerate(talendType, false);
// Integers: int(Integer), long(Long), short(Short), byte(Byte), BigDecimal, double(Double).
if (typeToGenerate.equals("int") || typeToGenerate.equals("byte")) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
return "int"; //$NON-NLS-1$
} else if (typeToGenerate.equals("long")) { //$NON-NLS-1$
return "bigint"; //$NON-NLS-1$
} else if (typeToGenerate.equals("short")) { //$NON-NLS-1$
return "smallint";
} else if (typeToGenerate.equals("boolean")) { //$NON-NLS-1$
return "boolean";
} else if (typeToGenerate.equals("BigDecimal") || typeToGenerate.equals("double")) { //$NON-NLS-1$
return "double"; //$NON-NLS-1$
}
// Floats: float(Float)
if (typeToGenerate.equals("float")) { //$NON-NLS-1$ //$NON-NLS-2$
return "float"; //$NON-NLS-1$
}
// others treat as string
return "string"; //$NON-NLS-1$
}
/**
* DOC return as: %d, %f, %b, %s.
*
* @param metadataTable
* @param columnLabel
* @return
*/
public static String getFormatString(IMetadataTable metadataTable, String columnLabel) {
IMetadataColumn column = metadataTable.getColumn(columnLabel);
String talendType = column.getTalendType();
String typeToGenerate = JavaTypesManager.getTypeToGenerate(talendType, false);
// Integers: int(Integer), long(Long), short(Short), byte(Byte), BigDecimal.
if (typeToGenerate.equals("int") || typeToGenerate.equals("short") || typeToGenerate.equals("byte")) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
return "%d"; //$NON-NLS-1$
} else if (typeToGenerate.equals("long")) { //$NON-NLS-1$
return "%d"; //$NON-NLS-1$
} else if (typeToGenerate.equals("BigDecimal")) { //$NON-NLS-1$
return "%d"; //$NON-NLS-1$
}
// Floats: float(Float), double(Double)
if (typeToGenerate.equals("float") || typeToGenerate.equals("double")) { //$NON-NLS-1$ //$NON-NLS-2$
return "%f"; //$NON-NLS-1$
}
// Bool: bool(Boolean)
if (typeToGenerate.equals("bool")) { //$NON-NLS-1$
return "%b"; //$NON-NLS-1$
}
// Characters: char(Character)
if (typeToGenerate.equals("char")) { //$NON-NLS-1$
return "%c"; //$NON-NLS-1$
}
// others treat as string
return "%s"; //$NON-NLS-1$
}
}