@NotNull
public FieldWithInitializationInfo getFieldWithInitializationInfo( @NotNull FieldDeclaration fieldDeclaration ) {
MethodDeclaration getterDeclaration = DomainObjectDescriptor.findGetterForField( classDeclaration, fieldDeclaration );
try {
ConstructorCallInfo constructorCallInfo = findConstructorCallInfoForField( fieldDeclaration );
return new FieldInitializedInConstructorInfo( fieldDeclaration, getterDeclaration, constructorCallInfo );
} catch ( IllegalArgumentException ignore ) {
MethodDeclaration setter = DomainObjectDescriptor.findSetter( classDeclaration, fieldDeclaration );
return new FieldInitializedInSetterInfo( fieldDeclaration, getterDeclaration, setter );
}