You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by pa...@apache.org on 2002/07/13 22:12:34 UTC
cvs commit: jakarta-commons-sandbox/daemon/src/java/org/apache/commons/launcher/types ConditionalVariableSet.java ConditionalArgument.java ConditionalVariable.java SysPropertySet.java
patrickl 2002/07/13 13:12:34
Modified: daemon/src/java/org/apache/commons/launcher/types
ConditionalArgument.java ConditionalVariable.java
SysPropertySet.java
Added: daemon/src/java/org/apache/commons/launcher/types
ConditionalVariableSet.java
Log:
Separate out methods in SysPropertySet class that can be reused by other similar classes
Revision Changes Path
1.2 +2 -2 jakarta-commons-sandbox/daemon/src/java/org/apache/commons/launcher/types/ConditionalArgument.java
Index: ConditionalArgument.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/daemon/src/java/org/apache/commons/launcher/types/ConditionalArgument.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ConditionalArgument.java 13 Jul 2002 18:56:25 -0000 1.1
+++ ConditionalArgument.java 13 Jul 2002 20:12:34 -0000 1.2
@@ -71,7 +71,7 @@
*/
public class ConditionalArgument {
- //-------------------------------------------------------------- Fields
+ //------------------------------------------------------------------ Fields
/**
* Cached "if" condition flag
@@ -88,7 +88,7 @@
*/
private String value = null;
- //------------------------------------------------------------- Methods
+ //----------------------------------------------------------------- Methods
/**
* Get the "if" condition flag.
1.2 +2 -2 jakarta-commons-sandbox/daemon/src/java/org/apache/commons/launcher/types/ConditionalVariable.java
Index: ConditionalVariable.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/daemon/src/java/org/apache/commons/launcher/types/ConditionalVariable.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ConditionalVariable.java 13 Jul 2002 18:56:25 -0000 1.1
+++ ConditionalVariable.java 13 Jul 2002 20:12:34 -0000 1.2
@@ -71,7 +71,7 @@
*/
public class ConditionalVariable extends Environment.Variable {
- //-------------------------------------------------------------- Fields
+ //------------------------------------------------------------------ Fields
/**
* Cached "if" condition flag
@@ -83,7 +83,7 @@
*/
private String unlessCondition = null;
- //------------------------------------------------------------- Methods
+ //----------------------------------------------------------------- Methods
/**
* Get the "if" condition flag.
1.2 +5 -69 jakarta-commons-sandbox/daemon/src/java/org/apache/commons/launcher/types/SysPropertySet.java
Index: SysPropertySet.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/daemon/src/java/org/apache/commons/launcher/types/SysPropertySet.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- SysPropertySet.java 13 Jul 2002 18:56:25 -0000 1.1
+++ SysPropertySet.java 13 Jul 2002 20:12:34 -0000 1.2
@@ -57,28 +57,16 @@
package org.apache.commons.launcher.types;
-import java.util.Enumeration;
-import java.util.Stack;
import java.util.Vector;
-import org.apache.commons.launcher.Launcher;
-import org.apache.commons.launcher.types.ConditionalVariable;
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.types.DataType;
-import org.apache.tools.ant.types.Reference;
/**
* A class that represents a set of nested <sysproperty> elements.
*
* @author Patrick Luby
*/
-public class SysPropertySet extends DataType {
+public class SysPropertySet extends ConditionalVariableSet {
- //-------------------------------------------------------------- Fields
-
- /**
- * Cached variables and nested SysPropertySet objects
- */
- private Vector list = new Vector();
+ //----------------------------------------------------------------- Methods
/**
* Add a {@link ConditionalVariable}.
@@ -88,9 +76,7 @@
*/
public void addSysproperty(ConditionalVariable variable) {
- if (isReference())
- throw noChildrenAllowed();
- list.addElement(variable);
+ addConditionalvariable(variable);
}
@@ -101,9 +87,7 @@
*/
public void addSyspropertyset(SysPropertySet set) {
- if (isReference())
- throw noChildrenAllowed();
- list.addElement(set);
+ addConditionalvariableset(set);
}
@@ -114,55 +98,7 @@
*/
public Vector getSysproperties() {
- // Make sure we don't have a circular reference to this instance
- if (!checked) {
- Stack stk = new Stack();
- stk.push(this);
- dieOnCircularReference(stk, project);
- }
-
- // Recursively work through the tree of SysPropertySet objects
- // and accumulate the list of ConditionalVariable objects
- Vector mergedList = new Vector(list.size());
- Enumeration enum = list.elements();
- while (enum.hasMoreElements()) {
- Object o = enum.nextElement();
- SysPropertySet nestedSet = null;
- if (o instanceof Reference) {
- o = ((Reference)o).getReferencedObject(project);
- // Only references to this class are allowed
- if (!(o instanceof SysPropertySet))
- throw new BuildException(Launcher.getLocalizedString("cannot.reference", this.getClass().getName()));
- nestedSet = (SysPropertySet)o;
- } else if (o instanceof SysPropertySet) {
- nestedSet = (SysPropertySet)o;
- } else if (o instanceof ConditionalVariable) {
- mergedList.addElement(o);
- } else {
- throw new BuildException(Launcher.getLocalizedString("cannot.nest", this.getClass().getName()));
- }
- if (nestedSet != null)
- mergedList.addAll(nestedSet.getSysproperties());
- }
-
- return mergedList;
-
- }
-
- /**
- * Makes this instance a reference to another instance. You must not
- * set another attribute or nest elements inside this element if you
- * make it a reference.
- *
- * @param r the reference to another {@link SysPropertySet}
- * instance
- */
- public void setRefid(Reference r) throws BuildException {
-
- if (!list.isEmpty())
- throw tooManyAttributes();
- list.addElement(r);
- super.setRefid(r);
+ return getConditionalvariables();
}
1.1 jakarta-commons-sandbox/daemon/src/java/org/apache/commons/launcher/types/ConditionalVariableSet.java
Index: ConditionalVariableSet.java
===================================================================
/* ========================================================================= *
* *
* The Apache Software License, Version 1.1 *
* *
* Copyright (c) 2002 The Apache Software Foundation. *
* All rights reserved. *
* *
* ========================================================================= *
* *
* Redistribution and use in source and binary forms, with or without modi- *
* fication, are permitted provided that the following conditions are met: *
* *
* 1. Redistributions of source code must retain the above copyright notice *
* notice, this list of conditions and the following disclaimer. *
* *
* 2. Redistributions in binary form must reproduce the above copyright *
* notice, this list of conditions and the following disclaimer in the *
* documentation and/or other materials provided with the distribution. *
* *
* 3. The end-user documentation included with the redistribution, if any, *
* must include the following acknowlegement: *
* *
* "This product includes software developed by the Apache Software *
* Foundation <http://www.apache.org/>." *
* *
* Alternately, this acknowlegement may appear in the software itself, if *
* and wherever such third-party acknowlegements normally appear. *
* *
* 4. The names "The Jakarta Project", and "Apache Software Foundation" *
* must not be used to endorse or promote products derived from this *
* software without prior written permission. For written permission, *
* please contact <ap...@apache.org>. *
* *
* 5. Products derived from this software may not be called "Apache" nor may *
* "Apache" appear in their names without prior written permission of the *
* Apache Software Foundation. *
* *
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES *
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY *
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL *
* THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY *
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL *
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS *
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) *
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, *
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN *
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE *
* POSSIBILITY OF SUCH DAMAGE. *
* *
* ========================================================================= *
* *
* This software consists of voluntary contributions made by many indivi- *
* duals on behalf of the Apache Software Foundation. For more information *
* on the Apache Software Foundation, please see <http://www.apache.org/>. *
* *
* ========================================================================= */
package org.apache.commons.launcher.types;
import java.util.Enumeration;
import java.util.Stack;
import java.util.Vector;
import org.apache.commons.launcher.Launcher;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.types.DataType;
import org.apache.tools.ant.types.Reference;
/**
* A class that represents a set of nested elements of
* {@link ConditionalVariable} objects.
*
* @author Patrick Luby
*/
public class ConditionalVariableSet extends DataType {
//------------------------------------------------------------------ Fields
/**
* Cached variables and nested ConditionalVariableSet objects
*/
private Vector list = new Vector();
//----------------------------------------------------------------- Methods
/**
* Add a {@link ConditionalVariable}.
*
* @param variable the {@link ConditionalVariable} to be
* added
*/
protected void addConditionalvariable(ConditionalVariable variable) {
if (isReference())
throw noChildrenAllowed();
list.addElement(variable);
}
/**
* Add a {@link ConditionalVariableSet}.
*
* @param set the {@link ConditionalVariableSet} to be added
*/
protected void addConditionalvariableset(ConditionalVariableSet set) {
if (isReference())
throw noChildrenAllowed();
list.addElement(set);
}
/**
* Get {@link ConditionalVariable} instances.
*
* @return the {@link ConditionalVariable} instances
*/
protected Vector getConditionalvariables() {
// Make sure we don't have a circular reference to this instance
if (!checked) {
Stack stk = new Stack();
stk.push(this);
dieOnCircularReference(stk, project);
}
// Recursively work through the tree of ConditionalVariableSet objects
// and accumulate the list of ConditionalVariable objects.
Vector mergedList = new Vector(list.size());
Enumeration enum = list.elements();
while (enum.hasMoreElements()) {
Object o = enum.nextElement();
ConditionalVariableSet nestedSet = null;
if (o instanceof Reference) {
o = ((Reference)o).getReferencedObject(project);
// Only references to this class are allowed
if (!o.getClass().isInstance(this))
throw new BuildException(Launcher.getLocalizedString("cannot.reference", this.getClass().getName()));
nestedSet = (ConditionalVariableSet)o;
} else if (o.getClass().isInstance(this)) {
nestedSet = (ConditionalVariableSet)o;
} else if (o instanceof ConditionalVariable) {
mergedList.addElement(o);
} else {
throw new BuildException(Launcher.getLocalizedString("cannot.nest", this.getClass().getName()));
}
if (nestedSet != null)
mergedList.addAll(nestedSet.getConditionalvariables());
}
return mergedList;
}
/**
* Makes this instance a reference to another instance. You must not
* set another attribute or nest elements inside this element if you
* make it a reference.
*
* @param r the reference to another {@link ConditionalVariableSet}
* instance
*/
public void setRefid(Reference r) throws BuildException {
if (!list.isEmpty())
throw tooManyAttributes();
list.addElement(r);
super.setRefid(r);
}
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>