org.modeshape.connector.filesystem
Class LogProperties

java.lang.Object
  extended by org.modeshape.connector.filesystem.BasePropertiesFactory
      extended by org.modeshape.connector.filesystem.LogProperties
All Implemented Interfaces:
Serializable, CustomPropertiesFactory

public class LogProperties
extends BasePropertiesFactory

A CustomPropertiesFactory implementation that logs information about the "extra" or "custom" properties for 'nt:file', 'nt:folder', and 'nt:resource' nodes.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.modeshape.connector.filesystem.BasePropertiesFactory
NO_NAMES, NO_PROPERTIES_COLLECTION, STANDARD_PROPERTIES_FOR_CONTENT, STANDARD_PROPERTIES_FOR_FILE_OR_FOLDER
 
Constructor Summary
LogProperties(Logger logger)
          Create an instance of this factory.
 
Method Summary
 Collection<Property> getDirectoryProperties(ExecutionContext context, Location location, File directory)
          Construct the custom properties that should be created for the supplied directory that is to be treated as an "nt:folder".
 Collection<Property> getFileProperties(ExecutionContext context, Location location, File file)
          Construct the custom properties that should be created for the supplied file that is to be treated as an "nt:file".
 Collection<Property> getResourceProperties(ExecutionContext context, Location location, File file, String mimeType)
          Construct the custom properties that should be created for the supplied file that is to be treated as an "nt:resource", which is the node that contains the content-oriented properties and that is a child of a "nt:file" node.
 Set<Name> recordDirectoryProperties(ExecutionContext context, String sourceName, Location location, File file, Map<Name,Property> properties)
          Record the supplied properties as being set on the designated "nt:folder" node.
 Set<Name> recordFileProperties(ExecutionContext context, String sourceName, Location location, File file, Map<Name,Property> properties)
          Record the supplied properties as being set on the designated "nt:file" node.
 Set<Name> recordResourceProperties(ExecutionContext context, String sourceName, Location location, File file, Map<Name,Property> properties)
          Record the supplied properties as being set on the designated "nt:resource" node.
 
Methods inherited from class org.modeshape.connector.filesystem.BasePropertiesFactory
getFilenameFilter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LogProperties

public LogProperties(Logger logger)
Create an instance of this factory.

Parameters:
logger - the logger that should be used, or null if the default logger should be used
Method Detail

getDirectoryProperties

public Collection<Property> getDirectoryProperties(ExecutionContext context,
                                                   Location location,
                                                   File directory)
Construct the custom properties that should be created for the supplied directory that is to be treated as an "nt:folder". The resulting properties should not include the standard JcrLexicon.PRIMARY_TYPE or JcrLexicon.CREATED properties, which are set automatically and will override any returned Property with the same name.

Parameters:
context - the execution context; never null
location - the Location of the node, which always contains a path; never null
directory - the file system object; never null and File.isDirectory() will always return true
Returns:
the custom properties; never null but possibly empty
See Also:
CustomPropertiesFactory.getDirectoryProperties(org.modeshape.graph.ExecutionContext, org.modeshape.graph.Location, java.io.File)

getFileProperties

public Collection<Property> getFileProperties(ExecutionContext context,
                                              Location location,
                                              File file)
Construct the custom properties that should be created for the supplied file that is to be treated as an "nt:file". The resulting properties should not include the standard JcrLexicon.PRIMARY_TYPE or JcrLexicon.CREATED properties, which are set automatically and will override any returned Property with the same name.

Although the connector does not automatically determine the MIME type for the "nt:file" nodes, an implementation can determine the MIME type by using the context's MIME type detector. Note, however, that this may be an expensive operation, so it should be used only when needed.

Parameters:
context - the execution context; never null
location - the Location of the node, which always contains a path; never null
file - the file system object; never null and File.isFile() will always return true
Returns:
the custom properties; never null but possibly empty
See Also:
CustomPropertiesFactory.getFileProperties(org.modeshape.graph.ExecutionContext, org.modeshape.graph.Location, java.io.File)

getResourceProperties

public Collection<Property> getResourceProperties(ExecutionContext context,
                                                  Location location,
                                                  File file,
                                                  String mimeType)
Construct the custom properties that should be created for the supplied file that is to be treated as an "nt:resource", which is the node that contains the content-oriented properties and that is a child of a "nt:file" node. The resulting properties should not include the standard JcrLexicon.PRIMARY_TYPE, JcrLexicon.LAST_MODIFIED, or JcrLexicon.DATA properties, which are set automatically and will override any returned Property with the same name.

Parameters:
context - the execution context; never null
location - the Location of the node, which always contains a path; never null
file - the file system object; never null and File.isFile() will always return true
mimeType - the mime type for the file, as determined by the MIME type detector, or null if the MIME type could not be determined
Returns:
the custom properties; never null but possibly empty
See Also:
CustomPropertiesFactory.getResourceProperties(org.modeshape.graph.ExecutionContext, org.modeshape.graph.Location, java.io.File, java.lang.String)

recordDirectoryProperties

public Set<Name> recordDirectoryProperties(ExecutionContext context,
                                           String sourceName,
                                           Location location,
                                           File file,
                                           Map<Name,Property> properties)
                                    throws RepositorySourceException
Record the supplied properties as being set on the designated "nt:folder" node.

Parameters:
context - the execution context; never null
sourceName - the name of the repository source; never null
location - the Location of the node, which always contains a path; never null
file - the file system object; never null, and both File.exists() and File.isDirectory() will always return true
properties - the properties that are to be set
Returns:
the names of the properties that were created, or an empty or null set if no properties were created on the file
Throws:
RepositorySourceException - if any properties are invalid or cannot be set on these nodes
See Also:
CustomPropertiesFactory.recordDirectoryProperties(org.modeshape.graph.ExecutionContext, java.lang.String, org.modeshape.graph.Location, java.io.File, java.util.Map)

recordFileProperties

public Set<Name> recordFileProperties(ExecutionContext context,
                                      String sourceName,
                                      Location location,
                                      File file,
                                      Map<Name,Property> properties)
                               throws RepositorySourceException
Record the supplied properties as being set on the designated "nt:file" node.

Parameters:
context - the execution context; never null
sourceName - the name of the repository source; never null
location - the Location of the node, which always contains a path; never null
file - the file system object; never null, and both File.exists() and File.isFile() will always return true
properties - the properties that are to be set
Returns:
the names of the properties that were created, or an empty or null set if no properties were created on the file
Throws:
RepositorySourceException - if any properties are invalid or cannot be set on these nodes
See Also:
CustomPropertiesFactory.recordFileProperties(org.modeshape.graph.ExecutionContext, java.lang.String, org.modeshape.graph.Location, java.io.File, java.util.Map)

recordResourceProperties

public Set<Name> recordResourceProperties(ExecutionContext context,
                                          String sourceName,
                                          Location location,
                                          File file,
                                          Map<Name,Property> properties)
                                   throws RepositorySourceException
Record the supplied properties as being set on the designated "nt:resource" node.

Parameters:
context - the execution context; never null
sourceName - the name of the repository source; never null
location - the Location of the node, which always contains a path; never null
file - the file system object; never null, and both File.exists() and File.isFile() will always return true
properties - the properties that are to be set
Returns:
the names of the properties that were created, or an empty or null set if no properties were created on the file
Throws:
RepositorySourceException - if any properties are invalid or cannot be set on these nodes
See Also:
CustomPropertiesFactory.recordResourceProperties(org.modeshape.graph.ExecutionContext, java.lang.String, org.modeshape.graph.Location, java.io.File, java.util.Map)


Copyright © 2008-2010 JBoss, a division of Red Hat. All Rights Reserved.