Package gov.llnl.lc.chaos

# Class Genders

java.lang.Object
gov.llnl.lc.chaos.Genders

public class Genders extends Object
Java JNI extensions wrapper around libgenders C library. Most library functions behave similarly to C api functions with minor exceptions documented below.

## Constructor Summary

Constructors
Constructor
Description
`Genders()`
Creates a Genders object, loading the default genders database
`Genders(String filename)`
Creates a Genders object, loading the specified genders database

## Method Summary

Modifier and Type
Method
Description
`void`
`cleanup()`
Cleans up allocated memory.
`String[]`
`getattr()`
Returns all the attributes of the node you are running on
`String[]`
`getattr(String node)`
Returns all the attributes of the specified node
`String[]`
`getattr_all()`
Returns all of the attributes in the genders database
`String`
`getattrval(String attr)`
Returns the value of the specified attribute on the current node you are running on
`String`
`getattrval(String node, String attr)`
Returns the value of the specified attribute on the specified node.
`int`
`getmaxattrs()`
Returns maximum number of attributes of any one node parsed in the genders database
`String`
`getnodename()`
Returns the current node you are on, in shortened hostname format.
`String[]`
`getnodes()`
Returns all the nodes in the genders database
`String[]`
`getnodes(String attr)`
Returns all the nodes with the specified attribute
`String[]`
`getnodes(String attr, String val)`
Returns all the nodes with the specified attribute and value
`int`
`getnumattrs()`
Returns number of attributes parsed in the genders database
`int`
`getnumnodes()`
Returns number of nodes parsed in the genders database
`boolean`
`isattr(String attr)`
Tests if the specified attribute exists in the genders database
`boolean`
`isattrval(String attr, String val)`
Tests if the specified value exists in the genders database
`boolean`
`isnode(String node)`
Tests if the specified node exists in the genders database
`String[]`
`query(String query)`
Returns nodes specified via the specified query.
`boolean`
`testattr(String attr)`
Tests if the current node has the specified attribute
`boolean`
`testattr(String node, String attr)`
Tests if the specified node has the specified attribute
`boolean`
`testattrval(String attr, String val)`
Tests if the current node has the specified attribute and value.
`boolean`
`testattrval(String node, String attr, String val)`
Tests if the specified node has the specified attribute and value.
`boolean`
`testquery(String query)`
Test if the current node meets the conditions of the specified query.
`boolean`
`testquery(String node, String query)`
Test if the specified node meets the conditions of the specified query.

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

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

## Constructor Details

### Genders

public Genders() throws GendersException
Creates a Genders object, loading the default genders database

Throws:
  `GendersException`

### Genders

public Genders(String filename) throws GendersException
Creates a Genders object, loading the specified genders database

Throws:
  `GendersException`

## Method Details

### getnumnodes

public int getnumnodes() throws GendersException
Returns number of nodes parsed in the genders database

Throws:
  `GendersException` - on error

### getnumattrs

public int getnumattrs() throws GendersException
Returns number of attributes parsed in the genders database

Throws:
  `GendersException` - on error

### getmaxattrs

public int getmaxattrs() throws GendersException
Returns maximum number of attributes of any one node parsed in the genders database

Throws:
  `GendersException` - on error

### getnodename

public String getnodename() throws GendersException
Returns the current node you are on, in shortened hostname format.

Throws:
  `GendersException` - on error

### getnodes

public String[] getnodes() throws GendersException
Returns all the nodes in the genders database

Throws:
  `GendersException` - on error

### getnodes

public String[] getnodes(String attr) throws GendersException
Returns all the nodes with the specified attribute

Throws:
  `GendersException` - on error

### getnodes

public String[] getnodes(String attr, String val) throws GendersException
Returns all the nodes with the specified attribute and value

Throws:
  `GendersException` - on error

### getattr

public String[] getattr() throws GendersException
Returns all the attributes of the node you are running on

Throws:
  `GendersException` - on error

### getattr

public String[] getattr(String node) throws GendersException
Returns all the attributes of the specified node

Throws:
  `GendersException` - on error

### getattr_all

public String[] getattr_all() throws GendersException
Returns all of the attributes in the genders database

Throws:
  `GendersException` - on error

### getattrval

public String getattrval(String attr) throws GendersException
Returns the value of the specified attribute on the current node you are running on

Throws:
  `GendersException` - on error

### getattrval

public String getattrval(String node, String attr) throws GendersException
Returns the value of the specified attribute on the specified node. May be an empty string if the attribute contains no value.

Throws:
  `GendersException` - on error

### testattr

public boolean testattr(String attr) throws GendersException
Tests if the current node has the specified attribute

Throws:
  `GendersException` - on error

### testattr

public boolean testattr(String node, String attr) throws GendersException
Tests if the specified node has the specified attribute

Throws:
  `GendersException` - on error

### testattrval

public boolean testattrval(String attr, String val) throws GendersException
Tests if the current node has the specified attribute and value.

Throws:
  `GendersException` - on error

### testattrval

public boolean testattrval(String node, String attr, String val) throws GendersException
Tests if the specified node has the specified attribute and value.

Throws:
  `GendersException` - on error

### isnode

public boolean isnode(String node) throws GendersException
Tests if the specified node exists in the genders database

Throws:
  `GendersException` - on error

### isattr

public boolean isattr(String attr) throws GendersException
Tests if the specified attribute exists in the genders database

Throws:
  `GendersException` - on error

### isattrval

public boolean isattrval(String attr, String val) throws GendersException
Tests if the specified value exists in the genders database

Throws:
  `GendersException` - on error

### query

public String[] query(String query) throws GendersException
Returns nodes specified via the specified query. Signify union with '||', intersection with '&&', * difference with '--', and complement with '~'. Operations are performed left to right. Parentheses can be used to change the order of operations.

Throws:
  `GendersException` - on error

### testquery

public boolean testquery(String query) throws GendersException
Test if the current node meets the conditions of the specified query.

Throws:
  `GendersException` - on error

### testquery

public boolean testquery(String node, String query) throws GendersException
Test if the specified node meets the conditions of the specified query.

Throws:
  `GendersException` - on error

### cleanup

public void cleanup()
Cleans up allocated memory. Must be called to free memory from underlying calls. After this method is called, all genders methods above cannot be called and will result in errors.