package org.fluentlenium.core.inject; import org.fluentlenium.core.annotation.Label; import org.fluentlenium.core.annotation.LabelHint; import org.fluentlenium.core.label.FluentLabelProvider; import java.lang.reflect.Field; /** * Parse {@link Label} and {@link LabelHint} annotation from field. */ public class LabelAnnotations implements FluentLabelProvider { private String label; private String[] labelHints; /** * Creates a new label annotations object. * * @param field field to parse */ public LabelAnnotations(Field field) { Label labelAnno = field.getAnnotation(Label.class); if (labelAnno != null) { label = labelAnno.value(); if (label.isEmpty()) { label = field.getDeclaringClass().getSimpleName() + "." + field.getName(); } } LabelHint labelHint = field.getAnnotation(LabelHint.class); if (labelHint != null) { labelHints = labelHint.value(); } } @Override public String getLabel() { return label; } @SuppressWarnings("PMD.MethodReturnsInternalArray") @Override public String[] getLabelHints() { return labelHints; } }