Skip to content

Instantly share code, notes, and snippets.

@momolinus
Last active August 29, 2015 14:26
Show Gist options
  • Save momolinus/5104fa890936d0cd58dd to your computer and use it in GitHub Desktop.
Save momolinus/5104fa890936d0cd58dd to your computer and use it in GitHub Desktop.
sample simple-framework, repeated elements
import java.util.ArrayList;
import org.simpleframework.xml.*;
import org.simpleframework.xml.core.Persister;
public class SkipDoubleElements {
static class RepeatElements {
@ElementListUnion({ @ElementList(entry = "enable", type = Boolean.class, inline = true) })
private ArrayList<Boolean> enables = new ArrayList<>();
public boolean isEnabled() {
// TODO check size
return enables.get(0).booleanValue();
}
public RepeatElements() {
enables.add(Boolean.valueOf(true));
enables.add(Boolean.valueOf(true));
enables.add(Boolean.valueOf(true));
}
}
@Root(strict = false)
static class RepeatElements2 {
@Element(required = false)
protected boolean enable = true;
@Override
public String toString() {
return "RepeatElements2 [enable=" + enable + "]";
}
}
public static void main(String[] args) {
Serializer serializer = new Persister();
String repeat2Inavlid =
"<repeatElements2>" +
"<enable>true</enable>" +
"<enable>true</enable>" +
"<enable>true</enable>" +
"</repeatElements2>";
String repeat2Valid =
"<repeatElements2>" +
"<enable>false</enable>" +
"</repeatElements2>";
String repeat2Valid0 =
"<repeatElements2>" +
"</repeatElements2>";
try {
serializer.write(new RepeatElements(), System.out);
RepeatElements2 vaildRepeat = serializer.read(RepeatElements2.class, repeat2Valid);
System.out.println("\n" + vaildRepeat);
RepeatElements2 vaildRepeat0 = serializer.read(RepeatElements2.class, repeat2Valid0);
System.out.println("\n" + vaildRepeat0);
// throws an Exception
RepeatElements2 inVaildRepeat = serializer.read(RepeatElements2.class, repeat2Inavlid);
System.out.println("\n" + inVaildRepeat);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment