1 package com.bradmcevoy.http;
2
3 import java.util.Set;
4
5 /**
6 * Extension to PropFindableResource which allows custom
7 * properties to be returned.
8 *
9 * See MultiNamespaceCustomPropertySource to support multiple namespaces
10 *
11 * @author brad
12 */
13 public interface CustomPropertyResource extends PropFindableResource {
14
15 /**
16 *
17 * @return - a list of all the properties of this namespace which exist
18 * on this resource
19 */
20 public Set<String> getAllPropertyNames();
21
22 /**
23 * Return an accessor for the given property if it is supported or known. Note
24 * that this includes cases where the value of the property is null
25 *
26 * @param name
27 * @return - null if the property is unknown or not supported. Otherwise an
28 * accessor to the property
29 */
30 public CustomProperty getProperty(String name);
31
32 /**
33 * Returns a URI used as a namespace for these properties.
34 *
35 * @return
36 */
37 public String getNameSpaceURI();
38
39
40
41 }