01: /*
02: * (C) Copyright 2006 Nabh Information Systems, Inc.
03: *
04: * All copyright notices regarding Nabh's products MUST remain
05: * intact in the scripts and in the outputted HTML.
06: * This program is free software; you can redistribute it and/or
07: * modify it under the terms of the GNU Lesser General Public License
08: * as published by the Free Software Foundation; either version 2.1
09: * 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
14: * GNU Lesser General Public License for more details.
15: *
16: * You should have received a copy of the GNU Lesser General Public License
17: * along with this program; if not, write to the Free Software
18: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19: *
20: */
21:
22: package com.nabhinc.condition;
23:
24: import java.io.Serializable;
25:
26: import javax.xml.bind.annotation.XmlElement;
27: import javax.xml.bind.annotation.XmlElements;
28: import javax.xml.bind.annotation.XmlTransient;
29:
30: /**
31: *
32: *
33: * @author Padmanabh Dabke
34: * (c) 2006 Nabh Information Systems, Inc. All Rights Reserved.
35: */
36:
37: /*
38: * @XmlElements({ @XmlElement(name="or"), @XmlElement(name="allow-roles")
39: ,@XmlElement(name="allow-users"), @XmlElement(name="always-true")
40: ,@XmlElement(name="and"), @XmlElement(name="deny-ip")
41: ,@XmlElement(name="deny-roles"), @XmlElement(name="deny-users")
42: ,@XmlElement(name="login-required"), @XmlElement(name="not")
43: ,@XmlElement(name="allow-ip"), @XmlElement(name="allow-owner")
44:
45: })
46: */
47: public abstract class CompositeCondition implements Serializable {
48: @XmlElements({@XmlElement(name="or",type=Or.class),@XmlElement(name="allow-roles",type=AllowRoles.class),@XmlElement(name="allow-users",type=AllowUsers.class),@XmlElement(name="always-true",type=AlwaysTrue.class),@XmlElement(name="and",type=And.class),@XmlElement(name="deny-ips",type=DenyIP.class),@XmlElement(name="deny-roles",type=DenyRoles.class),@XmlElement(name="deny-users",type=DenyUsers.class),@XmlElement(name="login-required",type=LoginRequired.class),@XmlElement(name="not",type=Not.class),@XmlElement(name="allow-ips",type=AllowIP.class),@XmlElement(name="condition",type=ConditionWrapper.class),@XmlElement(name="owner",type=OwnerCondition.class)})
49: protected Condition[] children = null;
50:
51: @XmlTransient
52: public Condition[] getChildren() {
53: return this .children;
54: }
55:
56: public void setChildren(Condition[] cond) {
57: this .children = cond;
58: }
59:
60: public boolean requiresLogin() {
61: if (this .children == null)
62: return false;
63: for (int i = 0; i < this .children.length; i++) {
64: if (this .children[i].requiresLogin())
65: return true;
66: }
67: return false;
68: }
69: }
|