protected Object getValue(final ConfiguredPropertyDescriptor propertyDescriptor, final ComponentConfiguration componentConfiguration) { final Object value = componentConfiguration.getProperty(propertyDescriptor); logger.debug("Property '{}' in configuration: {}", propertyDescriptor.getName(), value); return value; } }
private Stream<InputColumn<?>> getInputColumns(ComponentJob componentJob, ConfiguredPropertyDescriptor property) { final Object value = componentJob.getConfiguration().getProperty(property); if (value instanceof InputColumn) { return Arrays.stream(new InputColumn[] { (InputColumn<?>) value }); } if (value instanceof InputColumn[]) { Arrays.stream((InputColumn[]) value); } if (value instanceof List) { @SuppressWarnings("unchecked") final List<InputColumn<?>> list = (List<InputColumn<?>>) value; return list.stream(); } return Stream.empty(); } }
@SuppressWarnings("unchecked") private static <T> List<T> getProperties(final ComponentJob component, final ConfiguredPropertyDescriptor descriptor) { if (descriptor.isArray()) { return Arrays.asList(((T[]) component.getConfiguration().getProperty(descriptor))); } else { return Collections.singletonList((T) component.getConfiguration().getProperty(descriptor)); } }
@Override public final InputColumn<?>[] getInput() { final List<InputColumn<?>> result = new ArrayList<>(); final Set<ConfiguredPropertyDescriptor> propertiesForInput = _descriptor.getConfiguredPropertiesForInput(); for (final ConfiguredPropertyDescriptor propertyDescriptor : propertiesForInput) { final Object property = _beanConfiguration.getProperty(propertyDescriptor); final InputColumn<?>[] inputs = CollectionUtils2.arrayOf(InputColumn.class, property); if (inputs != null) { for (final InputColumn<?> inputColumn : inputs) { result.add(inputColumn); } } } return result.toArray(new InputColumn<?>[result.size()]); }
/** * Gets the identifying input column of an {@link ComponentJob}, if there is * such a column. With an identifying input column, a externalizable * reference to the {@link ComponentJob} can be build, based on the * descriptor name, component name and the identifying column. * * @param componentJob * @return */ public static InputColumn<?> getIdentifyingInputColumn(final ComponentJob componentJob) { final ComponentDescriptor<?> descriptor = componentJob.getDescriptor(); final Set<ConfiguredPropertyDescriptor> inputProperties = descriptor.getConfiguredPropertiesForInput(false); if (inputProperties.size() != 1) { return null; } final ConfiguredPropertyDescriptor inputProperty = inputProperties.iterator().next(); final Object input = componentJob.getConfiguration().getProperty(inputProperty); if (input instanceof InputColumn) { return (InputColumn<?>) input; } else if (input instanceof InputColumn[]) { final InputColumn<?>[] inputColumns = (InputColumn[]) input; if (inputColumns.length != 1) { return null; } return inputColumns[0]; } return null; }
public List<String> getInputColumnNames(AnalyzerJob analyzerJob) { final List<String> columnNames = new ArrayList<String>(); final Set<ConfiguredPropertyDescriptor> inputProperties = analyzerJob.getDescriptor() .getConfiguredPropertiesForInput(false); for (ConfiguredPropertyDescriptor inputProperty : inputProperties) { final Object input = analyzerJob.getConfiguration().getProperty(inputProperty); if (input instanceof InputColumn) { String columnName = ((InputColumn<?>) input).getName(); columnNames.add(columnName); } else if (input instanceof InputColumn[]) { InputColumn<?>[] inputColumns = (InputColumn<?>[]) input; for (InputColumn<?> inputColumn : inputColumns) { String columnName = inputColumn.getName(); if (!columnNames.contains(columnName)) { columnNames.add(columnName); } } } } return columnNames; }
@Override public Map<String, String> getVariables() { final Map<String, String> variables = new LinkedHashMap<String, String>(); final ComponentDescriptor<?> descriptor = getDescriptor(); final ComponentConfiguration beanConfiguration = getComponentConfiguration(null); final Set<ConfiguredPropertyDescriptor> properties = descriptor.getConfiguredProperties(); final StringConverter stringConverter = new StringConverter(_injectionManager); for (ConfiguredPropertyDescriptor configuredProperty : properties) { Object value = beanConfiguration.getProperty(configuredProperty); String valueString = null; try { final Converter<?> customConverter = configuredProperty.createCustomConverter(); valueString = stringConverter.serialize(value, customConverter); } catch (Exception e) { if (logger.isWarnEnabled()) { logger.warn("Could not serialize value " + value + " to string, returning null variable value", e); } else { logger.info("Could not serialize value {} to string, returning null variable value", value); } } variables.put(configuredProperty.getName(), valueString); } return variables; }
@Override public void setConfiguredProperties(final ComponentConfiguration configuration) { boolean changed = false; final Set<ConfiguredPropertyDescriptor> properties = getDescriptor().getConfiguredProperties(); for (final ConfiguredPropertyDescriptor property : properties) { final Object value = configuration.getProperty(property); final boolean changedValue = setConfiguredPropertyIfChanged(property, value); if (changedValue) { changed = true; } } if (changed) { onConfigurationChanged(); } }
propertyType.setTemplate(componentMetadataProperties.get(variableNameWithTemplatePrefix)); } else { final Object value = configuration.getProperty(property); final String stringValue = stringConverter.serialize(value, property.createCustomConverter());
for (final ConfiguredPropertyDescriptor property : configuredProperties) { if (property.isInputColumn()) { final Object value = configuration.getProperty(property); if (value != null) { final InputColumn<?>[] columns;
componentJob.getConfiguration().getProperty(inputColumnProperty); final Object newInputColumnValue = findImportedInputColumns(originalInputColumnValue, componentBuilders, sourceColumnFinder);
.getConfiguration().getProperty(componentJob.getDescriptor().getConfiguredProperty( "Group column")) == null)) { logger.warn("Pattern finder analyzer doesn't support metrics if it has a Group column configured.");