/*
 * UnsignedInt.java
 *
 * Created on 26 de Abril de 2001, 16:20
 */
package br.com.q10.util;
   /**
    * Define um inteiro n&atilde;o-sinalizado.
    *
    * @autor Emerson Santana Pardo
    */
public class UnsignedInt
{
   /**
    * O valor associado a este <code>UnsignedInt</code>
    */
   protected long valor;
   /**
    * Recebe um <code>byte</code> n&atilde;o-sinalizado e constr&oacute;i um objeto UnsignedInt.
    *
    * @param v o valor do byte.
    */
   public UnsignedInt(byte v)
   { 
      setValor(v);
   }
   /**
    * Recebe um <code>short</code> n&atilde;o-sinalizado e constroi um objeto UnsignedInt.
    *
    * @param v o valor do short.
    */
   public UnsignedInt(short v)
   {
      setValor(v);
   }
   /**
    * Recebe um <code>int</code> n&atilde;o-sinalizado e constroi um objeto UnsignedInt.
    *
    * @param v o valor do int.
    */
   public UnsignedInt(int v)
   {
      setValor(v);
   }
   /**
    * Recebe um <code>int</code> n&atilde;o-sinalizado e constroi um objeto UnsignedInt.
    *
    * @param v o valor do int.
    */
   public UnsignedInt(long v)
   {
      setValor(v);
   }
   /**
    * Retorna o long n&atilde;o-sinalizado representado por esse objeto.
    *
    * @return long
    */
   public long toUnsignedLong()
   {
      return this.valor;
   }
   /**
    * Converte um inteiro para um long n&atilde;o-sinalizado.
    *
    * @param v o valor a ser convertido
    * @return long
    */
   public static long toUnsignedLong(int v)
   {
      long mascara = 0xffffffff;
      long r = v & mascara;
      return r;
   }
   /**
    * Retorna o int n&atilde;o-sinalizado representado por esse objeto.
    *
    * @return int
    */
   public int toUnsignedInt()
   {
      return (int)this.valor;
   }
   /**
    * Converte um short pra um int n&atilde;o-sinalizado
    *
    * @param v o valor a ser convertido
    * @return int
    */
   public static int toUnsignedInt(short v)
   {
      return v & 0xffffffff;
   }
   /**
    * Retorna o short n&atilde;o-sinalizado representado por esse objeto.
    *
    * @return long
    */
   public short toUnsignedShort()
   {
      return (short)this.valor;
   }
   /**
    * Converte um byte para um short n&atilde;o-sinalizado
    *
    * @param v o valor a ser convertido
    * @return long
    */
   public static short toUnsignedShort(byte v)
   {
      short vv = (short)(v & 0xffff);
      return vv;
   }
   /**
    * Retorna o byte n&atilde;o-sinalizado representado por esse objeto.
    *
    * @return byte
    */
   public byte toUnsignedByte()
   {
      return (byte)this.valor;
   }
   /**
    * Retorna uma representacao em String do valor desse objeto.
    *
    * @return String
    */
   public String toString()
   {
      return Long.toString(valor);
   }
   /**
    * Assinala o valor desse UnsignedInt para v.
    *
    * @param v o valor a ser assinalado
    */
   public void setValor(byte v)
   {
      long mascara = 0xffffffff;
      this.valor = v & mascara;
   }
   /**
    * Assinala o valor desse UnsignedInt para v.
    *
    * @param v o valor a ser assinalado
    */
   public void setValor(short v)
   {
      long mascara = 0xffffffff;
      this.valor = v & mascara;
   }
   /**
    * Assinala o valor desse UnsignedInt para v.
    *
    * @param v o valor a ser assinalado
    */
   public void setValor(int v)
   {
      long mascara = 0xffffffff;
      this.valor = v & mascara;
   }
   /**
    * Assinala o valor desse UnsignedInt para v.
    *
    * @param v o valor a ser assinalado
    */
   public void setValor(long v)
   {
      this.valor = v;
   }
}