List of usage examples for org.apache.solr.handler.dataimport Context getAllEntityFields
public abstract List<Map<String, String>> getAllEntityFields();
From source file:de.dlr.knowledgefinder.dataimport.utils.transformer.ArrayToStringTransformer.java
License:Apache License
@Override public Object transformRow(Map<String, Object> row, Context context) { for (Map<String, String> map : context.getAllEntityFields()) { String column = map.get(DataImporter.COLUMN); String source = map.get(ARRAY_SOURCE_DATA_FIELD); if (source != null && row.containsKey(source) && row.get(source) != null) { try { String result = ""; if (row.get(source) instanceof Object[]) { Object[] array = (Object[]) row.get(source); result = StringUtils.join(array, ", "); } else result = row.get(source).toString(); row.put(column, result); } catch (Exception e) { LOG.warn(e.toString());/* ww w . j ava 2 s .com*/ } } } return row; }
From source file:de.dlr.knowledgefinder.dataimport.utils.transformer.AuthorFormatingTransformer.java
License:Apache License
@Override public Object transformRow(Map<String, Object> row, Context context) { for (Map<String, String> map : context.getAllEntityFields()) { String boolStr = map.get(BOOL_FORMAT_DATA_FIELD); String columnField = map.get(DataImporter.COLUMN); String srcCol = map.get(SRC_COL); if (srcCol == null) { srcCol = columnField;/*w ww . java2s . c om*/ } if (boolStr == null || !boolStr.equalsIgnoreCase("true") || row.get(srcCol) == null) continue; Object currentValueOfTheSourceField = row.get(srcCol); List<Object> listOfCurrentValues = new ArrayList<Object>(); if (currentValueOfTheSourceField == null) return row; if (currentValueOfTheSourceField instanceof Object[]) listOfCurrentValues.addAll(Arrays.asList((Object[]) currentValueOfTheSourceField)); else listOfCurrentValues.add(currentValueOfTheSourceField); List<String> authors = new ArrayList<String>(); for (Object value : listOfCurrentValues) { if (value instanceof Map<?, ?>) { String author = createAuthorString(value); if (author.length() > 0) authors.add(author); } } Object[] arrayResult = authors.toArray(new Object[authors.size()]); row.put(columnField, arrayResult); } return row; }
From source file:de.dlr.knowledgefinder.dataimport.utils.transformer.DateIncompleteFormatTransformer.java
License:Apache License
public Map<String, Object> transformRow(Map<String, Object> row, Context context) { for (Map<String, String> map : context.getAllEntityFields()) { String column = map.get(DataImporter.COLUMN); String startEnd = map.get(DATE_TIME_PARSE); String srcCol = map.get(SRC_COL_NAME); String dateRegex = map.get(DATE_INCOMPLETE_REGEX); if (startEnd == null || dateRegex == null) continue; if (!startEnd.equals(DATE_END) && !startEnd.equals(DATE_START)) throw new IllegalArgumentException(DATE_TIME_PARSE + " muss be " + DATE_END + " or " + DATE_START + "(Current value " + startEnd + ")"); srcCol = srcCol == null ? column : srcCol; try {//from w w w. j a v a 2 s .co m Object currentRowValue = row.get(srcCol); if (currentRowValue instanceof Object[]) { List<Object> values = new ArrayList<Object>(); values.addAll(Arrays.asList((Object[]) currentRowValue)); List<Date> results = new ArrayList<Date>(); for (Object input : values) { results.add(process(input, startEnd, dateRegex)); } row.put(column, results); } else { if (currentRowValue != null) { row.put(column, process(currentRowValue, startEnd, dateRegex)); } } } catch (Exception e) { LOG.warn(e.getMessage()); } } return row; }
From source file:de.dlr.knowledgefinder.dataimport.utils.transformer.DateToStringTransformer.java
License:Apache License
@Override public Object transformRow(Map<String, Object> row, Context context) { for (Map<String, String> map : context.getAllEntityFields()) { String column = map.get(DataImporter.COLUMN); String pattern = map.get(FORMATING_PATTERN); String srcField = map.get(SRC_COL); String localeString = map.get(LOCALE_FIELD); Locale convertingLocale;/* w w w .j a va 2 s . c o m*/ if (pattern == null) { continue; } if (srcField == null) { srcField = column; } if (localeString == null) { convertingLocale = Locale.getDefault(); } else { convertingLocale = new Locale(localeString); } Object columnContent = row.get(srcField); if (columnContent instanceof Date) { row.put(column, new SimpleDateFormat(pattern, convertingLocale).format((Date) columnContent)); } } return row; }
From source file:de.dlr.knowledgefinder.dataimport.utils.transformer.DictToStringTransformer.java
License:Apache License
@Override public Object transformRow(Map<String, Object> row, Context context) { for (Map<String, String> map : context.getAllEntityFields()) { String formatPatternString = map.get(FORMAT_DATA_FIELD); String targetField = map.get(DataImporter.COLUMN); String sourceField = map.get(SOURCE); if (sourceField == null) sourceField = targetField;/*from w ww .j a va 2 s .c o m*/ Object origData = row.get(sourceField); if (formatPatternString == null || origData == null) continue; List<Object> values = new ArrayList<Object>(); if (origData instanceof Object[]) values.addAll(Arrays.asList((Object[]) origData)); else values.add(origData); String[] formatPattern = formatPatternString.split("[\\{\\}]"); List<String> formatedData = new ArrayList<String>(); for (Object value : values) { if (value instanceof Map<?, ?>) { addStringToFormatedList(formatedData, formatPattern, value); } } Object[] arrayResult = formatedData.toArray(new Object[formatedData.size()]); row.put(targetField, arrayResult); } return row; }
From source file:de.dlr.knowledgefinder.dataimport.utils.transformer.FilePathTransformer.java
License:Apache License
@Override public Object transformRow(Map<String, Object> row, Context context) { for (Map<String, String> map : context.getAllEntityFields()) { String column = map.get(DataImporter.COLUMN); String pathPrefix = map.get(PATH_PREFIX_FIELD); String targetColumn = map.get(TARGET_COLUMN_FIELD); String suffix = map.get(SUFFIX_FIELD); String oldSuffix = map.get(OLD_SUFFIX_FIELD); String fileCol = map.get(FILE_NAME_COLUMN); fileCol = fileCol == null ? column : fileCol; if (pathPrefix == null || row.get(fileCol) == null) continue; String fileName = row.get(fileCol).toString(); if (oldSuffix != null && !oldSuffix.equalsIgnoreCase("")) { fileName = fileName.replaceAll(oldSuffix + "[ \t]*$", suffix); } else if (suffix != null) { fileName += suffix;//from ww w.j a va 2 s .c o m } pathPrefix = pathPrefix.trim(); fileName = fileName.trim(); if (pathPrefix != "" && !pathPrefix.endsWith("/")) pathPrefix += "/"; if (targetColumn == null) row.put(column, pathPrefix + fileName); else row.put(targetColumn, pathPrefix + fileName); LOG.info(pathPrefix + fileName); } return row; }
From source file:de.dlr.knowledgefinder.dataimport.utils.transformer.FormatingStringTransformer.java
License:Apache License
@Override public Object transformRow(Map<String, Object> row, Context context) { for (Map<String, String> map : context.getAllEntityFields()) { String formatPatternString = map.get(FORMAT_DATA_FIELD); String sourceField = map.get(SOURCE); String targetField = map.get(DataImporter.COLUMN); if (sourceField == null) sourceField = targetField;/*from w ww . j a va 2 s . co m*/ Object origData = row.get(sourceField); if (formatPatternString == null || origData == null) continue; List<Object> values = new ArrayList<Object>(); if (origData instanceof Object[]) values.addAll(Arrays.asList((Object[]) origData)); else values.add(origData); List<String> formatedData = new ArrayList<String>(); for (Object value : values) { String formatedEntry = formatPatternString.replaceAll("\\{\\*}", value.toString()); if (formatedEntry.length() > 0) formatedData.add(formatedEntry); } Object[] arrayResult = formatedData.toArray(new Object[formatedData.size()]); row.put(targetField, arrayResult); } return row; }
From source file:de.dlr.knowledgefinder.dataimport.utils.transformer.IntToDateTransformer.java
License:Apache License
@Override public Object transformRow(Map<String, Object> row, Context context) { for (Map<String, String> map : context.getAllEntityFields()) { String column = map.get(DataImporter.COLUMN); String boolStr = map.get(BOOL_CONVERT_DATA_FIELD); if (boolStr == null || !boolStr.equalsIgnoreCase("true") || row.get(column) == null) continue; try {/*from ww w . ja v a 2 s . c om*/ int dateInSeconds = Integer.parseInt(row.get(column).toString()); Date transformedDate = new Date(dateInSeconds * secondToMilisecondMultiplier); row.put(column, transformedDate); } catch (Exception e) { LOG.warn(e.getMessage()); } } return row; }
From source file:de.dlr.knowledgefinder.dataimport.utils.transformer.SelectLatestDateTransformer.java
License:Apache License
@Override public Object transformRow(Map<String, Object> row, Context context) { for (Map<String, String> map : context.getAllEntityFields()) { String column = map.get(DataImporter.COLUMN); String sourcesStr = map.get(DATA_LIST_FIELD); if (sourcesStr == null) continue; String[] sources = sourcesStr.split(","); ArrayList<Date> dates = new ArrayList<Date>(); for (int is = 0; is < sources.length; is++) { try { Object tmpVal = row.get(sources[is].trim()); if (tmpVal != null && tmpVal.toString().length() > 0) if (tmpVal instanceof Date) dates.add((Date) tmpVal); else dates.add(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.ENGLISH) .parse(tmpVal.toString())); } catch (Exception e) { LOG.warn(e.getMessage()); }// ww w . ja v a 2 s .c o m } if (dates.size() > 0) { Collections.sort(dates); row.put(column, dates.get(dates.size() - 1)); } else { LOG.warn("There are no valid dates set"); } } return row; }
From source file:de.dlr.knowledgefinder.dataimport.utils.transformer.TrimTransformer.java
License:Apache License
@Override public Object transformRow(Map<String, Object> row, Context context) { for (Map<String, String> map : context.getAllEntityFields()) { String column = map.get(DataImporter.COLUMN); String doTrim = map.get(TRIM_DATA_FIELD); if (Boolean.parseBoolean(doTrim) == true) { try { if (row.get(column) instanceof Object[]) { Object[] array = (Object[]) row.get(column); String[] result = new String[array.length]; for (int i = 0; i < array.length; i++) { result[i] = array[i].toString().trim(); }//w ww .j ava 2s . co m row.put(column, result); } else row.put(column, row.get(column).toString().trim()); } catch (Exception e) { LOG.warn(e.toString()); } } } return row; }