Versionen im Vergleich

Schlüssel

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

Es ist wirklich kein Hexenwerk, man erzeugt geschickt ein Interface:

public interface DefaultValueProviderWithIds extends DefaultValueProvider {

 List<CollectableField> getCollectableFields(List<Integer> lstFieldIds) throws CommonBusinessException;

}

 

Und schon sieht der ganze Code viel freundlicher und logischer aus:

private CollectableField getValueFromValueListProvider(CollectableField clctfValue)

dddd

 

...

{

 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));
}