package com.airbnb.epoxy; import com.squareup.javapoet.TypeName; import javax.lang.model.element.ExecutableElement; import javax.lang.model.element.VariableElement; import static com.airbnb.epoxy.Utils.removeSetPrefix; class DataBindingAttributeInfo extends AttributeInfo { DataBindingAttributeInfo(DataBindingModelInfo modelInfo, ExecutableElement setterMethod, HashCodeValidator hashCodeValidator) { VariableElement paramElement = setterMethod.getParameters().get(0); this.name = removeSetPrefix(setterMethod.getSimpleName().toString()); typeName = TypeName.get(paramElement.asType()); typeMirror = paramElement.asType(); modelName = modelInfo.getGeneratedName().simpleName(); modelPackageName = modelInfo.getGeneratedName().packageName(); useInHash = hashCodeValidator.implementsHashCodeAndEquals(typeMirror); ignoreRequireHashCode = false; generateSetter = true; generateGetter = true; hasFinalModifier = false; packagePrivate = false; isGenerated = true; } }