Changeset 3134
- Timestamp:
- 02/03/12 15:05:24 (4 months ago)
- Location:
- AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/beans/datastructures
- Files:
-
- 2 edited
-
BuildListTransformer.java (modified) (2 diffs)
-
BuildMapTransformer.java (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/beans/datastructures/BuildListTransformer.java
r3102 r3134 27 27 import org.eobjects.analyzer.beans.api.Categorized; 28 28 import org.eobjects.analyzer.beans.api.Configured; 29 import org.eobjects.analyzer.beans.api.Description; 29 30 import org.eobjects.analyzer.beans.api.OutputColumns; 30 31 import org.eobjects.analyzer.beans.api.Transformer; … … 44 45 */ 45 46 @TransformerBean("Build list") 47 @Description("Build a list containing a variable amount of elements. Adds the capability to save multiple values in a single field.") 46 48 @Categorized(DataStructuresCategory.class) 47 49 public class BuildListTransformer implements Transformer<List<?>> { 48 50 49 private static final Logger logger = LoggerFactory.getLogger(BuildMapTransformer.class); 51 private static final Logger logger = LoggerFactory 52 .getLogger(BuildMapTransformer.class); 50 53 51 @Inject52 @Configured53 InputColumn<?>[] values;54 @Inject 55 @Configured 56 InputColumn<?>[] values; 54 57 55 @Inject 56 @Configured 57 boolean includeNullValues; 58 59 public void setIncludeNullValues(boolean includeNullValues) { 60 this.includeNullValues = includeNullValues; 61 } 62 63 public void setValues(InputColumn<?>[] values) { 64 this.values = values; 65 } 58 @Inject 59 @Configured 60 boolean includeNullValues; 66 61 67 @Override 68 public OutputColumns getOutputColumns() { 69 StringBuilder sb = new StringBuilder("List: "); 70 for (int i = 0; i < values.length; i++) { 71 String key = values[i].getName(); 72 sb.append(key); 73 if (sb.length() > 30) { 74 sb.append("..."); 75 break; 76 } 62 public void setIncludeNullValues(boolean includeNullValues) { 63 this.includeNullValues = includeNullValues; 64 } 77 65 78 if (i + 1 < values.length) { 79 sb.append(","); 80 } 81 } 82 OutputColumns outputColumns = new OutputColumns(new String[] { sb.toString() }, new Class[] { List.class }); 83 return outputColumns; 84 } 66 public void setValues(InputColumn<?>[] values) { 67 this.values = values; 68 } 85 69 86 @Override 87 public List<?>[] transform(InputRow row) { 88 final List<Object> list = new ArrayList<Object>(values.length); 89 for (InputColumn<?> column : values) { 90 final Object value = row.getValue(column); 91 if (!includeNullValues && value == null) { 92 logger.debug("Ignoring null value for {} in row: {}", column.getName(), row); 93 } else { 94 list.add(value); 95 } 96 } 70 @Override 71 public OutputColumns getOutputColumns() { 72 StringBuilder sb = new StringBuilder("List: "); 73 for (int i = 0; i < values.length; i++) { 74 String key = values[i].getName(); 75 sb.append(key); 76 if (sb.length() > 30) { 77 sb.append("..."); 78 break; 79 } 97 80 98 final List<?>[] result = new List[] { list }; 99 return result; 100 } 81 if (i + 1 < values.length) { 82 sb.append(","); 83 } 84 } 85 OutputColumns outputColumns = new OutputColumns( 86 new String[] { sb.toString() }, new Class[] { List.class }); 87 return outputColumns; 88 } 89 90 @Override 91 public List<?>[] transform(InputRow row) { 92 final List<Object> list = new ArrayList<Object>(values.length); 93 for (InputColumn<?> column : values) { 94 final Object value = row.getValue(column); 95 if (!includeNullValues && value == null) { 96 logger.debug("Ignoring null value for {} in row: {}", 97 column.getName(), row); 98 } else { 99 list.add(value); 100 } 101 } 102 103 final List<?>[] result = new List[] { list }; 104 return result; 105 } 101 106 102 107 } -
AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/beans/datastructures/BuildMapTransformer.java
r3102 r3134 48 48 @TransformerBean("Build key/value map") 49 49 @Alias("Build map") 50 @Description(" Transformer capable of building a map of keys and values")50 @Description("Build a map with a variable amount of keys and values. Adds the capability to store complex structures with named entries within it.") 51 51 @Categorized(DataStructuresCategory.class) 52 52 public class BuildMapTransformer implements Transformer<Map<String, ?>> { 53 53 54 private static final Logger logger = LoggerFactory.getLogger(BuildMapTransformer.class); 54 private static final Logger logger = LoggerFactory 55 .getLogger(BuildMapTransformer.class); 55 56 56 @Inject57 @Configured58 InputColumn<?>[] values;57 @Inject 58 @Configured 59 InputColumn<?>[] values; 59 60 60 @Inject61 @Configured62 String[] keys;61 @Inject 62 @Configured 63 String[] keys; 63 64 64 @Inject65 @Configured66 boolean retainKeyOrder = false;65 @Inject 66 @Configured 67 boolean retainKeyOrder = false; 67 68 68 @Inject69 @Configured70 boolean includeNullValues = false;69 @Inject 70 @Configured 71 boolean includeNullValues = false; 71 72 72 public void setIncludeNullValues(boolean includeNullValues) {73 this.includeNullValues = includeNullValues;74 }73 public void setIncludeNullValues(boolean includeNullValues) { 74 this.includeNullValues = includeNullValues; 75 } 75 76 76 public void setKeys(String[] keys) {77 this.keys = keys;78 }77 public void setKeys(String[] keys) { 78 this.keys = keys; 79 } 79 80 80 public void setRetainKeyOrder(boolean retainKeyOrder) {81 this.retainKeyOrder = retainKeyOrder;82 }81 public void setRetainKeyOrder(boolean retainKeyOrder) { 82 this.retainKeyOrder = retainKeyOrder; 83 } 83 84 84 public void setValues(InputColumn<?>[] values) {85 this.values = values;86 }85 public void setValues(InputColumn<?>[] values) { 86 this.values = values; 87 } 87 88 88 @Override89 public OutputColumns getOutputColumns() {90 StringBuilder sb = new StringBuilder("Map: ");91 for (int i = 0; i < keys.length; i++) {92 String key = keys[i];93 sb.append(key);94 if (sb.length() > 30) {95 sb.append("...");96 break;97 }89 @Override 90 public OutputColumns getOutputColumns() { 91 StringBuilder sb = new StringBuilder("Map: "); 92 for (int i = 0; i < keys.length; i++) { 93 String key = keys[i]; 94 sb.append(key); 95 if (sb.length() > 30) { 96 sb.append("..."); 97 break; 98 } 98 99 99 if (i + 1 < keys.length) { 100 sb.append(","); 101 } 102 } 103 OutputColumns outputColumns = new OutputColumns(new String[] { sb.toString() }, new Class[] { Map.class }); 104 return outputColumns; 105 } 100 if (i + 1 < keys.length) { 101 sb.append(","); 102 } 103 } 104 OutputColumns outputColumns = new OutputColumns( 105 new String[] { sb.toString() }, new Class[] { Map.class }); 106 return outputColumns; 107 } 106 108 107 @Override108 public Map<String, ?>[] transform(InputRow row) {109 final Map<String, Object> map;110 if (retainKeyOrder) {111 map = new LinkedHashMap<String, Object>();112 } else {113 map = new HashMap<String, Object>();114 }115 for (int i = 0; i < keys.length; i++) {116 final String key = keys[i];117 final Object value = row.getValue(values[i]);118 if (value == null && !includeNullValues) {119 logger.debug("Ignoring null value for {} in row: {}", key, row);120 } else {121 map.put(key, value);122 }123 }109 @Override 110 public Map<String, ?>[] transform(InputRow row) { 111 final Map<String, Object> map; 112 if (retainKeyOrder) { 113 map = new LinkedHashMap<String, Object>(); 114 } else { 115 map = new HashMap<String, Object>(); 116 } 117 for (int i = 0; i < keys.length; i++) { 118 final String key = keys[i]; 119 final Object value = row.getValue(values[i]); 120 if (value == null && !includeNullValues) { 121 logger.debug("Ignoring null value for {} in row: {}", key, row); 122 } else { 123 map.put(key, value); 124 } 125 } 124 126 125 @SuppressWarnings("unchecked")126 Map<String, ?>[] result = new Map[] { map };127 @SuppressWarnings("unchecked") 128 Map<String, ?>[] result = new Map[] { map }; 127 129 128 return result;129 }130 return result; 131 } 130 132 131 133 }
Note: See TracChangeset
for help on using the changeset viewer.
