net.ponder2
Class Util

java.lang.Object
  extended by net.ponder2.Util

public class Util
extends java.lang.Object

Utility routines to support the Ponder2 framework

Version:
$Id:$
Author:
Kevin Twidle

Field Summary
protected static Util util
           
 
Constructor Summary
Util()
           
 
Method Summary
static void addLoadPath(java.lang.String path)
           
static boolean canPerform(P2Object source, P2Object target, java.lang.String operation, P2Object... args)
          Check if an object has permission to perform an operation on another object.
static java.io.InputStream getInputStream(java.net.URI uri)
           
protected static java.lang.Class<P2ObjectAdaptor> getManagedObjectAdaptor(java.lang.String name)
           
static P2Object getRemoteObject(java.lang.String name, java.lang.String location)
          Imports a remote Managed Object from another SMC using the protocol defined in the URI
static P2Object loadFactory(java.lang.String name)
          loads Managed Object code into this VM and returns a Ponder2 factory object
protected  java.io.InputStream openResource(java.lang.String resource)
           
static void parseFile(P2Object source, java.lang.String name)
           
static void parseFile(P2Object source, java.lang.String name, P2Hash variables)
           
static void parseFile(P2Object source, java.lang.String name, XMLParser parser)
           
static P2Object resolve(P2ManagedObject dom, Path path)
          resolves a pathname of a managed object into an OID
static P2Object resolve(P2Object dom, Path path)
           
static P2Object resolve(P2Object dom, java.lang.String name)
           
static P2Object resolve(Path path)
          resolves a pathname of a managed object into an OID
static P2Object resolve(java.lang.String name)
           
static P2Object resolve(java.lang.String defaultDomain, Path path)
          resolves a pathname of a managed object into an OID
static P2Object resolve(java.lang.String defaultDomain, java.lang.String name)
           
static void setLoadPath(java.lang.String[] paths)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

util

protected static Util util
Constructor Detail

Util

public Util()
Method Detail

resolve

public static P2Object resolve(java.lang.String name)
                        throws Ponder2Exception
Throws:
Ponder2Exception

resolve

public static P2Object resolve(java.lang.String defaultDomain,
                               java.lang.String name)
                        throws Ponder2Exception
Throws:
Ponder2Exception

resolve

public static P2Object resolve(java.lang.String defaultDomain,
                               Path path)
                        throws Ponder2Exception
resolves a pathname of a managed object into an OID

Parameters:
defaultDomain - the starting point if path is relative
path - the name of the managed object
Returns:
the P2ManagedObject of the managed object or null if not found
Throws:
Ponder2Exception

resolve

public static P2Object resolve(Path path)
                        throws Ponder2Exception
resolves a pathname of a managed object into an OID

Parameters:
path - the name of the managed object
Returns:
the P2ManagedObject of the managed object or null if not found
Throws:
Ponder2Exception

resolve

public static P2Object resolve(P2Object dom,
                               java.lang.String name)
                        throws Ponder2Exception
Throws:
Ponder2Exception

resolve

public static P2Object resolve(P2Object dom,
                               Path path)
                        throws Ponder2Exception
Throws:
Ponder2Exception

resolve

public static P2Object resolve(P2ManagedObject dom,
                               Path path)
                        throws Ponder2Exception
resolves a pathname of a managed object into an OID

Parameters:
dom - the starting point if name is relative
path - the name of the managed object
Returns:
the P2ManagedObject of the managed object or null if not found
Throws:
Ponder2Exception

parseFile

public static void parseFile(P2Object source,
                             java.lang.String name)
                      throws Ponder2Exception
Throws:
Ponder2Exception

parseFile

public static void parseFile(P2Object source,
                             java.lang.String name,
                             P2Hash variables)
                      throws Ponder2Exception
Throws:
Ponder2Exception

parseFile

public static void parseFile(P2Object source,
                             java.lang.String name,
                             XMLParser parser)
                      throws Ponder2Exception
Throws:
Ponder2Exception

loadFactory

public static P2Object loadFactory(java.lang.String name)
                            throws Ponder2Exception
loads Managed Object code into this VM and returns a Ponder2 factory object

Parameters:
name - the URL of the object to be loaded. Currently the scheme can only be blank or 'resource'. e.g.
 MyObjectName
 resource:MyObjectName
 
Returns:
the factory object of the new managed object type
Throws:
Ponder2Exception - it it can't be found or there is a syntax error

setLoadPath

public static void setLoadPath(java.lang.String[] paths)

addLoadPath

public static void addLoadPath(java.lang.String path)

getManagedObjectAdaptor

protected static java.lang.Class<P2ObjectAdaptor> getManagedObjectAdaptor(java.lang.String name)

getRemoteObject

public static P2Object getRemoteObject(java.lang.String name,
                                       java.lang.String location)
                                throws Ponder2Exception
Imports a remote Managed Object from another SMC using the protocol defined in the URI

Parameters:
name - the pathname of the remote object
location - the URI of the remote SMC
Returns:
the imported object. This is actually an External Managed Object
Throws:
Ponder2Exception - if the object cannot be found or imported

getInputStream

public static java.io.InputStream getInputStream(java.net.URI uri)
                                          throws java.net.MalformedURLException,
                                                 java.io.IOException,
                                                 java.net.URISyntaxException
Throws:
java.net.MalformedURLException
java.io.IOException
java.net.URISyntaxException

openResource

protected java.io.InputStream openResource(java.lang.String resource)

canPerform

public static boolean canPerform(P2Object source,
                                 P2Object target,
                                 java.lang.String operation,
                                 P2Object... args)
Check if an object has permission to perform an operation on another object. Returns true or false.

Parameters:
source - the source object
target - the target object
operation - the operation to be performed
args - the arguments for the operation
Returns:
true if the operation would be allowed


Copyright © 2008 Imperial College. All Rights Reserved.