|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.modeshape.connector.filesystem.BasePropertiesFactory
org.modeshape.connector.filesystem.StoreProperties
public class StoreProperties
A CustomPropertiesFactory
implementation that stores "extra" or "custom" properties for 'nt:file', 'nt:folder', and
'nt:resource' nodes in a separate file that is named the same as the original but with a different extension.
Field Summary | |
---|---|
static String |
DEFAULT_EXTENSION
|
static String |
DEFAULT_RESOURCE_EXTENSION
|
protected static Map<Name,Property> |
NO_PROPERTIES_MAP
|
protected static Pattern |
PROPERTY_PATTERN
|
protected static String |
PROPERTY_PATTERN_STRING
The regex pattern string used to parse properties. |
protected static Pattern |
STRING_VALUE_PATTERN
|
protected static String |
STRING_VALUE_PATTERN_STRING
The regex pattern string used to parse quoted string property values. |
protected static Pattern |
VALUE_PATTERN
|
protected static String |
VALUE_PATTERN_STRING
The regex pattern string used to parse non-string property values (including hexadecimal-encoded binary values). |
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 | |
---|---|
StoreProperties()
|
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". |
FilenameFilter |
getFilenameFilter(FilenameFilter exclusionFilter)
Create a filename filter that will ignore any files needed by this implementation. |
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. |
String |
getSourceName()
|
protected Map<Name,Property> |
load(File propertiesFile,
ExecutionContext context)
|
protected Property |
parse(String line,
ValueFactories factories,
PropertyFactory propFactory,
NamespaceRegistry namespaces,
Map<Name,Property> result)
|
protected File |
propertiesFileFor(File fileOrDirectory)
|
protected File |
propertiesFileForResource(File fileOrDirectory)
|
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. |
void |
setSourceName(String sourceName)
|
protected Set<Name> |
write(File propertiesFile,
ExecutionContext context,
Map<Name,Property> properties)
|
protected void |
write(Property property,
Writer stream,
ValueFactory<String> strings)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected static final String PROPERTY_PATTERN_STRING
The expression is: ([\S]+)\s*[(](\w+)[)]\s*([\[]?)?([^\]]+)[\]]?
protected static final Pattern PROPERTY_PATTERN
protected static final String STRING_VALUE_PATTERN_STRING
The expression is: \"((((?<=\\)\")|[^"])*)\"
protected static final Pattern STRING_VALUE_PATTERN
protected static final String VALUE_PATTERN_STRING
The expression is: ([^\s,]+)\s*[,]*\s*
protected static final Pattern VALUE_PATTERN
public static final String DEFAULT_EXTENSION
public static final String DEFAULT_RESOURCE_EXTENSION
protected static final Map<Name,Property> NO_PROPERTIES_MAP
Constructor Detail |
---|
public StoreProperties()
Method Detail |
---|
public FilenameFilter getFilenameFilter(FilenameFilter exclusionFilter)
BasePropertiesFactory
getFilenameFilter
in class BasePropertiesFactory
exclusionFilter
- the default filter, which should be included; may be null if there is no such filter
public String getSourceName()
public void setSourceName(String sourceName)
sourceName
- Sets sourceName to the specified value.public Collection<Property> getDirectoryProperties(ExecutionContext context, Location location, File directory)
JcrLexicon.PRIMARY_TYPE
or JcrLexicon.CREATED
properties, which are set automatically and will override any returned Property with the same name.
context
- the execution context; never nulllocation
- the Location of the node, which always contains a path
; never nulldirectory
- the file system object; never null and File.isDirectory()
will always return true
CustomPropertiesFactory.getDirectoryProperties(org.modeshape.graph.ExecutionContext,
org.modeshape.graph.Location, java.io.File)
public Collection<Property> getFileProperties(ExecutionContext context, Location location, File file)
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.
context
- the execution context; never nulllocation
- the Location of the node, which always contains a path
; never nullfile
- the file system object; never null and File.isFile()
will always return true
CustomPropertiesFactory.getFileProperties(org.modeshape.graph.ExecutionContext,
org.modeshape.graph.Location, java.io.File)
public Collection<Property> getResourceProperties(ExecutionContext context, Location location, File file, String mimeType)
JcrLexicon.PRIMARY_TYPE
, JcrLexicon.LAST_MODIFIED
, or
JcrLexicon.DATA
properties, which are set automatically and will override any returned Property with the same name.
context
- the execution context; never nulllocation
- the Location of the node, which always contains a path
; never nullfile
- the file system object; never null and File.isFile()
will always return truemimeType
- the mime type for the file, as determined by the MIME type
detector
, or null if the MIME type could not be determined
CustomPropertiesFactory.getResourceProperties(org.modeshape.graph.ExecutionContext,
org.modeshape.graph.Location, java.io.File, java.lang.String)
public Set<Name> recordDirectoryProperties(ExecutionContext context, String sourceName, Location location, File file, Map<Name,Property> properties) throws RepositorySourceException
context
- the execution context; never nullsourceName
- the name of the repository source; never nulllocation
- the Location of the node, which always contains a path
; never nullfile
- the file system object; never null, and both File.exists()
and File.isDirectory()
will always
return trueproperties
- the properties that are to be set
RepositorySourceException
- if any properties are invalid or cannot be set on these nodesCustomPropertiesFactory.recordDirectoryProperties(org.modeshape.graph.ExecutionContext,
java.lang.String, org.modeshape.graph.Location, java.io.File, java.util.Map)
public Set<Name> recordFileProperties(ExecutionContext context, String sourceName, Location location, File file, Map<Name,Property> properties) throws RepositorySourceException
context
- the execution context; never nullsourceName
- the name of the repository source; never nulllocation
- the Location of the node, which always contains a path
; never nullfile
- the file system object; never null, and both File.exists()
and File.isFile()
will always return
trueproperties
- the properties that are to be set
RepositorySourceException
- if any properties are invalid or cannot be set on these nodesCustomPropertiesFactory.recordFileProperties(org.modeshape.graph.ExecutionContext,
java.lang.String, org.modeshape.graph.Location, java.io.File, java.util.Map)
public Set<Name> recordResourceProperties(ExecutionContext context, String sourceName, Location location, File file, Map<Name,Property> properties) throws RepositorySourceException
context
- the execution context; never nullsourceName
- the name of the repository source; never nulllocation
- the Location of the node, which always contains a path
; never nullfile
- the file system object; never null, and both File.exists()
and File.isFile()
will always return
trueproperties
- the properties that are to be set
RepositorySourceException
- if any properties are invalid or cannot be set on these nodesCustomPropertiesFactory.recordResourceProperties(org.modeshape.graph.ExecutionContext,
java.lang.String, org.modeshape.graph.Location, java.io.File, java.util.Map)
protected File propertiesFileFor(File fileOrDirectory)
protected File propertiesFileForResource(File fileOrDirectory)
protected Map<Name,Property> load(File propertiesFile, ExecutionContext context) throws RepositorySourceException
RepositorySourceException
protected Set<Name> write(File propertiesFile, ExecutionContext context, Map<Name,Property> properties) throws RepositorySourceException
RepositorySourceException
protected void write(Property property, Writer stream, ValueFactory<String> strings) throws IOException
IOException
protected Property parse(String line, ValueFactories factories, PropertyFactory propFactory, NamespaceRegistry namespaces, Map<Name,Property> result)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |