use of org.talend.designer.filemultischemas.data.MultiMetadataColumn in project tdi-studio-se by Talend.
the class MultiSchemasManager method createSimpleDatas.
public void createSimpleDatas(SchemasKeyData rootData, List<Map<String, String>> schemasValues) {
for (Map<String, String> line : schemasValues) {
String code = line.get(IMultiSchemaConstant.RECORD);
if (code != null) {
// code = MultiSchemasManager.removeQuotes(code);
code = TalendTextUtils.trimParameter(code);
SchemasKeyData data = new SchemasKeyData(code);
final String schemaName = line.get(IMultiSchemaConstant.SCHEMA);
if (schemaName != null) {
final IMetadataTable metadataTable = MetadataToolHelper.getMetadataTableFromNode(getMultiSchemasComponent(), schemaName);
if (metadataTable != null) {
data.setUniqueRecord(schemaName);
createMultiSchemasColumns(data, metadataTable.clone(true));
}
rootData.addChild(data);
}
String text = line.get(IMultiSchemaConstant.KEY_COLUMN_INDEX);
if (text == null) {
//$NON-NLS-1$
text = "";
}
final String keyColumnIndex = TalendTextUtils.removeQuotes(text);
//$NON-NLS-1$
String[] keys = keyColumnIndex.split(",");
for (String name : keys) {
try {
List<MultiMetadataColumn> metadataColumns = data.getMetadataColumns();
int index = Integer.parseInt(name);
for (int i = 0; i < metadataColumns.size(); i++) {
MultiMetadataColumn multiMetadataColumn = metadataColumns.get(i);
if (index == i) {
multiMetadataColumn.setKey(true);
} else {
multiMetadataColumn.setKey(false);
}
}
} catch (NumberFormatException e) {
//
}
}
String card = line.get(IMultiSchemaConstant.CARDINALITY);
if (card == null) {
//$NON-NLS-1$
card = TalendTextUtils.addQuotes("");
}
data.setCard(card);
String keyIndex = line.get(IMultiSchemaConstant.FIELDDELIMITED);
if (keyIndex == null) {
//$NON-NLS-1$
keyIndex = "";
} else {
keyIndex = TalendTextUtils.removeQuotes(keyIndex);
}
data.setSeparator(keyIndex);
}
}
}
use of org.talend.designer.filemultischemas.data.MultiMetadataColumn in project tdi-studio-se by Talend.
the class MultiSchemasManager method retrieveRelativeParent.
private void retrieveRelativeParent(SchemasKeyData rootData, List<Map<String, String>> schemasValues) {
for (Map<String, String> line : schemasValues) {
String code = line.get(IMultiSchemaConstant.RECORD);
if (code != null) {
code = TalendTextUtils.removeQuotes(code);
SchemasKeyData currentData = findKeyData(rootData, code);
if (currentData != null) {
String codeParent = line.get(IMultiSchemaConstant.PARENT_RECORD);
if (codeParent != null) {
codeParent = TalendTextUtils.removeQuotes(codeParent);
}
if (codeParent == null || "".equals(codeParent.trim())) {
// root //$NON-NLS-1$
rootData.addChild(currentData);
} else {
SchemasKeyData parentData = findKeyData(rootData, codeParent.trim());
if (parentData != null) {
parentData.addChild(currentData);
// set the added column, last column.
List<MultiMetadataColumn> metadataColumns = currentData.getMetadataColumns();
if (!metadataColumns.isEmpty()) {
MultiMetadataColumn multiMetadataColumn = metadataColumns.get(metadataColumns.size() - 1);
metadataColumns.remove(multiMetadataColumn);
currentData.setAddedColumn(multiMetadataColumn);
}
}
}
}
}
}
}
use of org.talend.designer.filemultischemas.data.MultiMetadataColumn in project tdi-studio-se by Talend.
the class MultiSchemasManager method createPropertiesColumns.
public List<MultiMetadataColumn> createPropertiesColumns(SchemasKeyData keyData) {
List<MultiMetadataColumn> columns = new ArrayList<MultiMetadataColumn>();
if (keyData != null) {
final int tagLevel = keyData.getTagLevel();
//
final List<MultiSchemaRowData> rowsData = keyData.getRowsData();
for (MultiSchemaRowData row : rowsData) {
final List<MultiSchemasMetadataColumn> columnsData = row.getColumnsData();
for (int i = 0; i < columnsData.size(); i++) {
final MultiSchemasMetadataColumn metadataColumn = columnsData.get(i);
MultiMetadataColumn column = null;
if (columns.size() - 1 < i) {
// not contain
column = new MultiMetadataColumn(row.getKeyName());
column.setLabel(metadataColumn.getLabel());
column.setContainer(keyData);
columns.add(column);
} else {
column = columns.get(i);
}
column.addDataColumns(metadataColumn);
}
}
keyData.setMetadataColumns(columns);
}
return columns;
}
use of org.talend.designer.filemultischemas.data.MultiMetadataColumn in project tdi-studio-se by Talend.
the class MultiSchemasManager method createMultiSchemasColumns.
public void createMultiSchemasColumns(SchemasKeyData data, final IMetadataTable metadataTable) {
//
for (IMetadataColumn column : metadataTable.getListColumns()) {
MultiMetadataColumn multiColumn = new MultiMetadataColumn(data.getRecordType());
multiColumn.setContainer(data);
data.getMetadataColumns().add(multiColumn);
multiColumn.setComment(column.getComment());
multiColumn.setCustom(column.isCustom());
multiColumn.setCustomId(column.getCustomId());
multiColumn.setDefault(column.getDefault());
multiColumn.setId(column.getId());
multiColumn.setKey(column.isKey());
multiColumn.setLabel(column.getLabel());
multiColumn.setLength(column.getLength());
multiColumn.setNullable(column.isNullable());
multiColumn.setOriginalDbColumnName(column.getOriginalDbColumnName());
multiColumn.setPattern(column.getPattern());
multiColumn.setPrecision(column.getPrecision());
multiColumn.setReadOnly(column.isReadOnly());
multiColumn.setTalendType(column.getTalendType());
multiColumn.setType(column.getType());
}
}
use of org.talend.designer.filemultischemas.data.MultiMetadataColumn in project tdi-studio-se by Talend.
the class UIManager method validSchemaDetailsColumns.
public static String validSchemaDetailsColumns(final TreeViewer schemaDetailsViewer, final MultiMetadataColumn multiMetadataColumn, final EPropertyName property, final Object input) {
String mess = null;
if (input != null && input instanceof String) {
final String value = (String) input;
final String existedMessage = "The column name have existed.";
if (isFirstForColumnModel(property)) {
// for column model
IStructuredSelection selection = (IStructuredSelection) schemaDetailsViewer.getSelection();
if (selection != null) {
final Object firstElement = selection.getFirstElement();
if (firstElement != null && firstElement instanceof ColumnLineData) {
ColumnLineData lineData = (ColumnLineData) firstElement;
for (MultiMetadataColumn column : lineData.getKeyData().getMetadataColumnsInModel()) {
if (multiMetadataColumn != column && value.equals(column.getLabel())) {
mess = existedMessage;
break;
}
}
}
}
} else {
final String invalidInput = "Invalid input.";
switch(property) {
case // for property model.
NAME:
IStructuredSelection selection = (IStructuredSelection) schemaDetailsViewer.getSelection();
if (selection != null) {
final Object firstElement = selection.getFirstElement();
if (firstElement != null && firstElement instanceof MultiMetadataColumn) {
MultiMetadataColumn column = (MultiMetadataColumn) firstElement;
for (TreeItem item : schemaDetailsViewer.getTree().getItems()) {
final Object data = item.getData();
if (data != column && data instanceof MultiMetadataColumn) {
MultiMetadataColumn other = (MultiMetadataColumn) data;
if (value.equals(other.getLabel())) {
mess = existedMessage;
break;
}
}
}
}
}
if (mess == null && !value.matches(RepositoryConstants.CONTEXT_AND_VARIABLE_PATTERN)) {
mess = invalidInput;
}
break;
case LENGTH:
if (!value.matches(ExternalMultiSchemasUIProperties.NUMBER_PATTERN)) {
mess = invalidInput;
}
break;
}
}
}
return mess;
}
Aggregations