1 package us.codecraft.webmagic.model.fields; 2 3 import java.lang.reflect.InvocationTargetException; 4 5 import org.slf4j.Logger; 6 7 import lombok.Getter; 8 import us.codecraft.webmagic.model.FieldExtractor; 9 10 public class SingleField extends PageField { 11 @Getter 12 private String fieldName; 13 14 public SingleField(String fieldName) { 15 this.fieldName = fieldName; 16 } 17 18 public boolean operation(Object o, FieldExtractor fieldExtractor, Logger logger) throws IllegalAccessException, InvocationTargetException { 19 if (fieldExtractor.getObjectFormatter() != null) { 20 Object converted = this.convert(this.fieldName, fieldExtractor.getObjectFormatter(), logger); 21 if (converted == null && fieldExtractor.isNotNull()) 22 return false; 23 setField(o, fieldExtractor, converted); 24 } else 25 setField(o, fieldExtractor, this.fieldName); 26 return true; 27 } 28 }