package org.test4j.datafilling.filler; import java.lang.annotation.Annotation; import org.test4j.datafilling.Filler; import org.test4j.datafilling.annotations.FillString; import org.test4j.datafilling.common.AttributeInfo; import org.test4j.datafilling.strategy.DataFactory; public class StringFiller extends Filler { public StringFiller(DataFactory strategy) { super(strategy, null); } private FillString getFilling(AttributeInfo attribute) { for (Annotation annotation : attribute.getAttrAnnotations()) { if (!FillString.class.isAssignableFrom(annotation.getClass())) { continue; } FillString filling = (FillString) annotation; return filling; } return null; } /** * It creates and returns a String value, eventually customised by * annotations * * @param attributeMetadata * @return a String value, eventually customised by annotations * @throws Exception */ public String fillingString(AttributeInfo attribute) throws Exception { FillString filling = this.getFilling(attribute); if (filling == null) { return strategy.getStringValue(null); } else { if (filling.value() != null && filling.value().length() > 0) { return filling.value(); } else { return strategy.getStringOfLength(filling.length(), null); } } } }