Do not generate union builders
[mdsal.git] / binding / mdsal-binding-java-api-generator / src / main / java / org / opendaylight / mdsal / binding / java / api / generator / Uint64RangeGenerator.java
1 /*
2  * Copyright (c) 2019 PANTHEON.tech, s.r.o. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.mdsal.binding.java.api.generator;
9
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;
15
16 final class Uint64RangeGenerator extends AbstractUnsignedRangeGenerator<Uint64> {
17     Uint64RangeGenerator() {
18         super(Uint64.class, long.class.getName(), Uint64.ZERO, Uint64.MAX_VALUE);
19     }
20
21     @Override
22     @Deprecated
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());
27         }
28         return Uint64.valueOf(value.toString());
29     }
30
31     @Override
32     protected String format(final Uint64 value) {
33         throw new UnsupportedOperationException();
34     }
35
36     @Override
37     String codeHelpersThrow() {
38         return "throwInvalidRangeUnsigned";
39     }
40
41     @Override
42     void appendMaxCheck(final StringBuilder sb, final Uint64 max, final Function<Class<?>, String> classImporter) {
43         appendCompare(sb, classImporter, max, "<=");
44     }
45
46     @Override
47     void appendMinCheck(final StringBuilder sb, final Uint64 min, final Function<Class<?>, String> classImporter) {
48         appendCompare(sb, classImporter, min, ">=");
49     }
50
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");
55     }
56 }