01: /*
02: * This file is part of PFIXCORE.
03: *
04: * PFIXCORE is free software; you can redistribute it and/or modify
05: * it under the terms of the GNU Lesser General Public License as published by
06: * the Free Software Foundation; either version 2 of the License, or
07: * (at your option) any later version.
08: *
09: * PFIXCORE is distributed in the hope that it will be useful,
10: * but WITHOUT ANY WARRANTY; without even the implied warranty of
11: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12: * GNU Lesser General Public License for more details.
13: *
14: * You should have received a copy of the GNU Lesser General Public License
15: * along with PFIXCORE; if not, write to the Free Software
16: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17: */
18:
19: package de.schlund.pfixcore.editor2.core.dom;
20:
21: /**
22: * Identifies a variant of a page. Variants are used to programatically
23: * influence pageflows and rendering of pages.
24: *
25: * @author Sebastian Marsching <sebastian.marsching@1und1.de>
26: */
27: public interface Variant extends Comparable<Variant> {
28: /**
29: * Returns the full name of this variant. Parts of the name are seperated by
30: * a colon.
31: *
32: * @return Name of this variant
33: */
34: String getName();
35:
36: /**
37: * Returns true if this variant is a parent of the specified variant, false
38: * otherwise.
39: * Example: foo and foo:bar are parents of foo:bar:baz.
40: * If this variant and the specified variant are equal, false is returned.
41: *
42: * @param variant
43: * Variant object to check
44: * @return boolean value indicating wheter this is a parent variant of the
45: * specified variant
46: */
47: boolean isParentOf(Variant variant);
48:
49: /**
50: * Returns true if this variant is a child of the specified variant, false
51: * otherwise.
52: * Example: foo:bar:bum and foo:bar:baz are childs of foo:bar and foo.
53: * If this variant and the specified variant are equal, false is returned.
54: *
55: * @param variant
56: * Variant object to check
57: * @return boolean value indicating wheter this is a child variant of the
58: * specified variant
59: */
60: boolean isChildOf(Variant variant);
61: }
|