01: /*
02: * argun 1.0
03: * Web 2.0 delivery framework
04: * Copyright (C) 2007 Hammurapi Group
05: *
06: * This program is free software; you can redistribute it and/or
07: * modify it under the terms of the GNU Lesser General Public
08: * License as published by the Free Software Foundation; either
09: * version 2 of the License, or (at your option) any later version.
10: *
11: * This program is distributed in the hope that it will be useful,
12: * but WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: * Lesser General Public License for more details.
15: *
16: * You should have received a copy of the GNU Lesser General Public
17: * License along with this library; if not, write to the Free Software
18: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19: *
20: * URL: http://www.hammurapi.biz
21: * e-Mail: support@hammurapi.biz
22: */
23: package biz.hammurapi.web.properties;
24:
25: import java.util.Set;
26:
27: import biz.hammurapi.config.MutableContext;
28: import biz.hammurapi.xml.dom.DomSerializable;
29:
30: public interface PropertySet extends MutableContext, DomSerializable {
31:
32: /**
33: * @return Names of properties in the set
34: */
35: Set getPropertyNames();
36:
37: /**
38: * @param prefix
39: * @return Property set which operates on properties starting with given prefix.
40: */
41: PropertySet getSubset(String prefix);
42:
43: /**
44: * Removes property from the set.
45: * @param name
46: */
47: void remove(String name);
48:
49: /**
50: * Removes all entries from the property set
51: */
52: void clear();
53:
54: /**
55: * Loads all entries from the source to this property set
56: * @param source
57: */
58: void load(PropertySet source);
59:
60: /**
61: * Mounts source property set at specified prefix. E.g. if source property set has entry 'a' and prefix is 'b/' then that entry will be
62: * available as 'b/a'. Own property set entries shall shadow mounted entries.
63: * @param prefix
64: * @param source
65: */
66: void mount(String prefix, PropertySet source);
67:
68: /**
69: * Copies all entries from the source property set to self.
70: * @param source
71: */
72: void setAll(PropertySet source);
73:
74: /**
75: * @param subSet
76: * @return true if all properties of subset are present in this set with same values
77: */
78: boolean containsAll(PropertySet subSet);
79:
80: /**
81: * @param otherSet
82: * @return true if all properties in this set are equal to properties in the other set.
83: */
84: boolean compareProperties(PropertySet otherSet);
85: }
|