类javax.validation.constraints.Digits源码实例Demo

下面列出了怎么用javax.validation.constraints.Digits的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: lams   文件: TypeSafeActivator.java
private static void applyDigits(Property property, ConstraintDescriptor<?> descriptor) {
	if ( Digits.class.equals( descriptor.getAnnotation().annotationType() ) ) {
		@SuppressWarnings("unchecked")
		ConstraintDescriptor<Digits> digitsConstraint = (ConstraintDescriptor<Digits>) descriptor;
		int integerDigits = digitsConstraint.getAnnotation().integer();
		int fractionalDigits = digitsConstraint.getAnnotation().fraction();

		@SuppressWarnings("unchecked")
		final Iterator<Selectable> itor = property.getColumnIterator();
		if ( itor.hasNext() ) {
			final Selectable selectable = itor.next();
			if ( Column.class.isInstance( selectable ) ) {
				Column col = (Column) selectable;
				col.setPrecision( integerDigits + fractionalDigits );
				col.setScale( fractionalDigits );
			}
		}

	}
}
 
源代码2 项目: isis-app-todoapp   文件: ToDoItem.java
@Action(
        semantics = SemanticsOf.IDEMPOTENT
)
public ToDoItem updateCost(
        @Parameter(optionality = Optionality.OPTIONAL)
        @Digits(integer = 10, fraction = 2)
        final BigDecimal newCost) {
    final String titleOf = titleService.titleOf(this);
    LOG.debug("%s: cost updated: %s -> %s", titleOf, getCost(), newCost);

    // just to simulate a long-running action
    try {
        Thread.sleep(3000);
    } catch (final InterruptedException ignored) {
    }

    setCost(newCost);
    return this;
}
 
源代码3 项目: para   文件: Constraint.java
/**
 * Builds a new constraint from the annotation data.
 * @param anno JSR-303 annotation instance
 * @return a new constraint
 */
public static Constraint fromAnnotation(Annotation anno) {
	if (anno instanceof Min) {
		return min(((Min) anno).value());
	} else if (anno instanceof Max) {
		return max(((Max) anno).value());
	} else if (anno instanceof Size) {
		return size(((Size) anno).min(), ((Size) anno).max());
	} else if (anno instanceof Digits) {
		return digits(((Digits) anno).integer(), ((Digits) anno).fraction());
	} else if (anno instanceof Pattern) {
		return pattern(((Pattern) anno).regexp());
	} else {
		return new Constraint(VALIDATORS.get(anno.annotationType()),
				simplePayload(VALIDATORS.get(anno.annotationType()))) {
					public boolean isValid(Object actualValue) {
						return true;
					}
				};
	}
}
 
源代码4 项目: easy-random   文件: BeanValidationTest.java
@Test
void customRegistryTest() {
    // given
    class Salary {
        @Digits(integer = 2, fraction = 2) // OSS developer salary.. :-)
        private BigDecimal amount;
    }
    
    EasyRandomParameters parameters = new EasyRandomParameters()
            .randomizerRegistry(new MyCustomBeanValidationRandomizerRegistry());
    EasyRandom easyRandom = new EasyRandom(parameters);
    
    // when
    Salary salary = easyRandom.nextObject(Salary.class);
    
    // then
    assertThat(salary).isNotNull();
    assertThat(salary.amount).isLessThanOrEqualTo(new BigDecimal("99.99"));
}
 
源代码5 项目: estatio   文件: IncomingDocViewModel.java
public IncomingDocViewModel changeItemDetails(
        final String description,
        @Digits(integer=13, fraction = 2)
        final BigDecimal netAmount,
        @Digits(integer=13, fraction = 2)
        @Nullable
        final BigDecimal vatAmount,
        @Nullable
        final Tax tax,
        @Digits(integer=13, fraction = 2)
        @Nullable
        final BigDecimal grossAmount
){
    setDescription(description);
    setNetAmount(netAmount);
    setVatAmount(vatAmount);
    setTax(tax);
    setGrossAmount(grossAmount);
    calculateVat();
    determineAmounts();
    return this;
}
 
源代码6 项目: estatio   文件: IncomingInvoice.java
@MemberOrder(name = "items", sequence = "1")
public IncomingInvoice addItem(
        final IncomingInvoiceType type,
        final Charge charge,
        final String description,
        @Digits(integer = 13, fraction = 2) final BigDecimal netAmount,
        @Nullable
        @Digits(integer = 13, fraction = 2) final BigDecimal vatAmount,
        @Digits(integer = 13, fraction = 2) final BigDecimal grossAmount,
        @Nullable final Tax tax,
        @Nullable final LocalDate dueDate,
        @Nullable final String period,
        @Nullable final Property property,
        @Nullable final Project project,
        @Nullable final BudgetItem budgetItem) {

    addItemInternal(
            type, charge, description, netAmount, vatAmount, grossAmount, tax, dueDate,
            period, property, project, budgetItem);
    return this;
}
 
源代码7 项目: estatio   文件: IncomingInvoice.java
@MemberOrder(name = "items", sequence = "2")
public IncomingInvoice splitItem(
        final IncomingInvoiceItem itemToSplit,
        final String newItemDescription,
        @Digits(integer = 13, fraction = 2) final BigDecimal newItemNetAmount,
        @Nullable
        @Digits(integer = 13, fraction = 2) final BigDecimal newItemVatAmount,
        @Nullable final Tax newItemtax,
        @Digits(integer = 13, fraction = 2) final BigDecimal newItemGrossAmount,
        final Charge newItemCharge,
        @Nullable final Property newItemProperty,
        @Nullable final Project newItemProject,
        @Nullable final BudgetItem newItemBudgetItem,
        final String newItemPeriod
) {
    itemToSplit.subtractAmounts(newItemNetAmount, newItemVatAmount, newItemGrossAmount);
    addItemInternal(getType(), newItemCharge, newItemDescription, newItemNetAmount,
            newItemVatAmount, newItemGrossAmount, newItemtax, getDueDate(), newItemPeriod, newItemProperty,
            newItemProject, newItemBudgetItem);
    return this;
}
 
源代码8 项目: estatio   文件: IncomingInvoiceItem.java
@Action(semantics = SemanticsOf.IDEMPOTENT)
public IncomingInvoiceItem updateAmounts(
        @Digits(integer=13, fraction = 2)
        final BigDecimal netAmount,
        @Nullable
        @Digits(integer=13, fraction = 2)
        final BigDecimal vatAmount,
        @Digits(integer=13, fraction = 2)
        final BigDecimal grossAmount,
        @Nullable
        final Tax tax){
    setNetAmount(netAmount);
    setVatAmount(vatAmount);
    setGrossAmount(grossAmount);
    setTax(tax);
    IncomingInvoice invoice = (IncomingInvoice) getInvoice();
    return this;
}
 
源代码9 项目: estatio   文件: Order.java
@MemberOrder(name = "items", sequence = "1")
public Order addItem(
        final Charge charge,
        @Nullable final String description,
        @Digits(integer = 13, fraction = 2) final BigDecimal netAmount,
        @Nullable
        @Digits(integer = 13, fraction = 2) final BigDecimal vatAmount,
        @Nullable
        @Digits(integer = 13, fraction = 2) final BigDecimal grossAmount,
        @Nullable final Tax tax,
        @Nullable final String period,
        @Nullable final org.estatio.module.asset.dom.Property property,
        @Nullable final Project project,
        @Nullable final BudgetItem budgetItem
) {
    orderItemRepository.upsert(
            this, charge, description, netAmount, vatAmount, grossAmount, tax, PeriodUtil.yearFromPeriod(period).startDate(), PeriodUtil.yearFromPeriod(period).endDate(), property, project, budgetItem, determineItemNumber(charge));

    return this;
}
 
源代码10 项目: quarkus   文件: HibernateValidatorTestResource.java
@GET
@Path("/rest-end-point-generic-method-validation/{id}")
@Produces(MediaType.TEXT_PLAIN)
@Override
public Integer testRestEndpointGenericMethodValidation(@Digits(integer = 5, fraction = 0) @PathParam("id") Integer id) {
    return id;
}
 
源代码11 项目: para   文件: ValidationUtils.java
private static void buildAndValidateConstraint(Map.Entry<String, Map<String, ?>> constraint, String field,
		Object actualValue, LinkedList<String> errors) {
	if (constraint == null) {
		return;
	}
	String consName = constraint.getKey();
	Map<String, ?> vals = constraint.getValue();
	if (vals == null) {
		vals = Collections.emptyMap();
	}

	Object val = vals.get("value");
	long min = NumberUtils.toLong(vals.get("min") + "", 0);
	long max = NumberUtils.toLong(vals.get("max") + "", Config.DEFAULT_LIMIT);

	if (isValidSimpleConstraint(consName, field, actualValue, errors)) {
		if (matches(Min.class, consName) && !min(NumberUtils.toLong(val + "", 0)).isValid(actualValue)) {
			errors.add(Utils.formatMessage("{0} must be a number larger than {1}.", field, val));
		} else if (matches(Max.class, consName) && !max(NumberUtils.toLong(val + "",
				Config.DEFAULT_LIMIT)).isValid(actualValue)) {
			errors.add(Utils.formatMessage("{0} must be a number smaller than {1}.", field, val));
		} else if (matches(Size.class, consName) && !size(min, max).isValid(actualValue)) {
			errors.add(Utils.formatMessage("{0} must be between {1} and {2}.", field, min, max));
		} else if (matches(Digits.class, consName) && !digits(NumberUtils.toLong(vals.get("integer") + "", 0),
				NumberUtils.toLong(vals.get("fraction") + "", 0)).isValid(actualValue)) {
			errors.add(Utils.formatMessage("{0} is not a valid number or within range.", field));
		} else if (matches(Pattern.class, consName) && !pattern(val).isValid(actualValue)) {
			errors.add(Utils.formatMessage("{0} doesn't match the pattern {1}.", field, val));
		}
	}
}
 
源代码12 项目: para   文件: Constraint.java
/**
 * Creates a new map representing a {@link Digits} validation constraint.
 * @param i the max size of the integral part of the number
 * @param f the max size of the fractional part of the number
 * @return a map
 */
static Map<String, Object> digitsPayload(final Object i, final Object f) {
	if (i == null || f == null) {
		return null;
	}
	Map<String, Object> payload = new LinkedHashMap<>();
	payload.put("integer", i);
	payload.put("fraction", f);
	payload.put("message", MSG_PREFIX + VALIDATORS.get(Digits.class));
	return payload;
}
 
源代码13 项目: estatio   文件: IncomingInvoice.java
@org.apache.isis.applib.annotation.Property(hidden = Where.ALL_TABLES)
@Digits(integer = 9, fraction = 2)
public BigDecimal getVatAmount() {
    return getGrossAmount() != null && getNetAmount() != null
            ? getGrossAmount().subtract(getNetAmount())
            : null;
}
 
源代码14 项目: estatio   文件: OrderItem.java
@Action(semantics = SemanticsOf.IDEMPOTENT)
public OrderItem updateAmounts(
        @Digits(integer = 13, fraction = 2) final BigDecimal netAmount,
        @Nullable
        @Digits(integer = 13, fraction = 2) final BigDecimal vatAmount,
        @Nullable
        @Digits(integer = 13, fraction = 2) final BigDecimal grossAmount,
        @Nullable final Tax tax) {
    setNetAmount(netAmount);
    setVatAmount(vatAmount);
    setGrossAmount(grossAmount);
    setTax(tax);
    return this;
}
 
源代码15 项目: estatio   文件: Order.java
@MemberOrder(name = "items", sequence = "2")
public Order splitItem(
        final OrderItem itemToSplit,
        final String newItemDescription,
        @Digits(integer = 13, fraction = 2) final BigDecimal newItemNetAmount,
        @Nullable @Digits(integer = 13, fraction = 2) final BigDecimal newItemVatAmount,
        @Nullable final Tax newItemtax,
        @Digits(integer = 13, fraction = 2) final BigDecimal newItemGrossAmount,
        final Charge newItemCharge,
        @Nullable final org.estatio.module.asset.dom.Property newItemProperty,
        @Nullable final Project newItemProject,
        @Nullable final BudgetItem newItemBudgetItem,
        @Nullable final String newItemPeriod
) {
    itemToSplit.subtractAmounts(newItemNetAmount, newItemVatAmount, newItemGrossAmount);
    orderItemRepository.upsert(
            this,
            newItemCharge,
            newItemDescription,
            newItemNetAmount,
            newItemVatAmount,
            newItemGrossAmount,
            newItemtax,
            newItemPeriod != null ? PeriodUtil.yearFromPeriod(newItemPeriod).startDate() : null,
            newItemPeriod != null ? PeriodUtil.yearFromPeriod(newItemPeriod).endDate() : null,
            newItemProperty,
            newItemProject,
            newItemBudgetItem,
            0);
    return this;
}
 
源代码16 项目: estatio   文件: Order_itemDetails.java
@Action()
public Order act(
        final String description,
        @Digits(integer = 13, fraction = 2) final BigDecimal netAmount,
        @Digits(integer = 13, fraction = 2)
        @Nullable final BigDecimal vatAmount,
        @Nullable final Tax tax,
        @Digits(integer = 13, fraction = 2) final BigDecimal grossAmount,
        final Charge charge,
        @Nullable final Project project,
        @Nullable final BudgetItem budgetItem,
        final String period) {
    if (order.getItems().size() <= 1) {
        orderItemRepository.upsert(
                order,
                charge,
                description,
                netAmount,
                vatAmount,
                grossAmount,
                tax,
                PeriodUtil.yearFromPeriod(period).startDate(),
                PeriodUtil.yearFromPeriod(period).endDate(),
                order.getProperty(),
                project,
                budgetItem,
                0);
    }
    return order;
}
 
@Action(semantics = SemanticsOf.NON_IDEMPOTENT)
@MemberOrder(name = "linkedAmount", sequence = "1")
public IncomingInvoiceItem act(
        @Digits(integer = 13, fraction = 2)
        final BigDecimal netAmount) {

    linkIfAny().ifPresent(link -> link.setNetAmount(netAmount));

    return mixee;
}
 
源代码18 项目: estatio   文件: OrderItem_createInvoiceItemLink.java
@Action(semantics = SemanticsOf.NON_IDEMPOTENT)
@MemberOrder(name = "invoiceItemLinks", sequence = "1")
public OrderItem act(
        final IncomingInvoiceItem invoiceItem,
        @Digits(integer = 13, fraction = 2)
        final BigDecimal netAmount){
    orderItemInvoiceItemLinkRepository.createLink(mixee, invoiceItem, netAmount);
    return mixee;
}
 
@Action(semantics = SemanticsOf.NON_IDEMPOTENT)
@MemberOrder(name = "orderItem", sequence = "1")
public IncomingInvoiceItem act(
        final OrderItem orderItem,
        @Digits(integer = 13, fraction = 2)
        final BigDecimal netAmount){
    orderItemInvoiceItemLinkRepository.createLink(orderItem, mixee, netAmount);
    mixee.copyChargeAndProjectFromSingleLinkedOrderItemIfAny();
    return mixee;
}
 
源代码20 项目: estatio   文件: OrderItem_updateInvoiceItemLink.java
@Action(semantics = SemanticsOf.NON_IDEMPOTENT)
@MemberOrder(name = "invoiceItemLinks", sequence = "1")
public OrderItem act(
        final IncomingInvoiceItem invoiceItem,
        @Digits(integer = 13, fraction = 2)
        final BigDecimal netAmount){
    final OrderItemInvoiceItemLink link = orderItemInvoiceItemLinkRepository.findUnique(mixee, invoiceItem);
    if(link != null) {
        link.setNetAmount(netAmount);
    }
    return mixee;
}
 
源代码21 项目: estatio   文件: KeyItem.java
@Digits(integer = 13, fraction = 6)
@Action(semantics = SemanticsOf.SAFE)
public BigDecimal getDivCalculatedSourceValue(){
    KeyTable keyTable = (KeyTable) getPartitioningTable();
    if (keyTable.getFoundationValueType() == FoundationValueType.AREA) {
        return getUnit().getArea() != null ? getUnit().getArea().subtract(getSourceValue()).setScale(6, RoundingMode.HALF_UP) : BigDecimal.ZERO;
    }
    return BigDecimal.ZERO;
}
 
源代码22 项目: BlogManagePlatform   文件: DefaultModelPlugin.java
private String resolveRange(Field field) {
	String min = Optional.ofNullable(field.getAnnotation(Min.class)).map((item) -> String.valueOf(item.value())).orElse(null);
	if (min == null) {
		min = Optional.ofNullable(field.getAnnotation(DecimalMin.class)).map(DecimalMin::value).orElse(null);
	}
	if (field.isAnnotationPresent(PositiveOrZero.class)) {
		if (min == null || new BigDecimal(min).compareTo(BigDecimal.ZERO) < 0) {
			min = "非负数";
		}
	}
	if (field.isAnnotationPresent(Positive.class)) {
		if (min == null || new BigDecimal(min).compareTo(BigDecimal.ZERO) <= 0) {
			min = "正数";
		}
	}
	min = min == null ? null : StrUtil.concat("最小值为", min);
	if (field.isAnnotationPresent(DecimalMin.class)) {
		if (!field.getAnnotation(DecimalMin.class).inclusive()) {
			min = min == null ? null : StrUtil.concat(min, "且不能等于最小值");
		}
	}
	String max = Optional.ofNullable(field.getAnnotation(Max.class)).map((item) -> String.valueOf(item.value())).orElse(null);
	if (max == null) {
		max = Optional.ofNullable(field.getAnnotation(DecimalMax.class)).map(DecimalMax::value).orElse(null);
	}
	if (field.isAnnotationPresent(NegativeOrZero.class)) {
		if (max == null || new BigDecimal(max).compareTo(BigDecimal.ZERO) > 0) {
			max = "非正数";
		}
	}
	if (field.isAnnotationPresent(Negative.class)) {
		if (max == null || new BigDecimal(min).compareTo(BigDecimal.ZERO) >= 0) {
			max = "负数";
		}
	}
	max = max == null ? null : StrUtil.concat("最大值为", max);
	if (field.isAnnotationPresent(DecimalMax.class)) {
		if (!field.getAnnotation(DecimalMax.class).inclusive()) {
			min = min == null ? null : StrUtil.concat(min, "且不能等于最大值");
		}
	}
	String digit = Optional.ofNullable(field.getAnnotation(Digits.class)).map((item) -> {
		String integer = String.valueOf(item.integer());
		String fraction = String.valueOf(item.fraction());
		return StrUtil.concat("整数位", integer, ",", "小数位", fraction);
	}).orElse(null);
	if (min == null && max == null && digit == null) {
		return null;
	}
	return StrUtil.join(",", min, max, digit);
}
 
源代码23 项目: quarkus   文件: HibernateValidatorTestResource.java
@GET
@Path("/rest-end-point-validation/{id}/")
@Produces(MediaType.TEXT_PLAIN)
public String testRestEndPointValidation(@Digits(integer = 5, fraction = 0) @PathParam("id") String id) {
    return id;
}
 
源代码24 项目: quarkus   文件: HibernateValidatorTestResource.java
@GET
@Path("/no-produces/{id}/")
public Response noProduces(@Digits(integer = 5, fraction = 0) @PathParam("id") String id) {
    return Response.accepted().build();
}
 
源代码25 项目: celerio-angular-quickstart   文件: Book.java
@Digits(integer = 11, fraction = 0)
@Column(name = "EXTRACT_SIZE", precision = 11)
public Long getExtractSize() {
    return extractSize;
}
 
源代码26 项目: celerio-angular-quickstart   文件: Book.java
@Digits(integer = 18, fraction = 2)
@NotNull
@Column(name = "PRICE", nullable = false, precision = 20, scale = 2)
public BigDecimal getPrice() {
    return price;
}
 
源代码27 项目: dolphin-platform   文件: DigitsPropertyValidator.java
@Override
public void initialize(final Digits digitsAnnotation) {
	this.maxIntegerLength = digitsAnnotation.integer();
	this.maxFractionLength = digitsAnnotation.fraction();
	validateParameters();
}
 
源代码28 项目: axelor-open-suite   文件: BatchLeaveManagement.java
@Transactional(rollbackOn = {Exception.class})
public void createLeaveManagement(Employee employee) throws AxelorException {

  batch = batchRepo.find(batch.getId());
  LeaveLine leaveLine = null;
  LeaveReason leaveReason = batch.getHrBatch().getLeaveReason();

  if (employee != null) {
    leaveLine = leaveServiceProvider.get().addLeaveReasonOrCreateIt(employee, leaveReason);

    BigDecimal dayNumber =
        batch.getHrBatch().getUseWeeklyPlanningCoef()
            ? batch
                .getHrBatch()
                .getDayNumber()
                .multiply(employee.getWeeklyPlanning().getLeaveCoef())
            : batch.getHrBatch().getDayNumber();
    dayNumber =
        dayNumber.subtract(
            new BigDecimal(
                publicHolidayService.getImposedDayNumber(
                    employee,
                    batch.getHrBatch().getStartDate(),
                    batch.getHrBatch().getEndDate())));
    LeaveManagement leaveManagement =
        leaveManagementService.createLeaveManagement(
            leaveLine,
            AuthUtils.getUser(),
            batch.getHrBatch().getComments(),
            null,
            batch.getHrBatch().getStartDate(),
            batch.getHrBatch().getEndDate(),
            dayNumber);
    BigDecimal qty = leaveLine.getQuantity().add(dayNumber);
    BigDecimal totalQty = leaveLine.getTotalQuantity().add(dayNumber);

    try {
      int integer =
          LeaveLine.class.getDeclaredField("quantity").getAnnotation(Digits.class).integer();
      BigDecimal limit = new BigDecimal((long) Math.pow(10, integer));
      if (qty.compareTo(limit) >= 0 || totalQty.compareTo(limit) >= 0) {
        throw new AxelorException(
            employee,
            TraceBackRepository.CATEGORY_CONFIGURATION_ERROR,
            I18n.get(IExceptionMessage.BATCH_LEAVE_MANAGEMENT_QTY_OUT_OF_BOUNDS),
            limit.longValue());
      }

    } catch (NoSuchFieldException | SecurityException e) {
      throw new AxelorException(e, TraceBackRepository.CATEGORY_CONFIGURATION_ERROR);
    }

    leaveLine.setQuantity(qty.setScale(4, RoundingMode.HALF_EVEN));
    leaveLine.setTotalQuantity(totalQty.setScale(4, RoundingMode.HALF_EVEN));

    leaveManagementRepository.save(leaveManagement);
    leaveLineRepository.save(leaveLine);
    updateEmployee(employee);
  }
}
 
@Override
public void init(EasyRandomParameters parameters) {
	super.init(parameters);
	annotationHandlers.put(Digits.class, new MyCustomDigitsAnnotationHandler());
}
 
源代码30 项目: estatio   文件: IncomingDocViewModel.java
@Digits(integer=13, fraction = 2)
public BigDecimal getNetAmount() {
    return netAmount;
}