Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jira Can';我不明白,getSingularObjectFromString方法是做什么的?_Jira_Jira Plugin - Fatal编程技术网

Jira Can';我不明白,getSingularObjectFromString方法是做什么的?

Jira Can';我不明白,getSingularObjectFromString方法是做什么的?,jira,jira-plugin,Jira,Jira Plugin,我正在JIRA中开发自己的自定义字段类型。 我的类非常简单,它扩展了GenericTextCFType。 我的目标是在数据库中存储字段值的一些标识符(ID),但在问题表单上显示字段值的可读标题 我搜索了GenericTextCFType类的方法,找到了方法getSingularObjectFromString,但我不明白它是做什么的。 jirajavadoc说:“给定表示层传递的字符串值,返回单个对象” 但是什么是单一的物体,它需要什么呢?是的,它不是一个好名字。我在“实用JIRA插件”中详细地

我正在JIRA中开发自己的自定义字段类型。 我的类非常简单,它扩展了GenericTextCFType。 我的目标是在数据库中存储字段值的一些标识符(ID),但在问题表单上显示字段值的可读标题

我搜索了GenericTextCFType类的方法,找到了方法getSingularObjectFromString,但我不明白它是做什么的。 jirajavadoc说:“给定表示层传递的字符串值,返回单个对象”
但是什么是单一的物体,它需要什么呢?

是的,它不是一个好名字。我在“实用JIRA插件”中详细地描述了它 (奥雷利)。这里有一个摘录,详细描述了许多方法(很抱歉格式化)。这本书还提供了在

自定义字段类型方法 该示例的自定义字段类型类将像往常一样实现CustomFieldType接口,但将扩展继承层次结构中高于NumberCFType的类。我们将扩展的类是AbstractCustomFieldType,它是实现CustomFieldType的大多数类的根

CustomFieldType接口中名称为“SingularObject”的方法指的是singular对象,在本例中为Carrier对象。JIRA 4自定义字段中引用对象的所有其他方法都引用传输对象,例如,承运人对象的集合。JIRA5删除了大多数自定义字段方法中对象的使用。 有关JIRA 5.0中使用自定义字段所做更改的更多信息,请参阅。在类层次结构中有一些主要的变化,大多数类现在都有一个Java泛型作为参数,而不是像以前那样只使用对象

有两个对象通常被注入自定义字段类型的类的构造函数中。第一个是CustomFieldValuePersister持久化对象,它将实际与数据库交互。第二个是GenericConfigManager对象,用于存储和检索自定义字段的默认值。根据需要将其他对象注入构造函数,例如,示例2-2中的DoubleConverter。 要考虑的第一组方法是自定义字段类型以某种方式与数据库交互的方法。

getSingularObjectFromString()
此方法将从数据库获取的字符串(如“42.0#####答案”)转换为载体对象。空值表示没有定义此类对象

具有多个值的字段

Collection<Carrier> getValueFromIssue(CustomField field, Issue issue)
在许多自定义字段类型类中发现的私有便利方法,有时使用不同的名称。它用于将传输对象(例如,载体对象的集合)转换为字符串集合以存储在数据库中

setDefaultValue(FieldConfig fieldConfig, Collection<Carrier> value)
这是用户编辑自定义字段值后调用的第一个方法。此处记录的任何错误都将很好地显示在编辑页面的字段旁边

getValueFromCustomFieldParams(CustomFieldParams customFieldParams)
此方法用于清除已被validate FromParams接受的字段的新值并将其转换为传输对象。自定义FieldParams对象将仅包含HTML元素的字符串,该HTML元素的名称属性为自定义字段ID,例如customfield_10010。空值表示此字段没有值

getStringValueFromCustomFieldParams(CustomFieldParams parameters)
此方法返回的对象可能是字符串、字符串集合,甚至是CustomFieldParams对象。它用于填充第3章:高级自定义字段类型Velocity模板中使用的值变量。它还用于自定义字段搜索器使用的提供程序类

String getStringFromSingularObject(Carrier singularObject)
此方法与getSingularObjectFromString并不是您所期望的直接相反。相反,它用于将单个对象(载体)转换为网页中使用的字符串,而不是数据库值。返回的字符串有时也是存储在Lucene索引中用于搜索的字符串(“第57页的“更复杂的搜索者”)。奇异对象在JIRA 5.0之前作为对象传递到该方法中

考虑的CuffFieldType方法的最后一个集合是:

Set<Long> remove(CustomField field)
这些方法是如何生成问题的“历史记录”选项卡中显示的文本。当此类型的自定义字段更改时,将使用该字段的before和after值调用这些方法。这两种方法之间的区别在于,如果值后来变得无效,则将显示字符串()

这些方法不是来自CustomFieldType接口,而是存在于标准多字段中,供项目导入期间使用

其他接口

Collection<Carrier> getValueFromIssue(CustomField field, Issue issue)
还有一些其他接口通常由自定义字段类型实现

ProjectImportableCustomField
此接口中的getProjectImporter方法用于实现从XML备份导入项目期间如何填充自定义字段。如果未实现此接口,则项目导入将不会导入自定义字段的值

MultipleCustomFieldType
MultipleSettableCustomFieldType
这两个接口由带有选项的自定义字段使用,而且可以有多个选项。对于这些类,可以使用Options类访问这些值,Options类是Java列表的一个简单子类。这些接口并非真正用于通用多值自定义字段类型

ProjectImportableCustomField
具有多个值的字段| 41

SortableCustomField
此接口包含用于比较两个单一对象的比较方法。当您单击列标题对问题页面进行排序时,问题导航器将使用此选项。对于没有关联搜索者的自定义字段,这实际上是一个较慢的回退(参见第4章)


这两个接口是jirarestapi如何知道哪些字段可以检索或更新的。JIRA 5.0新增功能。

请阅读此问题,因为它是相关的,我仍然感到困惑。
extractTransferObjectFromString()
extractStringFromTransferObject()
ProjectImportableCustomField
MultipleCustomFieldType
MultipleSettableCustomFieldType
SortableCustomField
RestAwareCustomFieldType
RestCustomFieldTypeOperations