getterGeneratorFactory function
Creates a GetterGenerator from an Element
that has an attribute of the form @XmlAttribute()
, @XmlElement()
, or @XmlText()
.
Implementation
GetterGenerator getterGeneratorFactory(Element element) {
if (element.hasXmlAttribute) {
if (element is FieldElement) {
return xmlAttributeGetterGeneratorFactory(element);
} else {
throw ArgumentError.value(
element,
'element',
'`@XmlAttribute()` can only be used on fields.',
);
}
} else if (element.hasXmlCDATA) {
if (element is FieldElement) {
return XmlCDATAGetterGenerator(isNullable: element.type.isNullable);
} else {
throw ArgumentError.value(
element,
'element',
'`@XmlCDATA()` can only be used on fields.',
);
}
} else if (element.hasXmlElement) {
if (element is FieldElement) {
return xmlElementGetterGeneratorFactory(element);
} else {
throw ArgumentError.value(
element,
'element',
'`@XmlElement()` can only be used on fields.',
);
}
} else if (element.hasXmlText) {
if (element is FieldElement) {
return XmlTextGetterGenerator(isNullable: element.type.isNullable);
} else {
throw ArgumentError.value(
element,
'element',
'`@XmlText()` can only be used on fields.',
);
}
}
throw ArgumentError.value(
element,
'element',
'`${element.name}` does not have a supported annotation. Add an annotation of the form `@XmlAttribute()`, `@XmlElement()`, or `@XmlText()` to `${element.name}`.',
);
}