/** * Copyright (c) 2014-2017 by the respective copyright holders. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ package org.eclipse.smarthome.binding.lifx.internal.fields; import java.nio.ByteBuffer; /** * @author Wouter Born - Add Thing properties */ public class VersionField extends Field<Version> { @Override public int defaultLength() { return 4; } @Override public Version value(ByteBuffer bytes) { long value = bytes.getInt() & 0xFFFFFFFFL; long major = (value >> 16) & 0xFFL; long minor = value & 0xFFL; return new Version(major, minor); } @Override public ByteBuffer bytesInternal(Version value) { return ByteBuffer.allocate(4).putInt((int) (((value.getMajor() << 16) | value.getMinor()) & 0xFFFFFFFFL)); } }