...
The "position" statement, which is optional, takes as an argument a non-negative integer value that specifies the bit's position.
Java mapping
Container BitSet is used to store bits during code generation.
Example
Code Block | ||
---|---|---|
| ||
File : test.yang module Test { yang-version 1; namespace http://huawei.com; prefix Ant; typedef MyBits { type bits { bit disable-nagle { position 0; } bit auto-sense-speed { position 1; } bit Mb-only { position 2; } } } } |
...
Code Block | ||
---|---|---|
| ||
File: MyBits.java package org.onosproject.yang.gen.v1.http.huawei.com.rev20160718.test; import java.util.BitSet; import java.util.Objects; import com.google.common.base.MoreObjects; /** * Represents the implementation of myBits. */ public final class MyBits { private BitSet bits; /** * Creates an instance of myBits. */ private MyBits() { } /** * Creates an instance of myBitsForTypeBits. * * @param value value of myBitsForTypeBits */ public MyBits(BitSet value) { this.bits = value; } /** * Returns the object of myBitsForTypeBits. * * @param value value of myBitsForTypeBits * @return Object of myBitsForTypeBits */ public static MyBits of(BitSet value) { return new MyBits(value); } /** * Returns the attribute bits. * * @return value of bits */ public BitSet bits() { return bits; } @Override public int hashCode() { return Objects.hash(bits); } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj instanceof MyBits) { MyBits other = (MyBits) obj; return Objects.equals(bits, other.bits); } return false; } @Override public String toString() { return bits.toString(); } /** * Returns the object of myBits fromString input String. * * @param valInString input String * @return Object of myBits */ public static MyBits fromString(String valInString) { try { BitSet tmpVal = new BitSet(); valInString = valInString.replace('{', ' '); valInString = valInString.replace('}', ' '); valInString = valInString.trim(); String[] bitsTemp = valInString.split(",", 0); for (String bitTemp : bitsTemp) { bitTemp = bitTemp.trim(); tmpVal.set(Integer.parseInt(bitTemp)); }; return of(tmpVal); } catch (Exception e) { } return null; } } |
Binary
Overview
The binary built-in type represents any binary data, i.e., a sequence
of sequence of octets.
A binary can be restricted with the "length" statement. The length of a binary value is the number of octets it
containsit contains.
Binary values are encoded with the base64 encoding scheme .
Java mapping
Byte array is used to store decoded binary during code generation.
Example
Code Block | ||
---|---|---|
| ||
File : test.yangmoduleyang module Test { yang-version 1; namespace http://huawei.com; prefix Ant; typedef MyBinary { type binary { length "4"; } } } |
Code Block | ||
---|---|---|
| ||
File: MyBinary.java package org.onosproject.yang.gen.v1.http.huawei.com.rev20160718.test; import java.util.Objects; import com.google.common.base.MoreObjects; import java.util.Base64; /** * Represents the implementation of myBinary. */ public final class MyBinary { private byte[] binary; /** * Creates an instance of myBinary. */ private MyBinary() { } /** * Creates an instance of myBinaryForTypeBinary. * * @param value value of myBinaryForTypeBinary */ public MyBinary(byte[] value) { this.binary = value; } /** * Returns the object of myBinaryForTypeBinary. * * @param value value of myBinaryForTypeBinary * @return Object of myBinaryForTypeBinary */ public static MyBinary of(byte[] value) { return new MyBinary(value); } /** * Returns the attribute binary. * * @return value of binary */ public byte[] binary() { return binary; } @Override public int hashCode() { return Objects.hash(binary); } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj instanceof MyBinary) { MyBinary other = (MyBinary) obj; return Objects.equals(binary, other.binary); } return false; } @Override public String toString() { return Base64.getEncoder().encodeToString(binary); } /** * Returns the object of myBinary fromString input String. * * @param valInString input String * @return Object of myBinary */ public static MyBinary fromString(String valInString) { try { byte[] tmpVal = Base64.getDecoder().decode(valInString);; return of(tmpVal); } catch (Exception e) { } return null; } } |
Golden Eye Demo
Link: https://www.youtube.com/watch?v=ipbu0x0LcDk
...