Currently, to get a custom field object or value, I use such approach:
MutableIssue issue = issue
Long someCustomFieldId = 10206L
def object(Long customFieldId) {
ComponentAccessor.customFieldManager.getCustomFieldObject(customFieldId)
}
def value(Long customFieldId) {
issue.getCustomFieldValue(object(customFieldId))
}
return "Field object: ${object(someCustomFieldId)}, field value: ${value(someCustomFieldId)}"
But instead of calling object(someCustomFieldId) and value(someCustomFieldId), I want to use someCustomFieldId.object and someCustomFieldId.value
For implementing, I have created a class
class Field {
Long customFieldId
final object
final value
Field(customFieldId) {
this.customFieldId = customFieldId
}
def getObject() {
ComponentAccessor.getCustomFieldManager().getCustomFieldObject(customFieldId)
}
def getValue() {
issue.getCustomFieldValue(getObject())
}
}
def someCustomField = new Field(11002L)
Calling someCustomField.object returns a custom field object, but calling someCustomField.value does not return any value.
An error occurred:
Message:
groovy.lang.MissingPropertyException: No such property: issue for class: Field
Possible solutions: value
How to get current issue object in a custom class?