Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

Das Beispiel für schlechte Programmierung must nicht sein: Es ist wirklich kein Hexenwerk, man erzeugt zunächst ein nur allzu sinnvolles Interface, das sowohl von CachingCollectableFieldsProvider, als auch von DatasourceBasedCollectableFieldProvider implementiert wird: 

...

 if (clctfValue == null) {
  return null;
 }
 if (getValueListProvider() instanceof DefaultValueProviderWithIds) {
  DefaultValueProviderWithIds dvpwi = (DefaultValueProviderWithIds)getValueListProvider();
  try {
  List<Integer> ids = Collections.singletonList(IdUtils.unsafeToId(clctfValue.getValueId()));
  CollectableField cf = CollectionUtils.getSingleIfExist(dvpwi.getCollectableFields(ids));
  if (cf != null) {
  return cf;
  }
} catch (IllegalArgumentException e) {
  // ignore here. VLP has no id or value column set.
  } catch (Exception e) {
  throw new NuclosFatalException(e);
  }
}
 return clctfValue;
}

private void setFieldInitial(CollectableField clctfValue) {
 getModel().setFieldInitial(getValueFromValueListProvider(clctfValue));
}

@Override
public void setField(CollectableField clctfValue) {
 super.setField(getValueFromValueListProvider(clctfValue));
}