Satz implements Cloneable { protected static List<MetaFeldInfo> getMetaFeldInfos(final Enum[] felder) { List<MetaFeldInfo> metaFeldInfos = new ArrayList<>(felder.length); for (Enum f : felder) { String name = f.name(); try { Field field = f.getClass().getField(name); FelderInfo info = field.getAnnotation(FelderInfo.class); if (info == null) { metaFeldInfos.add(new MetaFeldInfo(f)); } else { metaFeldInfos.addAll(getMetaFeldInfos(info)); } } catch (NoSuchFieldException nsfe) { throw new InternalError("no field " + name + " (" + nsfe + ")"); } } return metaFeldInfos; } protected  Satz(final int art); protected  Satz(final String art); protected  Satz(final NumFeld art);  Satz(final NumFeld art, final int n);  Satz(final String content, final int n);  Satz(final int art, final int n);  Satz(final int art, final List<? extends Teildatensatz> tdsList); final List<Teildatensatz> getTeildatensaetze(); final int getNumberOfTeildatensaetze(); final Teildatensatz getTeildatensatz(final int n); final void removeAllTeildatensaetze(); final void removeTeildatensatz(final int n); final void add(final Teildatensatz tds); void add(final Feld feld); void add(final Feld feld, final int teildatensatzNr); void addFiller(); void remove(final String name); void remove(final Bezeichner bezeichner); void set(final String name, final String value); void set(final Bezeichner name, final String value); final void set(final Enum feldX, final String value); final void set(final Enum feldX, final Integer value); final void set(final Enum feldX, final Character value); final String get(final String name); final String get(final Bezeichner bezeichner); final String get(final Enum feldX); Feld getFeld(final Enum feld); Feld getFeldSafe(final Enum feld); Feld containsFeld(final String name); Feld getFeld(final String name); Feld getFeldSafe(final String name); boolean hasFeld(final Bezeichner bezeichner); Feld getFeld(final Bezeichner bezeichner); Feld getFeldSafe(final Bezeichner bezeichner); final String getFeldInhalt(final Bezeichner bezeichner); final Feld getFeld(final Bezeichner bezeichner, final int nr); final Feld getFeld(final String name, final int nr); final String getFeldInhalt(final String name, final int nr); final NumFeld getSatzartFeld(); final int getSatzart(); @JsonIgnore final SatzTyp getSatzTyp(); boolean hasSparte(); boolean hasWagnisart(); boolean hasKrankenFolgeNr(); @JsonIgnore int getSparte(); @JsonIgnore final String getWagnisart(); void export(final Writer writer); void export(final File file); void export(final Writer writer, final String eod); void export(final OutputStream ostream); void importFrom(final String s); void importFrom(final File file); final void importFrom(final InputStream istream); final void importFrom(final Reader reader); void importFrom(final PushbackLineNumberReader reader); static int readSatzart(final PushbackLineNumberReader reader); boolean isValid(); List<ConstraintViolation> validate(); @Override final String toString(); String toShortString(); String toLongString(); @Override boolean equals(final Object obj); @Override int hashCode(); Collection<Feld> getFelder(); static Character readSatznummer(final PushbackReader reader); static char readSatznummer(char[] cbuf); static boolean isNumber(String string); @SuppressWarnings("squid:S2975") @Override Object clone();  }
@Test public void testGetAsListSimple() { List<MetaFeldInfo> feldInfos = Satz.getMetaFeldInfos(Feld200.values()); assertFalse("empty list", feldInfos.isEmpty()); LOG.info("Feld200 has " + feldInfos.size() + " FeldInfos."); assertTrue("Feld200 should have more than " + Feld200.values().length + " entries", feldInfos.size() >= Feld200.values().length); }
@Test public void testGetAsListComposite() { List<MetaFeldInfo> feldInfos = Satz.getMetaFeldInfos(Feld220.values()); assertFalse("empty list", feldInfos.isEmpty()); LOG.info(Feld220.class.getName() + " has " + feldInfos.size() + " FeldInfos."); assertTrue("elements are missing", feldInfos.size() > Feld220.values().length); }