public static InputColumn<?> getIdentifyingInputColumn(final ComponentJob o) {
        final ComponentDescriptor<?> descriptor = o.getDescriptor();
        if (descriptor instanceof BeanDescriptor) {
            final BeanDescriptor<?> beanDescriptor = (BeanDescriptor<?>) descriptor;
            final Set<ConfiguredPropertyDescriptor> inputProperties = beanDescriptor.getConfiguredPropertiesForInput(false);
            if (inputProperties.size() != 1) {
                return null;
            }
            
            final ConfigurableBeanJob<?> configurableBeanJob = (ConfigurableBeanJob<?>) o;
            
            final ConfiguredPropertyDescriptor inputProperty = inputProperties.iterator().next();
            final Object input = configurableBeanJob.getConfiguration().getProperty(inputProperty);

            if (input instanceof InputColumn) {
                final InputColumn<?> inputColumn = (InputColumn<?>) input;
                return inputColumn;
            } else if (input instanceof InputColumn[]) {
                final InputColumn<?>[] inputColumns = (InputColumn[]) input;
                if (inputColumns.length != 1) {
                    return null;
                }
                return inputColumns[0];
            }
            return null;
        }
        return null;
    }
public static InputColumn < ? > getIdentifyingInputColumn ( final ComponentJob o ) { final ComponentDescriptor < ? > descriptor = o . getDescriptor ( ) ; if ( descriptor instanceof BeanDescriptor ) { final BeanDescriptor < ? > beanDescriptor = ( BeanDescriptor < ? > ) descriptor ; final Set < ConfiguredPropertyDescriptor > inputProperties = beanDescriptor . getConfiguredPropertiesForInput ( false ) ; if ( inputProperties . size ( ) != 1 ) { return null ; } final ConfigurableBeanJob < ? > configurableBeanJob = ( ConfigurableBeanJob < ? > ) o ; final ConfiguredPropertyDescriptor inputProperty = inputProperties . iterator ( ) . next ( ) ; final Object input = configurableBeanJob . getConfiguration ( ) . getProperty ( inputProperty ) ; if ( input instanceof InputColumn ) { final InputColumn < ? > inputColumn = ( InputColumn < ? > ) input ; return inputColumn ; } else if ( input instanceof InputColumn [ ] ) { final InputColumn < ? > [ ] inputColumns = ( InputColumn [ ] ) input ; if ( inputColumns . length != 1 ) { return null ; } return inputColumns [ 0 ] ; } return null ; } return null ; }
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 o
@return