//==================================================================================================
// D a t a _ s t r u c t u r e                                                                 Java
// E x t e n s i o n
// B y t e P r o p e r t y
//                                                                                By Bruno Bachelet
//==================================================================================================
// Copyright (c) 1999-2016
// Bruno Bachelet - bruno@nawouak.net - http://www.nawouak.net
//
// This file is part of the B++ Library. This library is free software; you can redistribute it
// and/or modify it under the terms of the GNU Library General Public License as published by the
// Free Software Foundation; either version 2 of the License, or (at your option) any later
// version.
//
// This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
// the GNU Library General Public License for more details (http://www.gnu.org).

/*DESCRIPTION*/
/* This module provides a class to model a byte additional property for extendable objects. */

// Package //---------------------------------------------------------------------------------------
package bpp.data_structure.extension;

// Importation //-----------------------------------------------------------------------------------

// B y t e P r o p e r t y  Class //----------------------------------------------------------------
/*CLASS ByteProperty */
/* Represents a byte additional property for extendable objects. It wraps a value of the
   primitive type <CODE>byte</CODE> in an object. */
public class ByteProperty implements Property {
 //---------------------------------------------------------------------------------------Attributes
 protected byte atValue;
 //--------------------------------------------------------------------------------------Constructor
 /*METHOD ByteProperty */ /* Builds a property with default value. */
 public ByteProperty() { atValue=0; }
 //--------------------------------------------------------------------------------------Constructor
 /*METHOD ByteProperty */ /* Builds a property from a <CODE>byte</CODE> value. */
 public ByteProperty(byte agValue) { atValue=agValue; }
 //--------------------------------------------------------------------------------------Constructor
 /*METHOD ByteProperty */ /* Builds a property from a <CODE>long</CODE> value. */
 public ByteProperty(long agValue) { atValue=(byte)agValue; }
 //----------------------------------------------------------------------------------------Duplicate
 /*METHOD ByteProperty */ /* Duplicates the property. */
 public Property duplicate() { return (new ByteProperty(atValue)); }
 //-----------------------------------------------------------------------------------------ToString
 /*METHOD ByteProperty */ /* Returns a string that fully describes the state of the property. */
 public String toString() { return (new String(""+atValue)); }
 //---------------------------------------------------------------------------------------FromString
 /*METHOD ByteProperty */
 /* Changes the state of the property according to the description provided by a given string. */
 public void fromString(String agString) { atValue=Byte.parseByte(agString.trim()); }
}

// End //-------------------------------------------------------------------------------------------