2 * Copyright (c) 2019 PANTHEON.tech, s.r.o. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.mdsal.binding.java.api.generator;
10 import java.util.function.Function;
11 import org.opendaylight.yangtools.yang.common.Uint16;
12 import org.opendaylight.yangtools.yang.common.Uint32;
13 import org.opendaylight.yangtools.yang.common.Uint64;
14 import org.opendaylight.yangtools.yang.common.Uint8;
16 final class Uint64RangeGenerator extends AbstractUnsignedRangeGenerator<Uint64> {
17 Uint64RangeGenerator() {
18 super(Uint64.class, long.class.getName(), Uint64.ZERO, Uint64.MAX_VALUE);
23 protected Uint64 convert(final Number value) {
24 if (value instanceof Byte || value instanceof Short || value instanceof Integer || value instanceof Long
25 || value instanceof Uint8 || value instanceof Uint16 || value instanceof Uint32) {
26 return Uint64.valueOf(value.longValue());
28 return Uint64.valueOf(value.toString());
32 protected String format(final Uint64 value) {
33 throw new UnsupportedOperationException();
37 String codeHelpersThrow() {
38 return "throwInvalidRangeUnsigned";
42 void appendMaxCheck(final StringBuilder sb, final Uint64 max, final Function<Class<?>, String> classImporter) {
43 appendCompare(sb, classImporter, max, "<=");
47 void appendMinCheck(final StringBuilder sb, final Uint64 min, final Function<Class<?>, String> classImporter) {
48 appendCompare(sb, classImporter, min, ">=");
51 private static StringBuilder appendCompare(final StringBuilder sb, final Function<Class<?>, String> classImporter,
52 final Uint64 val, final String operator) {
53 return sb.append(classImporter.apply(Long.class)).append(".compareUnsigned(value, ").append(val.longValue())
54 .append("L) ").append(operator).append(" 0");