Versionen im Vergleich

Schlüssel

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

Hier ist ein Paradebeispiel aus dem Kern für nur allzu schlechte Programmierung. Unabhängig davon, dass zweimal derselbe Code vorhanden ist, haben wir hier ein völlig unwartbaren Code, durch den keiner mehr durchblickt und sehr fehlerträchtig ist.

PS: Hier kann man sehen, Wie man es richtig macht

 

private void setFieldInitial(CollectableField clctfValue) {
 CollectableField cf = clctfValue;
 if (getValueListProvider() != null && cf != null) {
  CollectableFieldsProvider vlp = getValueListProvider();
  if (vlp instanceof CachingCollectableFieldsProvider) {
  vlp = ((CachingCollectableFieldsProvider)vlp).getDelegate();
  }
  if (vlp instanceof DatasourceBasedCollectableFieldsProvider) {
  try {
  if (getValueListProvider() instanceof CachingCollectableFieldsProvider) {
  cf = CollectionUtils.getSingleIfExist(((CachingCollectableFieldsProvider)getValueListProvider())
  .getCollectableFields(Collections.singletonList(IdUtils.unsafeToId(clctfValue.getValueId()))));
  } else {
  cf = CollectionUtils.getSingleIfExist(((DatasourceBasedCollectableFieldsProvider)vlp)
  .getCollectableFields(Collections.singletonList(IdUtils.unsafeToId(clctfValue.getValueId()))));
  }
  if (cf == null)
  cf = clctfValue;
  } catch (IllegalArgumentException e) {
  // ignore here. VLP has no id or value column set.
  } catch (Exception e) {
  throw new NuclosFatalException(e);
  }
}
}

 getModel().setFieldInitial(cf);
}

@Override
public void setField(CollectableField clctfValue) {
 CollectableField cf = clctfValue;
 if (getValueListProvider() != null && cf != null) {
 CollectableFieldsProvider vlp = getValueListProvider();
 if (vlp instanceof CachingCollectableFieldsProvider) {
 vlp = ((CachingCollectableFieldsProvider)vlp).getDelegate();
 }
 if (vlp instanceof DatasourceBasedCollectableFieldsProvider) {
 try {
 if (getValueListProvider() instanceof CachingCollectableFieldsProvider) {
 cf = CollectionUtils.getSingleIfExist(((CachingCollectableFieldsProvider)getValueListProvider())
 .getCollectableFields(Collections.singletonList(IdUtils.unsafeToId(clctfValue.getValueId()))));
 } else {
 cf = CollectionUtils.getSingleIfExist(((DatasourceBasedCollectableFieldsProvider)vlp)
 .getCollectableFields(Collections.singletonList(IdUtils.unsafeToId(clctfValue.getValueId()))));
 }
 if (cf == null)
 cf = clctfValue;
 } catch (IllegalArgumentException e) {
 // ignore here. VLP has no id or value column set.
 } catch (Exception e) {
 throw new NuclosFatalException(e);
 }
}
}

 super.setField(cf);
}