blob: 15690f09ab3b645af741fae5385621e15c25c5a2 [file] [log] [blame]
/*
** Java native interface to the Windows Registry API.
**
** Authored by Timothy Gerard Endres
** <mailto:time@gjt.org> <http://www.trustice.com>
**
** This work has been placed into the public domain.
** You may use this work in any way and for any purpose you wish.
**
** THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND,
** NOT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR
** OF THIS SOFTWARE, ASSUMES _NO_ RESPONSIBILITY FOR ANY
** CONSEQUENCE RESULTING FROM THE USE, MODIFICATION, OR
** REDISTRIBUTION OF THIS SOFTWARE.
**
*/
package com.ice.jni.registry;
import java.io.PrintWriter;
/**
* The RegDWordValue class represents a double word, or
* integer, value in the registry (REG_DWORD).
*
* @see com.ice.jni.registry.Registry
* @see com.ice.jni.registry.RegistryKey
*
* @version 3.1.3
*
*/
public class
RegDWordValue extends RegistryValue
{
int data;
int dataLen;
public
RegDWordValue( RegistryKey key, String name )
{
super( key, name, RegistryValue.REG_DWORD );
this.data = 0;
this.dataLen = 0;
}
public
RegDWordValue( RegistryKey key, String name, int type )
{
super( key, name, type );
this.data = 0;
this.dataLen = 0;
}
public
RegDWordValue( RegistryKey key, String name, int type, int data )
{
super( key, name, RegistryValue.REG_DWORD );
this.setData( data );
}
public int
getData()
{
return this.data;
}
public int
getLength()
{
return this.dataLen;
}
public void
setData( int data )
{
this.data = data;
this.dataLen = 1;
}
public byte[]
getByteData()
{
byte[] result = new byte[4];
result[0] = (byte) ( (this.data >> 24) & 255 );
result[1] = (byte) ( (this.data >> 16) & 255 );
result[2] = (byte) ( (this.data >> 8) & 255 );
result[3] = (byte) ( this.data & 255 );
return result;
}
public int
getByteLength()
{
return 4;
}
public void
setByteData( byte[] data )
{
int newValue =
( (((int) data[0]) << 24) & 0xFF000000 )
| ( (((int) data[1]) << 16) & 0x00FF0000 )
| ( (((int) data[2]) << 8) & 0x0000FF00 )
| ( ((int) data[3]) & 0x000000FF );
this.setData( newValue );
}
public void
export( PrintWriter out )
{
out.print( "\"" + this.getName() + "\"=" );
HexNumberFormat nFmt =
new HexNumberFormat( "xxxxxxxx" );
out.println( "dword:" + nFmt.format( this.getData() ) );
}
}