Restringierte Properties

Man kann den Wert einer Property einschränken, z.B. die folgende Schranke

@Constraint(FileSizeConstraint.class)
BinaryData getFile();

public final class FileSizeConstraint extends ValueConstraint<BinaryData> {

  public static final FileSizeConstraint INSTANCE = new FileSizeConstraint();

  private ExampleFileSizeConstraint() {
    super(BinaryData.class);
  }

  @Override
  protected void checkValue(PropertyModel<BinaryData> model) {
    BinaryData data = model.getValue();
    if (data != null) {
      if (data.getSize() > 1024*1024) {
        model.setProblemDescription(I18NConstants.SIZE_1MB_EXCEEDED);
      }
    }
  }
}

gibt 1MB als maximale Dateigröße und zeigt dem Nutzer beim Upload einer größeren Datei eine Fehlermeldung mit der obigen Problembeschreibung.