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: Wie man es richtig macht, Hier kann man hier sehen: Das Beispiel für schlechte Programmierung wie 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);
}