Franz Inc, AllegroGraph

com.franz.agraph.repository
Class AGServer

java.lang.Object
  extended by com.franz.agraph.repository.AGServer
All Implemented Interfaces:
Closeable

public class AGServer
extends Object
implements Closeable

The starting point for interacting with an AllegroGraph server. An AGServer references AGCatalogs, which reference AGRepositories, from which connections may be obtained, on which data is manipulated and queried.

AGServer provides methods for User (and Role) Management.

AGServer also provides federated repositories.


Constructor Summary
AGServer(com.franz.agraph.http.AGHTTPClient httpClient)
          Creates an instance for interacting with an AllegroGraph server.
AGServer(String serverURL)
          Creates an instance for interacting with an AllegroGraph server.
AGServer(String username, String password, com.franz.agraph.http.AGHTTPClient httpClient)
          Creates an instance for interacting with an AllegroGraph server.
AGServer(String serverURL, String username, String password)
          Creates an instance for interacting with an AllegroGraph server.
 
Method Summary
 void addRole(String role)
          Adds a role to this server.
 void addRoleAccess(String role, boolean read, boolean write, String catalog, String repository)
          Adds to a role's access list for this server.
 void addRolePermission(String role, String permission)
          Adds to a role's permission list.
 void addRoleSecurityFilter(String role, String type, String s, String p, String o, String g)
          Adds a security filter for a role.
 void addUser(String user, String password)
          Adds a user to the server.
 void addUserAccess(String user, boolean read, boolean write, String catalog, String repository)
          Adds to a user's access list for this server.
 void addUserPermission(String user, String permission)
          Adds to a user's permission list.
 void addUserRole(String user, String role)
          Adds a role for this user.
 void addUserSecurityFilter(String user, String type, String s, String p, String o, String g)
          Adds a security filter for a user.
 void changeUserPassword(String user, String password)
           
 void close()
          Close the HTTP connection resources to the AllegroGraph server.
 AGCatalog createCatalog(String catalogID)
          Returns an AGCatalog instance for the given catalogID.
 void deleteCatalog(String catalogID)
          Deletes any catalog with the given repository id.
 void deleteRole(String role)
          Deletes a role from this server.
 void deleteRoleAccess(String role, boolean read, boolean write, String catalog, String repository)
          Deletes from a role's access list for this server.
 void deleteRolePermission(String role, String permission)
          Delete from a role's permission list.
 void deleteRoleSecurityFilter(String role, String type, String s, String p, String o, String g)
          Deletes a security filter for a role.
 void deleteUser(String user)
          Deletes a user from the server.
 void deleteUserAccess(String user, boolean read, boolean write, String catalog, String repository)
          Deletes from a user's access list for this server.
 void deleteUserPermission(String user, String permission)
          Deletes from a user's permission list.
 void deleteUserRole(String user, String role)
          Deletes a role for this user.
 void deleteUserSecurityFilter(String user, String type, String s, String p, String o, String g)
          Deletes a security filter for a user.
 AGVirtualRepository federate(AGAbstractRepository... repositories)
          Creates a federated view of multiple repositories.
 String getBuildDate()
          Returns the server's build date.
 AGCatalog getCatalog()
          Returns the unnamed root catalog for this AllegroGraph server.
 AGCatalog getCatalog(String catalogID)
          Gets the catalog instance for a given catalog id.
 com.franz.agraph.http.AGHTTPClient getHTTPClient()
          Returns the AGHTTPClient instance for this server.
 String getRevision()
          Returns the server's revision info.
 AGCatalog getRootCatalog()
          Returns the unnamed root catalog for this AllegroGraph server.
 String getServerURL()
          Returns the URL of this AllegroGraph server.
 String getVersion()
          Returns the server version.
 List<String> listCatalogs()
          Returns a List of catalog ids known to this AllegroGraph server.
 org.json.JSONArray listRoleAccess(String role)
          Returns a role's access list for this server.
 List<String> listRolePermissions(String role)
          Returns a list of permissions for a role.
 List<String> listRoles()
          Returns a list of roles known to this server.
 org.json.JSONArray listRoleSecurityFilters(String role, String type)
          Returns a list of security filters of the given type for a role
 org.json.JSONArray listUserAccess(String user)
          Returns a user's access list for this server.
 org.json.JSONArray listUserEffectiveAccess(String user)
          Returns a user's effective access list for this server.
 List<String> listUserEffectivePermissions(String user)
          Returns a list of effective permissions for a user.
 List<String> listUserPermissions(String user)
          Returns a list of permissions for a user.
 List<String> listUserRoles(String user)
          Returns a list of roles for a user.
 List<String> listUsers()
          Returns a List of user ids known to this AllegroGraph server.
 org.json.JSONArray listUserSecurityFilters(String user, String type)
          Returns a list of security filters of the given type for a user
 AGVirtualRepository virtualRepository(String storeSpec)
          Creates a virtual repository with the given store specification.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AGServer

public AGServer(String serverURL,
                String username,
                String password)
Creates an instance for interacting with an AllegroGraph server. Uses Basic authentication.

Parameters:
serverURL - the URL of the server (trailing slashes are removed).
username - a user id for authenticating with the server
password - a password for authenticating with the server
See Also:
AGServer(String)

AGServer

public AGServer(String username,
                String password,
                com.franz.agraph.http.AGHTTPClient httpClient)
Creates an instance for interacting with an AllegroGraph server. Uses Basic authentication with the server as configured in the httpClient instance.

Parameters:
username - a user id for authenticating with the server
password - a password for authenticating with the server
httpClient - the AGHTTPClient instance to use

AGServer

public AGServer(com.franz.agraph.http.AGHTTPClient httpClient)
Creates an instance for interacting with an AllegroGraph server.

Attempts X.509 server and client authentication when no username and password have been set in the httpClient, and properties such as

 javax.net.ssl.keyStore, 
 javax.net.ssl.keyStorePassword, 
 javax.net.ssl.keyStoreType, and
 javax.net.ssl.trustStore
 
have been set appropriately.

Also set SSL directives in the server's config file, e.g:

 SSLPort 10036
 SSLClientAuthRequired true
 SSLClientAuthUsernameField CN
 SSLCertificate /path/agraph.cert
 SSLCAFile /path/ca.cert
 
For more details, see Server configuration.

Parameters:
httpClient - the AGHTTPClient instance to use
See Also:
AGServer(String)

AGServer

public AGServer(String serverURL)
Creates an instance for interacting with an AllegroGraph server.

Uses a new default AGHTTPClient instance having the given serverURL.

Attempts X.509 server and client authentication when properties such as

 javax.net.ssl.keyStore, 
 javax.net.ssl.keyStorePassword, 
 javax.net.ssl.keyStoreType, and
 javax.net.ssl.trustStore
 
have been set appropriately.

Also set SSL directives in the server's config file, e.g:

 SSLPort 10036
 SSLClientAuthRequired true
 SSLClientAuthUsernameField CN
 SSLCertificate /path/agraph.cert
 SSLCAFile /path/ca.cert
 
For more details, see Server configuration.

Parameters:
serverURL - the URL of the server (trailing slashes are removed).
See Also:
AGServer(String, String, String), AGServer(AGHTTPClient)
Method Detail

getServerURL

public String getServerURL()
Returns the URL of this AllegroGraph server.

Returns:
the URL of this AllegroGraph server.

getHTTPClient

public com.franz.agraph.http.AGHTTPClient getHTTPClient()
Returns the AGHTTPClient instance for this server.

Returns:
the AGHTTPClient instance for this server.

getVersion

public String getVersion()
                  throws com.franz.agraph.http.exception.AGHttpException
Returns the server version.

Throws:
com.franz.agraph.http.exception.AGHttpException

getBuildDate

public String getBuildDate()
                    throws com.franz.agraph.http.exception.AGHttpException
Returns the server's build date.

Throws:
com.franz.agraph.http.exception.AGHttpException

getRevision

public String getRevision()
                   throws com.franz.agraph.http.exception.AGHttpException
Returns the server's revision info.

Throws:
com.franz.agraph.http.exception.AGHttpException

getRootCatalog

public AGCatalog getRootCatalog()
Returns the unnamed root catalog for this AllegroGraph server. Note: this method may be deprecated in an upcoming release.

Returns:
the root catalog.
See Also:
getCatalog()

listCatalogs

public List<String> listCatalogs()
                          throws com.franz.agraph.http.exception.AGHttpException
Returns a List of catalog ids known to this AllegroGraph server.

Returns:
List of catalog ids.
Throws:
org.openrdf.OpenRDFException
com.franz.agraph.http.exception.AGHttpException

getCatalog

public AGCatalog getCatalog(String catalogID)
                     throws com.franz.agraph.http.exception.AGHttpException
Gets the catalog instance for a given catalog id. Returns the root catalog if the id is a root id. If the catalog Id is not found on the server, returns null.

Parameters:
catalogID - a catalog id.
Returns:
the corresponding catalog instance.
Throws:
com.franz.agraph.http.exception.AGHttpException

getCatalog

public AGCatalog getCatalog()
Returns the unnamed root catalog for this AllegroGraph server.

Returns:
the root catalog.

createCatalog

public AGCatalog createCatalog(String catalogID)
                        throws com.franz.agraph.http.exception.AGHttpException
Returns an AGCatalog instance for the given catalogID. If the catalog already exists on the server, an AGCatalog instance is simply returned. If the catalog does not exist, it is created if the server has been configured to allow dynamic catalogs; otherwise, an exception is thrown.

Parameters:
catalogID - the id (the name) of the catalog
Returns:
an AGCatalog instance.
Throws:
com.franz.agraph.http.exception.AGHttpException

deleteCatalog

public void deleteCatalog(String catalogID)
                   throws com.franz.agraph.http.exception.AGHttpException
Deletes any catalog with the given repository id. This method only applies to dynamically created catalogs.

Parameters:
catalogID - the name of the catalog to delete.
Throws:
com.franz.agraph.http.exception.AGHttpException

virtualRepository

public AGVirtualRepository virtualRepository(String storeSpec)
Creates a virtual repository with the given store specification.

The storeSpec parameter is a string using the minilanguage for store specification described in the HTTP protocol document (see the store parameter there).

This syntax can be used to create federations, graph-filtered stores, reasoning stores, and compositions thereof.

Parameters:
storeSpec - the store specification

federate

public AGVirtualRepository federate(AGAbstractRepository... repositories)
Creates a federated view of multiple repositories. See Managing Massive Data - Federation.

Returns:
a virtual repository that federates queries across multiple physical repositories

close

public void close()
Close the HTTP connection resources to the AllegroGraph server.

Specified by:
close in interface Closeable
See Also:
Closeable.close()

listUsers

public List<String> listUsers()
                       throws com.franz.agraph.http.exception.AGHttpException
Returns a List of user ids known to this AllegroGraph server.

Returns:
List of user ids.
Throws:
com.franz.agraph.http.exception.AGHttpException

addUser

public void addUser(String user,
                    String password)
             throws com.franz.agraph.http.exception.AGHttpException
Adds a user to the server.

Parameters:
user - user id to add
password - user's password
Throws:
com.franz.agraph.http.exception.AGHttpException

deleteUser

public void deleteUser(String user)
                throws com.franz.agraph.http.exception.AGHttpException
Deletes a user from the server.

Parameters:
user - user id to delete
Throws:
com.franz.agraph.http.exception.AGHttpException

addUserAccess

public void addUserAccess(String user,
                          boolean read,
                          boolean write,
                          String catalog,
                          String repository)
                   throws com.franz.agraph.http.exception.AGHttpException
Adds to a user's access list for this server.

Access is documented here.

Parameters:
user - user id
read - read access
write - write access
catalog - catalog id, or "*" (or null) for all catalogs
repository - repository id, or "*" (or null) for all repos, in the given catalog(s)
Throws:
com.franz.agraph.http.exception.AGHttpException

deleteUserAccess

public void deleteUserAccess(String user,
                             boolean read,
                             boolean write,
                             String catalog,
                             String repository)
                      throws com.franz.agraph.http.exception.AGHttpException
Deletes from a user's access list for this server.

Access is documented here.

Parameters:
user - user id
read - read access
write - write access
catalog - catalog id, or "*" (or null) for all catalogs
repository - repository id, or "*" (or null) for all repos, in the given catalog(s)
Throws:
com.franz.agraph.http.exception.AGHttpException

listUserAccess

public org.json.JSONArray listUserAccess(String user)
                                  throws com.franz.agraph.http.exception.AGHttpException
Returns a user's access list for this server.

Access is documented here.

Parameters:
user - user id
Throws:
com.franz.agraph.http.exception.AGHttpException

addUserSecurityFilter

public void addUserSecurityFilter(String user,
                                  String type,
                                  String s,
                                  String p,
                                  String o,
                                  String g)
                           throws com.franz.agraph.http.exception.AGHttpException
Adds a security filter for a user.

Parameters:
user - user id
type - filter type is "allow" or "disallow"
s - subject to allow/disallow, in NTriples format
p - predicate to allow/disallow, in NTriples format
o - object to allow/disallow, in NTriples format
g - graph to allow/disallow, in NTriples format
Throws:
com.franz.agraph.http.exception.AGHttpException

deleteUserSecurityFilter

public void deleteUserSecurityFilter(String user,
                                     String type,
                                     String s,
                                     String p,
                                     String o,
                                     String g)
                              throws com.franz.agraph.http.exception.AGHttpException
Deletes a security filter for a user.

Parameters:
user - user id
type - filter type is "allow" or "disallow"
s - subject to allow/disallow, in NTriples format
p - predicate to allow/disallow, in NTriples format
o - object to allow/disallow, in NTriples format
g - graph to allow/disallow, in NTriples format
Throws:
com.franz.agraph.http.exception.AGHttpException

listUserSecurityFilters

public org.json.JSONArray listUserSecurityFilters(String user,
                                                  String type)
                                           throws com.franz.agraph.http.exception.AGHttpException
Returns a list of security filters of the given type for a user

Parameters:
user - user id
type - filter type is "allow" or "disallow"
Throws:
com.franz.agraph.http.exception.AGHttpException

changeUserPassword

public void changeUserPassword(String user,
                               String password)

listUserEffectiveAccess

public org.json.JSONArray listUserEffectiveAccess(String user)
                                           throws com.franz.agraph.http.exception.AGHttpException
Returns a user's effective access list for this server.

Includes the access granted to roles that this user has.

Parameters:
user - user id
Throws:
com.franz.agraph.http.exception.AGHttpException

listUserPermissions

public List<String> listUserPermissions(String user)
                                 throws com.franz.agraph.http.exception.AGHttpException
Returns a list of permissions for a user.

Permissions are documented here.

Parameters:
user - user id
Returns:
list of permissions.
Throws:
com.franz.agraph.http.exception.AGHttpException

listUserEffectivePermissions

public List<String> listUserEffectivePermissions(String user)
                                          throws com.franz.agraph.http.exception.AGHttpException
Returns a list of effective permissions for a user.

Includes the permission granted to roles that this user has.

Permissions are documented here.

Parameters:
user - user id
Returns:
list of permissions.
Throws:
com.franz.agraph.http.exception.AGHttpException

addUserPermission

public void addUserPermission(String user,
                              String permission)
                       throws com.franz.agraph.http.exception.AGHttpException
Adds to a user's permission list.

Parameters:
user - user id
permission - "super" or "eval" or "session"
Throws:
com.franz.agraph.http.exception.AGHttpException

deleteUserPermission

public void deleteUserPermission(String user,
                                 String permission)
                          throws com.franz.agraph.http.exception.AGHttpException
Deletes from a user's permission list.

Parameters:
user - user id
permission - "super" or "eval" or "session"
Throws:
com.franz.agraph.http.exception.AGHttpException

listRoles

public List<String> listRoles()
                       throws com.franz.agraph.http.exception.AGHttpException
Returns a list of roles known to this server.

Returns:
a list of roles.
Throws:
com.franz.agraph.http.exception.AGHttpException

addRole

public void addRole(String role)
             throws com.franz.agraph.http.exception.AGHttpException
Adds a role to this server.

Parameters:
role - role id
Throws:
com.franz.agraph.http.exception.AGHttpException

addRoleAccess

public void addRoleAccess(String role,
                          boolean read,
                          boolean write,
                          String catalog,
                          String repository)
                   throws com.franz.agraph.http.exception.AGHttpException
Adds to a role's access list for this server.

Access is documented here.

Parameters:
role - role id
read - read access
write - write access
catalog - catalog id, or "*" (or null) for all catalogs
repository - repository id, or "*" (or null) for all repos, in the given catalog(s)
Throws:
com.franz.agraph.http.exception.AGHttpException

listRoleAccess

public org.json.JSONArray listRoleAccess(String role)
                                  throws com.franz.agraph.http.exception.AGHttpException
Returns a role's access list for this server.

Access is documented here.

Parameters:
role - role id
Throws:
com.franz.agraph.http.exception.AGHttpException

addRoleSecurityFilter

public void addRoleSecurityFilter(String role,
                                  String type,
                                  String s,
                                  String p,
                                  String o,
                                  String g)
                           throws com.franz.agraph.http.exception.AGHttpException
Adds a security filter for a role.

Parameters:
role - role id
type - filter type is "allow" or "disallow"
s - subject to allow/disallow, in NTriples format
p - predicate to allow/disallow, in NTriples format
o - object to allow/disallow, in NTriples format
g - graph to allow/disallow, in NTriples format
Throws:
com.franz.agraph.http.exception.AGHttpException

listRoleSecurityFilters

public org.json.JSONArray listRoleSecurityFilters(String role,
                                                  String type)
                                           throws com.franz.agraph.http.exception.AGHttpException
Returns a list of security filters of the given type for a role

Parameters:
role - role id
type - filter type is "allow" or "disallow"
Throws:
com.franz.agraph.http.exception.AGHttpException

deleteRoleSecurityFilter

public void deleteRoleSecurityFilter(String role,
                                     String type,
                                     String s,
                                     String p,
                                     String o,
                                     String g)
                              throws com.franz.agraph.http.exception.AGHttpException
Deletes a security filter for a role.

Parameters:
role - role id
type - filter type is "allow" or "disallow"
s - subject to allow/disallow, in NTriples format
p - predicate to allow/disallow, in NTriples format
o - object to allow/disallow, in NTriples format
g - graph to allow/disallow, in NTriples format
Throws:
com.franz.agraph.http.exception.AGHttpException

listUserRoles

public List<String> listUserRoles(String user)
                           throws com.franz.agraph.http.exception.AGHttpException
Returns a list of roles for a user.

Returns:
a list of roles.
Throws:
com.franz.agraph.http.exception.AGHttpException

addUserRole

public void addUserRole(String user,
                        String role)
                 throws com.franz.agraph.http.exception.AGHttpException
Adds a role for this user.

Parameters:
user - user id
role - role id
Throws:
com.franz.agraph.http.exception.AGHttpException

deleteUserRole

public void deleteUserRole(String user,
                           String role)
                    throws com.franz.agraph.http.exception.AGHttpException
Deletes a role for this user.

Parameters:
user - user id
role - role id
Throws:
com.franz.agraph.http.exception.AGHttpException

deleteRoleAccess

public void deleteRoleAccess(String role,
                             boolean read,
                             boolean write,
                             String catalog,
                             String repository)
                      throws com.franz.agraph.http.exception.AGHttpException
Deletes from a role's access list for this server.

Parameters:
role - role id
read - read access
write - write access
catalog - catalog id, or "*" (or null) for all catalogs
repository - repository id, or "*" (or null) for all repos, in the given catalog(s)
Throws:
com.franz.agraph.http.exception.AGHttpException

deleteRole

public void deleteRole(String role)
                throws com.franz.agraph.http.exception.AGHttpException
Deletes a role from this server.

Parameters:
role - role id
Throws:
com.franz.agraph.http.exception.AGHttpException

addRolePermission

public void addRolePermission(String role,
                              String permission)
                       throws com.franz.agraph.http.exception.AGHttpException
Adds to a role's permission list.

Parameters:
role - role id
permission - "super" or "eval" or "session"
Throws:
com.franz.agraph.http.exception.AGHttpException

deleteRolePermission

public void deleteRolePermission(String role,
                                 String permission)
                          throws com.franz.agraph.http.exception.AGHttpException
Delete from a role's permission list.

Parameters:
role - role id
permission - "super" or "eval" or "session"
Throws:
com.franz.agraph.http.exception.AGHttpException

listRolePermissions

public List<String> listRolePermissions(String role)
                                 throws com.franz.agraph.http.exception.AGHttpException
Returns a list of permissions for a role.

Permissions are documented here.

Parameters:
role - role id
Returns:
list of permissions.
Throws:
com.franz.agraph.http.exception.AGHttpException

Copyright © 2008-2012 Franz Inc.