@Override void build(XMLEventReader reader, StartElement element, CsdlEnumType type, String name) throws XMLStreamException { if ("Member".equals(name)) { CsdlEnumMember member = new CsdlEnumMember(); member.setName(attr(element, "Name")); member.setValue(attr(element, "Value")); peekAnnotations(reader, name, member); type.getMembers().add(member); } else if ("Annotation".equals(name)) { readAnnotations(reader, element, type); } } }.read(reader, element, type, "Member", "Annotation");
@Override void build(XMLEventReader reader, StartElement element, CsdlEnumType type, String name) throws XMLStreamException { if ("Member".equals(name)) { CsdlEnumMember member = new CsdlEnumMember(); member.setName(attr(element, "Name")); member.setValue(attr(element, "Value")); peekAnnotations(reader, name, member); type.getMembers().add(member); } else if ("Annotation".equals(name)) { readAnnotations(reader, element, type); } } }.read(reader, element, type, "Member", "Annotation");
@Override protected CsdlEnumMember doDeserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException { final CsdlEnumMember member = new CsdlEnumMember(); for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) { final JsonToken token = jp.getCurrentToken(); if (token == JsonToken.FIELD_NAME) { if ("Name".equals(jp.getCurrentName())) { member.setName(jp.nextTextValue()); } else if ("Value".equals(jp.getCurrentName())) { member.setValue(jp.nextTextValue()); } else if ("Annotation".equals(jp.getCurrentName())) { jp.nextToken(); member.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class)); } } } return member; } }
@Override protected CsdlEnumMember doDeserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException { final CsdlEnumMember member = new CsdlEnumMember(); for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) { final JsonToken token = jp.getCurrentToken(); if (token == JsonToken.FIELD_NAME) { if ("Name".equals(jp.getCurrentName())) { member.setName(jp.nextTextValue()); } else if ("Value".equals(jp.getCurrentName())) { member.setValue(jp.nextTextValue()); } else if ("Annotation".equals(jp.getCurrentName())) { jp.nextToken(); member.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class)); } } } return member; } }
private List<CsdlEnumMember> buildMembers() throws ODataJPAModelException { final List<CsdlEnumMember> members = new ArrayList<>(); javaMembers = Arrays.asList(javaEnum.getEnumConstants()); for (final Object constants : javaMembers) { if (constants instanceof Enum) { final Enum<?> e = (Enum<?>) constants; CsdlEnumMember member = new CsdlEnumMember(); member.setName(e.name()); Number value = valueOf(e.toString()); if (determineIsFlag() && value.longValue() < 0L) // An Enumeration that is marked as Flag must not have a negative value: '%1$s - %2$s'. throw new ODataJPAModelException(MessageKeys.ENUMERATION_NO_NEGATIVE_VALUE, e.name(), javaEnum .getName()); member.setValue(String.valueOf(value)); members.add(member); } } return members; }