SmartFrog 3.10.000

org.smartfrog.services.filesystem
Class FileUsingComponentImpl

java.lang.Object
  extended by org.smartfrog.sfcore.reference.RemoteReferenceResolverHelperImpl
      extended by org.smartfrog.sfcore.prim.PrimImpl
          extended by org.smartfrog.services.filesystem.FileUsingComponentImpl
All Implemented Interfaces:
java.rmi.Remote, FileIntf, FileUsingComponent, UriIntf, MessageKeys, Diagnostics, Liveness, Prim, RemoteReferenceResolver, RemoteReferenceResolverHelper
Direct Known Subclasses:
DownloadImpl, FileImpl, LoadPropertyFileImpl, LocalFilestoreImpl, MkdirImpl, SelfDeletingFileImpl, TempDirImpl, TempFileImpl, TouchFileImpl

public class FileUsingComponentImpl
extends PrimImpl
implements FileUsingComponent, FileIntf

This is a class of limited usefulness. It exists to be subclassed. Why is it not abstract? For easier testing created 30-Mar-2005 16:50:04


Field Summary
protected  java.io.File file
          the file we are bonded to
 
Fields inherited from class org.smartfrog.sfcore.prim.PrimImpl
refLivenessDelay, refLivenessFactor, sfCompleteName, sfContext, sfDeployHooks, sfDeployWithHooks, sfExportRef, sfIsDeployed, sfIsStarted, sfIsTerminated, sfIsTerminating, sfLivenessCount, sfLivenessDelay, sfLivenessFactor, sfLivenessSender, sfParent, sfStartHooks, sfTerminateWithHooks, termLock
 
Fields inherited from interface org.smartfrog.services.filesystem.FileIntf
ATTR_DELETE_ON_EXIT, ATTR_DIR, ATTR_EXISTS, ATTR_IS_DIRECTORY, ATTR_IS_EMPTY, ATTR_IS_FILE, ATTR_IS_HIDDEN, ATTR_LENGTH, ATTR_MUST_BE_DIR, ATTR_MUST_BE_FILE, ATTR_MUST_EXIST, ATTR_MUST_READ, ATTR_MUST_WRITE, ATTR_SHORTNAME, ATTR_TEST_ON_LIVENESS, ATTR_TEST_ON_STARTUP, ATTR_TIMESTAMP
 
Fields inherited from interface org.smartfrog.sfcore.common.MessageKeys
CANNOT_LINK_TO_PREDICATE, COMPONENT_TERMINATED, COPY_FAILED, COPY_SERIALIZE_FAILED, ERROR_NO_SECURITY_BUT_REQUIRED, ILLEGAL_BOOLEAN_PARAMETER, ILLEGAL_NUMERIC_PARAMETER, ILLEGAL_STRING_PARAMETER, ILLEGAL_VECTOR_PARAMETER, LIVENESS_SEND_FAILURE, LIVENESS_SEND_FAILURE_IN, MISSING_PARAMETER, MSG_CLASS_NOT_FOUND, MSG_CONNECT_ERR, MSG_CONT_OTHER_DEPLOY, MSG_DEPLOY_COMP_TERMINATED, MSG_DEPLOY_SUCCESS, MSG_DEPLOYWITH_PHASE_FAILED, MSG_DETACH_SUCCESS, MSG_DETACH_TERMINATE_SUCCESS, MSG_ERR_DEPLOY_FROM_URL, MSG_ERR_PARSE, MSG_ERR_RESOLVE_PHASE, MSG_ERR_SF_RUNNING, MSG_ERR_TERM, MSG_FAILED_INET_ADDRESS_LOOKUP, MSG_FAILED_TO_CONTACT_PARENT, MSG_FILE_NOT_FOUND, MSG_HOOK_ACTION_FAILED, MSG_ILLEGAL_ACCESS, MSG_ILLEGAL_CLASS_TYPE, MSG_ILLEGAL_CLASS_TYPE_EXPECTING_GOT, MSG_ILLEGAL_REFERENCE, MSG_INPUTSTREAM_NULL, MSG_INSTANTIATION_ERROR, MSG_INVALID_OBJECT_TYPE, MSG_INVOCATION_TARGET, MSG_LANG_NOT_FOUND, MSG_LIVENESS_START_FAILED, MSG_LOADING_URL, MSG_METHOD_NOT_FOUND, MSG_NON_REP_ATTRIB, MSG_NOT_COMPONENT_REFERENCE, MSG_NOT_FOUND_ATTRIBUTE, MSG_NOT_FOUND_REFERENCE, MSG_NOT_VALUE_REFERENCE, MSG_NULL_DEF_METHOD, MSG_NULL_URL, MSG_OBJECT_REGISTRATION_FAILED, MSG_PARENT_LOCATION_FAILED, MSG_PING_SUCCESS, MSG_RANDM_ERR, MSG_REMOTE_CONNECT_ERR, MSG_REPEATED_ATTRIBUTE, MSG_SF_DEAD, MSG_SF_READY, MSG_SF_TERMINATED, MSG_STACKTRACE_FOLLOWS, MSG_START_COMP_TERMINATED, MSG_TERMINATE_SUCCESS, MSG_UNHANDLED_EXCEPTION, MSG_UNKNOWN_HOST, MSG_UNRESOLVED_REFERENCE, MSG_UNRESOLVED_REFERENCE_IN, MSG_UPDATE_SUCCESS, MSG_URL_NOT_FOUND, MSG_URL_TO_PARSE_NOT_FOUND, MSG_WARNING_LIVENESS_ENABLED, MSG_WARNING_STACKTRACE_DISABLED, MSG_WARNING_STACKTRACE_ENABLED, ROOT_MUST_BE_COMPONENT, WARN_NO_SECURITY
 
Constructor Summary
FileUsingComponentImpl()
          Constructor .
 
Method Summary
protected  void bind(boolean mandatory, java.lang.String defval)
          Bind the class to the filename; indicate in the operation whether the filename is mandatory or not
 void bind(java.io.File newfile)
          Bind to a new file.
static java.lang.String bind(Prim component, boolean mandatory, java.lang.String defval)
          Bind the class to the filename; indicate in the operation whether the filename is mandatory or not
static void bind(Prim component, java.io.File newfile)
          Bind to a new file.
protected  void deleteFileIfNeeded()
          Helper method for all components that support delete-on-clearup; This should be called from the Prim.sfTerminatedWith(org.smartfrog.sfcore.prim.TerminationRecord, org.smartfrog.sfcore.prim.Prim) implementation -after calling the superclass.
 java.lang.String getAbsolutePath()
          get the absolute path of this file
 java.io.File getFile()
          get the file we are using
 java.net.URI getURI()
          get the URI of this file
protected  void setAbsolutePath(java.lang.String absolutePath)
          creates the file object instance, to the absolute path, then sets the attribute to the absolute path, and to the URI.
 java.lang.String toString()
          Returns the name of the file we are bound to.
 
Methods inherited from class org.smartfrog.sfcore.prim.PrimImpl
equals, hashCode, registerWithProcessCompound, sfAddAttribute, sfAttributeKeyFor, sfAttributes, sfCompleteName, sfCompleteNameSafe, sfContainsAttribute, sfContainsValue, sfContext, sfDeploy, sfDeployedHost, sfDeployedProcessName, sfDeployWith, sfDetach, sfDetachAndTerminate, sfDiagnosticsReport, sfDumpState, sfExport, sfExportRef, sfExportRef, sfGetApplicationLog, sfGetCoreLog, sfGetLog, sfIsDeployed, sfIsRemote, sfIsStarted, sfIsTerminated, sfIsTerminating, sfLivenessFailure, sfLog, sfParent, sfParentageChanged, sfPing, sfRemoveAttribute, sfReplaceAttribute, sfResolve, sfResolve, sfResolveHere, sfResolveHere, sfResolveParent, sfSetLog, sfStart, sfStartLivenessSender, sfStopLivenessSender, sfTerminate, sfTerminatedWith, sfTerminateQuietlyWith, sfTerminateWith, sfValues, terminateComponent, terminateNotifying
 
Methods inherited from class org.smartfrog.sfcore.reference.RemoteReferenceResolverHelperImpl
sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolveWithParser
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.smartfrog.sfcore.reference.RemoteReferenceResolverHelper
sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolveWithParser
 

Field Detail

file

protected java.io.File file
the file we are bonded to

Constructor Detail

FileUsingComponentImpl

public FileUsingComponentImpl()
                       throws java.rmi.RemoteException
Constructor .

Throws:
java.rmi.RemoteException - In case of network/rmi error
Method Detail

getAbsolutePath

public java.lang.String getAbsolutePath()
get the absolute path of this file

Specified by:
getAbsolutePath in interface FileIntf
Returns:
path of the file

getURI

public java.net.URI getURI()
get the URI of this file

Specified by:
getURI in interface UriIntf
Returns:
URI of the file

getFile

public java.io.File getFile()
get the file we are using

Returns:
the file

bind

protected void bind(boolean mandatory,
                    java.lang.String defval)
             throws java.rmi.RemoteException,
                    SmartFrogRuntimeException
Bind the class to the filename; indicate in the operation whether the filename is mandatory or not

Parameters:
mandatory - flag to indicate mandatoryness
defval - a default value to use if not mandatory (can be null)
Throws:
java.rmi.RemoteException - In case of network/rmi error
SmartFrogRuntimeException - runtime error

setAbsolutePath

protected void setAbsolutePath(java.lang.String absolutePath)
                        throws SmartFrogRuntimeException,
                               java.rmi.RemoteException
creates the file object instance, to the absolute path, then sets the attribute to the absolute path, and to the URI. From here on, getFile() is valid.

Parameters:
absolutePath - absolute pat of file
Throws:
SmartFrogRuntimeException - runtime error
java.rmi.RemoteException - In case of network/rmi error

bind

public void bind(java.io.File newfile)
          throws SmartFrogRuntimeException,
                 java.rmi.RemoteException
Bind to a new file. sets the FileUsingComponent.ATTR_ABSOLUTE_PATH and FileUsingComponent.ATTR_URI attributes. It also saves the file to the file attribute.

Parameters:
newfile - file to bind to to
Throws:
SmartFrogRuntimeException - runtime error
java.rmi.RemoteException - In case of network/rmi error

bind

public static java.lang.String bind(Prim component,
                                    boolean mandatory,
                                    java.lang.String defval)
                             throws java.rmi.RemoteException,
                                    SmartFrogRuntimeException
Bind the class to the filename; indicate in the operation whether the filename is mandatory or not

Parameters:
mandatory - flag to indicate mandatoryness
defval - a default value to use if not mandatory (can be null)
Returns:
the absolutePath value
Throws:
java.rmi.RemoteException - In case of network/rmi error
SmartFrogRuntimeException - runtime error

bind

public static void bind(Prim component,
                        java.io.File newfile)
                 throws SmartFrogRuntimeException,
                        java.rmi.RemoteException
Bind to a new file. sets the FileUsingComponent.ATTR_ABSOLUTE_PATH and FileUsingComponent.ATTR_URI attributes. This is a static function for use by any component that wants to set the relevant deploy-time attributes.

Parameters:
component - component to configure.
newfile - file to bind to to
Throws:
SmartFrogRuntimeException - runtime error
java.rmi.RemoteException - In case of network/rmi error

toString

public java.lang.String toString()
Returns the name of the file we are bound to.

Overrides:
toString in class PrimImpl
Returns:
string form for this component

deleteFileIfNeeded

protected void deleteFileIfNeeded()
Helper method for all components that support delete-on-clearup; This should be called from the Prim.sfTerminatedWith(org.smartfrog.sfcore.prim.TerminationRecord, org.smartfrog.sfcore.prim.Prim) implementation -after calling the superclass. Will delete the file if FileIntf.ATTR_DELETE_ON_EXIT is set to true, and there is a file to delete. If the file cannot be deleted immediately, it will be set for a deletion on termination. This is not (currently) supported for directories.


SmartFrog CORE 3.10.000

(C) Copyright 1998-2006 Hewlett-Packard Development Company, LP