/* Copyright 2014 Red Hat, Inc. and/or its affiliates. This file is part of darcy-ui. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.redhat.darcy.ui.internal; import com.redhat.darcy.ui.annotations.DefaultRequire; import com.redhat.darcy.ui.annotations.Require; import java.lang.reflect.Field; import java.util.Optional; public class RequiredListBounds { private final int atLeast; private final int atMost; public RequiredListBounds(Field field) { Require annotation = Optional.ofNullable(field.getAnnotation(Require.class)) .orElse(new DefaultRequire()); if (annotation.exactly() >= 0) { atLeast = atMost = annotation.exactly(); } else { atLeast = annotation.atLeast(); atMost = annotation.atMost(); } } public int atLeast() { return atLeast; } public int atMost() { return atMost; } }