Hello,

For quite some time, i've been thinking about using a 'virtual
filesystem' kind of GUI to some application that i'm working on.
Recently i've decide to dedicate some time on it, and since VFS seems to
fullfill some of my requirements, i was thinking of extending it, and
contributing back my work to the project for integration, if that is
found to be desirable.

Now, here's a quick overview of changes and additions that i'm planning
to work on, and i would like for you guys to tell me your opinions, and
if you feel those are things you'd wants integrated in VFS, or would
prefer to keep separate.

1) Cache API.

The addition of the following APIs to FileObject ( or alternatively, a
new Interface CacheFileObject that would extends FileObject ).

    /**
     * Determines if this FileObject uses cached data.
     * @return True if this object's data is provided by a cache.
     * @since 1.1
     */
    public boolean isCached();

    /**
     * Refreshes this object's cache.
     * This won't do anything if no cache is been used, or if a cache
     refresh is already ongoing.
     * @throws FileSystemException If an error occured while refreshing
     the cache.
     * @see #isCached()
     * @since 1.1
     */
    public void refreshCache() throws FileSystemException;

    /**
     * Determines if this object's cache is in the process of being
     refreshed.
     * @return True if cache a cache refresh for this object operation
     is occuring.
     * @see #refreshCache()
     * @since 1.1
     */
    public boolean isRefreshingCache();

    /**
     * Waits for an cache refresh operation on this object to finish, if
     one is currently ongoing.
     * This will return immediately is no cache refresh is currently
     ongoing.
     * @throws InterruptedException if another thread interrupted the
     current thread before or while the current
     * thread was waiting.
     * @since 1.1
     */
    public void waitCacheRefreshed() throws InterruptedException;

    /**
     * Waits for an cache refresh operation on this object to finish, if
     one is currently ongoing.
     * This will return immediately is no cache refresh is currently
     ongoing.
     * @param millis the maximum time to wait in milliseconds.
     * @throws InterruptedException if another thread interrupted the
     current thread before or while the current
     * thread was waiting.
     * @since 1.1
     */
    public void waitCacheRefreshed( long millis ) throws
    InterruptedException;

2) VFS Browser

An windows explorer type panel to browse a VFS

3) File Actions

Ok, that's where things get a bit more tricky. What i was thinking, is
to allow the files to provide a generic way of providing information of
what kind of actions can be performed on it.

The idea is something along those lines:

A file can have a number of Actions (interface), each of which have a
name, a description, and potential arguments types to be used in
execution.

The action contains an execute method, that can be given a map of
ArgumentTypes / values.

I'll send more on this later on...
Yours truly


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to