org.apache.tomcat.jni

## Class Registry

- java.lang.Object
- - org.apache.tomcat.jni.Registry

    public class Registry
    extends Object

Windows Registy support

Author:
  Mladen Turk

### Field Summary

Fields
`static int` `HKEY_CLASSES_ROOT`
`static int` `HKEY_CURRENT_CONFIG`
`static int` `HKEY_CURRENT_USER`
`static int` `HKEY_LOCAL_MACHINE`
`static int` `HKEY_USERS`
`static int` `KEY_ALL_ACCESS`
`static int` `KEY_CREATE_LINK`
`static int` `KEY_CREATE_SUB_KEY`
`static int` `KEY_ENUMERATE_SUB_KEYS`
`static int` `KEY_EXECUTE`
`static int` `KEY_NOTIFY`
`static int` `KEY_QUERY_VALUE`
`static int` `KEY_READ`
`static int` `KEY_SET_VALUE`
`static int` `KEY_WOW64_32KEY`
`static int` `KEY_WOW64_64KEY`
`static int` `KEY_WRITE`
`static int` `REG_BINARY`
`static int` `REG_DWORD`
`static int` `REG_EXPAND_SZ`
`static int` `REG_MULTI_SZ`
`static int` `REG_QWORD`
`static int` `REG_SZ`

### Constructor Summary

Constructors
Constructor and Description
`Registry()`

### Method Summary

Methods
`static int` `close(long key)` Close the specified Registry key.
`static long` `create(int root, String name, int sam, long pool)` Create or open a Registry Key.
`static int` `deleteKey(int root, String name, boolean onlyIfEmpty)` Delete the Registry subkey
`static int` `deleteValue(long key, String name)` Delete the Registry value
`static String[]` `enumKeys(long key)` Enumerate the Registry subkeys
`static String[]` `enumValues(long key)` Enumerate the Registry values
`static int` `getSize(long key, String name)` Get the Registry key length.
`static int` `getType(long key, String name)` Get the Registry key type.
`static String[]` `getValueA(long key, String name)` Get the Registry value for REG_MULTI_SZ
`static byte[]` `getValueB(long key, String name)` Get the Registry value for REG_BINARY
`static int` `getValueI(long key, String name)` Get the Registry value for REG_DWORD
`static long` `getValueJ(long key, String name)` Get the Registry value for REG_QWORD or REG_DWORD
`static String` `getValueS(long key, String name)` Get the Registry value for REG_SZ or REG_EXPAND_SZ
`static long` `open(int root, String name, int sam, long pool)` Opens the specified Registry Key.
`static int` `setValueA(long key, String name, String[] val)` Set the Registry value for REG_MULTI_SZ
`static int` `setValueB(long key, String name, byte[] val)` Set the Registry value for REG_BINARY
`static int` `setValueE(long key, String name, String val)` Set the Registry value for REG_EXPAND_SZ
`static int` `setValueI(long key, String name, int val)` Set the Registry value for REG_DWORD
`static int` `setValueJ(long key, String name, long val)` Set the Registry value for REG_QWORD
`static int` `setValueS(long key, String name, String val)` Set the Registry value for REG_SZ

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### HKEY_CLASSES_ROOT

    public static final int HKEY_CLASSES_ROOT

See Also:
  Constant Field Values

#### HKEY_CURRENT_CONFIG

    public static final int HKEY_CURRENT_CONFIG

See Also:
  Constant Field Values

#### HKEY_CURRENT_USER

    public static final int HKEY_CURRENT_USER

See Also:
  Constant Field Values

#### HKEY_LOCAL_MACHINE

    public static final int HKEY_LOCAL_MACHINE

See Also:
  Constant Field Values

#### HKEY_USERS

    public static final int HKEY_USERS

See Also:
  Constant Field Values

#### KEY_ALL_ACCESS

    public static final int KEY_ALL_ACCESS

See Also:
  Constant Field Values

#### KEY_CREATE_LINK

    public static final int KEY_CREATE_LINK

See Also:
  Constant Field Values

#### KEY_CREATE_SUB_KEY

    public static final int KEY_CREATE_SUB_KEY

See Also:
  Constant Field Values

#### KEY_ENUMERATE_SUB_KEYS

    public static final int KEY_ENUMERATE_SUB_KEYS

See Also:
  Constant Field Values

#### KEY_EXECUTE

    public static final int KEY_EXECUTE

See Also:
  Constant Field Values

#### KEY_NOTIFY

    public static final int KEY_NOTIFY

See Also:
  Constant Field Values

#### KEY_QUERY_VALUE

    public static final int KEY_QUERY_VALUE

See Also:
  Constant Field Values

#### KEY_READ

    public static final int KEY_READ

See Also:
  Constant Field Values

#### KEY_SET_VALUE

    public static final int KEY_SET_VALUE

See Also:
  Constant Field Values

#### KEY_WOW64_64KEY

    public static final int KEY_WOW64_64KEY

See Also:
  Constant Field Values

#### KEY_WOW64_32KEY

    public static final int KEY_WOW64_32KEY

See Also:
  Constant Field Values

#### KEY_WRITE

    public static final int KEY_WRITE

See Also:
  Constant Field Values

#### REG_BINARY

    public static final int REG_BINARY

See Also:
  Constant Field Values

#### REG_DWORD

    public static final int REG_DWORD

See Also:
  Constant Field Values

#### REG_EXPAND_SZ

    public static final int REG_EXPAND_SZ

See Also:
  Constant Field Values

#### REG_MULTI_SZ

    public static final int REG_MULTI_SZ

See Also:
  Constant Field Values

#### REG_QWORD

    public static final int REG_QWORD

See Also:
  Constant Field Values

#### REG_SZ

    public static final int REG_SZ

See Also:
  Constant Field Values

### Constructor Detail

#### Registry

    public Registry()

### Method Detail

#### create

    public static long create(int root,
              String name,
              int sam,
              long pool)
                       throws Error

Create or open a Registry Key.

Parameters:
  `name` - Registry Subkey to open
  `root` - Root key, one of HKEY_*
  `sam` - Access mask that specifies the access rights for the key.
  `pool` - Pool used for native memory allocation
Returns:
  Opened Registry key
Throws:
  `Error`

#### open

    public static long open(int root,
            String name,
            int sam,
            long pool)
                     throws Error

Opens the specified Registry Key.

Parameters:
  `name` - Registry Subkey to open
  `root` - Root key, one of HKEY_*
  `sam` - Access mask that specifies the access rights for the key.
  `pool` - Pool used for native memory allocation
Returns:
  Opened Registry key
Throws:
  `Error`

#### close

    public static int close(long key)

Close the specified Registry key.

Parameters:
  `key` - The Registry key descriptor to close.

#### getType

    public static int getType(long key,
              String name)

Get the Registry key type.

Parameters:
  `key` - The Registry key descriptor to use.
  `name` - The name of the value to query
Returns:
  Value type or negative error value

#### getValueI

    public static int getValueI(long key,
                String name)
                         throws Error

Get the Registry value for REG_DWORD

Parameters:
  `key` - The Registry key descriptor to use.
  `name` - The name of the value to query
Returns:
  Registry key value
Throws:
  `Error`

#### getValueJ

    public static long getValueJ(long key,
                 String name)
                          throws Error

Get the Registry value for REG_QWORD or REG_DWORD

Parameters:
  `key` - The Registry key descriptor to use.
  `name` - The name of the value to query
Returns:
  Registry key value
Throws:
  `Error`

#### getSize

    public static int getSize(long key,
              String name)

Get the Registry key length.

Parameters:
  `key` - The Registry key descriptor to use.
  `name` - The name of the value to query
Returns:
  Value size or negative error value

#### getValueS

    public static String getValueS(long key,
                   String name)
                            throws Error

Get the Registry value for REG_SZ or REG_EXPAND_SZ

Parameters:
  `key` - The Registry key descriptor to use.
  `name` - The name of the value to query
Returns:
  Registry key value
Throws:
  `Error`

#### getValueA

    public static String[] getValueA(long key,
                     String name)
                              throws Error

Get the Registry value for REG_MULTI_SZ

Parameters:
  `key` - The Registry key descriptor to use.
  `name` - The name of the value to query
Returns:
  Registry key value
Throws:
  `Error`

#### getValueB

    public static byte[] getValueB(long key,
                   String name)
                            throws Error

Get the Registry value for REG_BINARY

Parameters:
  `key` - The Registry key descriptor to use.
  `name` - The name of the value to query
Returns:
  Registry key value
Throws:
  `Error`

#### setValueI

    public static int setValueI(long key,
                String name,
                int val)

Set the Registry value for REG_DWORD

Parameters:
  `key` - The Registry key descriptor to use.
  `name` - The name of the value to set
  `val` - The the value to set
Returns:
  If the function succeeds, the return value is 0

#### setValueJ

    public static int setValueJ(long key,
                String name,
                long val)

Set the Registry value for REG_QWORD

Parameters:
  `key` - The Registry key descriptor to use.
  `name` - The name of the value to set
  `val` - The the value to set
Returns:
  If the function succeeds, the return value is 0

#### setValueS

    public static int setValueS(long key,
                String name,
                String val)

Set the Registry value for REG_SZ

Parameters:
  `key` - The Registry key descriptor to use.
  `name` - The name of the value to set
  `val` - The the value to set
Returns:
  If the function succeeds, the return value is 0

#### setValueE

    public static int setValueE(long key,
                String name,
                String val)

Set the Registry value for REG_EXPAND_SZ

Parameters:
  `key` - The Registry key descriptor to use.
  `name` - The name of the value to set
  `val` - The the value to set
Returns:
  If the function succeeds, the return value is 0

#### setValueA

    public static int setValueA(long key,
                String name,
                String[] val)

Set the Registry value for REG_MULTI_SZ

Parameters:
  `key` - The Registry key descriptor to use.
  `name` - The name of the value to set
  `val` - The the value to set
Returns:
  If the function succeeds, the return value is 0

#### setValueB

    public static int setValueB(long key,
                String name,
                byte[] val)

Set the Registry value for REG_BINARY

Parameters:
  `key` - The Registry key descriptor to use.
  `name` - The name of the value to set
  `val` - The the value to set
Returns:
  If the function succeeds, the return value is 0

#### enumKeys

    public static String[] enumKeys(long key)
                             throws Error

Enumerate the Registry subkeys

Parameters:
  `key` - The Registry key descriptor to use.
Returns:
  Array of all subkey names
Throws:
  `Error`

#### enumValues

    public static String[] enumValues(long key)
                               throws Error

Enumerate the Registry values

Parameters:
  `key` - The Registry key descriptor to use.
Returns:
  Array of all value names
Throws:
  `Error`

#### deleteValue

    public static int deleteValue(long key,
                  String name)

Delete the Registry value

Parameters:
  `key` - The Registry key descriptor to use.
  `name` - The name of the value to delete
Returns:
  If the function succeeds, the return value is 0

#### deleteKey

    public static int deleteKey(int root,
                String name,
                boolean onlyIfEmpty)

Delete the Registry subkey

Parameters:
  `root` - Root key, one of HKEY_*
  `name` - Subkey to delete
  `onlyIfEmpty` - If true will not delete a key if it contains any subkeys or values
Returns:
  If the function succeeds, the return value is 0