Search in sources :

Example 1 with DataValueAccessMethod

use of org.knime.core.data.convert.DataValueAccessMethod in project knime-core by knime.

the class DataCellToJavaConverterRegistry method parseAnnotations.

/*
     * Parse @DataCellFactoryMethod and @DataValueAccessMethod annotations
     */
private void parseAnnotations() {
    final Collection<DataType> availableDataTypes = DataTypeRegistry.getInstance().availableDataTypes();
    final Set<Class<? extends DataValue>> processedValueClasses = new HashSet<>();
    for (final DataType dataType : availableDataTypes) {
        for (final Class<? extends DataValue> valueClass : dataType.getValueClasses()) {
            if (processedValueClasses.contains(valueClass)) {
                // already parsed this value class
                continue;
            }
            // get methods annotated with DataValueAccessMethod
            final Collection<Pair<Method, DataValueAccessMethod>> methodsWithAnnotation = ClassUtil.getMethodsWithAnnotation(valueClass, DataValueAccessMethod.class);
            // register a converter for every DataValueAccessMethod annotation
            for (final Pair<Method, DataValueAccessMethod> pair : methodsWithAnnotation) {
                parseAnnotation(valueClass, pair.getFirst(), pair.getSecond());
            }
            processedValueClasses.add(valueClass);
        }
    }
}
Also used : CollectionDataValue(org.knime.core.data.collection.CollectionDataValue) DataValue(org.knime.core.data.DataValue) DataValueAccessMethod(org.knime.core.data.convert.DataValueAccessMethod) DataType(org.knime.core.data.DataType) Method(java.lang.reflect.Method) DataValueAccessMethod(org.knime.core.data.convert.DataValueAccessMethod) HashSet(java.util.HashSet) LinkedHashSet(java.util.LinkedHashSet) Pair(org.knime.core.util.Pair)

Aggregations

Method (java.lang.reflect.Method)1 HashSet (java.util.HashSet)1 LinkedHashSet (java.util.LinkedHashSet)1 DataType (org.knime.core.data.DataType)1 DataValue (org.knime.core.data.DataValue)1 CollectionDataValue (org.knime.core.data.collection.CollectionDataValue)1 DataValueAccessMethod (org.knime.core.data.convert.DataValueAccessMethod)1 Pair (org.knime.core.util.Pair)1