Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.tapestry5.ioc.internal.util
Class URLChangeTracker

    java.lang.Object
      org.apache.tapestry5.ioc.internal.util.URLChangeTracker

    public class URLChangeTracker

extends java.lang.Object

Given a (growing) set of URLs, can periodically check to see if any of the underlying resources has changed. This class is capable of using either millisecond-level granularity or second-level granularity. Millisecond-level granularity is used by default. Second-level granularity is provided for compatibility with browsers vis-a-vis resource caching -- that's how granular they get with their "If-Modified-Since", "Last-Modified" and "Expires" headers.

Field Summary
`static ClasspathURLConverter` | `DEFAULT_CONVERTER`

Constructor Summary
`URLChangeTracker()` Creates a tracker using the default (does nothing) URL converter, with default (millisecond) granularity and folder tracking disabled.
`URLChangeTracker(ClasspathURLConverter classpathURLConverter)` Creates a new URL change tracker with millisecond-level granularity and folder checking enabled.
`URLChangeTracker(ClasspathURLConverter classpathURLConverter, boolean granularitySeconds)` Creates a new URL change tracker, using either millisecond-level granularity or second-level granularity and folder checking enabled.
`URLChangeTracker(ClasspathURLConverter classpathURLConverter, boolean granularitySeconds, boolean trackFolderChanges)` Creates a new URL change tracker, using either millisecond-level granularity or second-level granularity.

Method Summary
`long` | `add(java.net.URL url)` Stores a new URL into the tracker, or returns the previous time stamp for a previously added URL.
`void` | `clear()` Clears all URL and timestamp data stored in the tracker.
`boolean` | `containsChanges()` Re-acquires the last updated timestamp for each URL and returns true if any timestamp has changed.
`void` | `forceChange()` Needed for testing; changes file timestamps so that a change will be detected by `containsChanges()`.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### DEFAULT_CONVERTER

    public static final ClasspathURLConverter DEFAULT_CONVERTER

Constructor Detail

### URLChangeTracker

    public URLChangeTracker()

  Creates a tracker using the default (does nothing) URL converter, with default (millisecond) granularity and folder tracking disabled.

  Since:
    5.2.1

### URLChangeTracker

    public URLChangeTracker(ClasspathURLConverter classpathURLConverter)

  Creates a new URL change tracker with millisecond-level granularity and folder checking enabled.

  Parameters:
    `classpathURLConverter` - used to convert URLs from one protocol to another

### URLChangeTracker

    public URLChangeTracker(ClasspathURLConverter classpathURLConverter,
                            boolean granularitySeconds)

  Creates a new URL change tracker, using either millisecond-level granularity or second-level granularity and folder checking enabled.

  Parameters:
    `classpathURLConverter` - used to convert URLs from one protocol to another
    `granularitySeconds` - whether or not to use second granularity (as opposed to millisecond granularity)

### URLChangeTracker

    public URLChangeTracker(ClasspathURLConverter classpathURLConverter,
                            boolean granularitySeconds,
                            boolean trackFolderChanges)

  Creates a new URL change tracker, using either millisecond-level granularity or second-level granularity.

  Parameters:
    `classpathURLConverter` - used to convert URLs from one protocol to another
    `granularitySeconds` - whether or not to use second granularity (as opposed to millisecond granularity)
    `trackFolderChanges` - if true, then adding a file URL will also track the folder containing the file (this is useful when concerned about additions to a folder)
  Since:
    5.2.1

Method Detail

### add

    public long add(java.net.URL url)

  Stores a new URL into the tracker, or returns the previous time stamp for a previously added URL. Filters out all non-file URLs.

  Parameters:
    `url` - of the resource to add, or null if not known
  Returns:
    the current timestamp for the URL (possibly rounded off for granularity reasons), or 0 if the URL is null

### clear

    public void clear()

  Clears all URL and timestamp data stored in the tracker.

### containsChanges

    public boolean containsChanges()

  Re-acquires the last updated timestamp for each URL and returns true if any timestamp has changed.

### forceChange

    public void forceChange()

  Needed for testing; changes file timestamps so that a change will be detected by `containsChanges()`.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2003-2012 The Apache Software Foundation.