У меня совсем простой вопрос:
Скажем, у меня есть класс модели, определенный следующим образом:
public class Test{
private String testAttribute;
public Test(){
}
public String getFormattedTestAttribute(){
return testAttribute + "A nice formatted thingy"; //right, this is just an example
}
public void setTestAttribute(String value){
testAttribute = value;
}
}
Вы можете видеть, что у меня есть стандартный метод установки для testProperty, но метод получения имеет другое имя: getFormattedTestProperty().
Можно ли в Jaxb/Moxy указать, какой геттер использовать для определенного свойства?
Я использую реализацию MOXy с внешним файлом привязки метаданных. В проекте, над которым я работаю, используется Castor. В файлах сопоставления Castor вы можете указать, какой геттер/сеттер использовать следующим образом:
<field name="testAttribute"
get-method="getFormattedTestAttribute">
<bind-xml name="test-attribute" node="attribute"/>
</field>
Возможно ли то же самое с внешними метаданными moxy?
Если такая настройка не поддерживается, можно ли пометить одно поле как доступное только для чтения, а другое — только для записи? поэтому я мог бы объявить свойство только для чтения с именем «formattedTestAttribute» и свойство только для записи с именем «testAttribute» в файле привязок метаданных?
<!-- read only property -->
<xml-element java-attribute="formattedTestAttribute" xml-path="@test-attribute" />
<!-- write only property -->
<xml-element java-attribute="testAttribute" xml-path="@test-attribute" />
Обратите внимание, что у меня очень ограниченный контроль над классами моделей.
Заранее спасибо за ваши ответы.