mcconnell 2003/02/19 03:19:33 Modified: merlin/src/java/org/apache/avalon/merlin/block Block.java merlin/src/java/org/apache/avalon/merlin/block/impl DefaultBlock.java Log: Added accessors to child blocks and appliances. Revision Changes Path 1.11 +21 -1 avalon-sandbox/merlin/src/java/org/apache/avalon/merlin/block/Block.java Index: Block.java =================================================================== RCS file: /home/cvs/avalon-sandbox/merlin/src/java/org/apache/avalon/merlin/block/Block.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- Block.java 7 Feb 2003 15:39:33 -0000 1.10 +++ Block.java 19 Feb 2003 11:19:32 -0000 1.11 @@ -50,6 +50,7 @@ package org.apache.avalon.merlin.block; +import java.net.URL; import org.apache.avalon.assembly.appliance.Appliance; import org.apache.avalon.merlin.container.Container; @@ -73,6 +74,25 @@ * @exception Exception if a deployment error occurs */ void deploy() throws Exception; + + /** + * Return the set of locally managed appliance instances. + * @return the set of appliance instances local to this block. + */ + public Appliance[] getAppliances(); + + /** + * Return the set of blocks locally managed by this block. + * @return the set of immediate sibling blocks. + */ + Block[] getBlocks(); + + /** + * Return the set of appliance URLs for the entire block hierachy inclding the + * URL of this block. + * @return the set of urls + */ + URL[] getURLs(); /** * Decommission the block. 1.8 +39 -0 avalon-sandbox/merlin/src/java/org/apache/avalon/merlin/block/impl/DefaultBlock.java Index: DefaultBlock.java =================================================================== RCS file: /home/cvs/avalon-sandbox/merlin/src/java/org/apache/avalon/merlin/block/impl/DefaultBlock.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- DefaultBlock.java 17 Feb 2003 12:11:56 -0000 1.7 +++ DefaultBlock.java 19 Feb 2003 11:19:33 -0000 1.8 @@ -294,6 +294,45 @@ //------------------------------------------------------------------------------- /** + * Return the set of locally managed appliance instances. + * @return the set of appliance instances local to this block. + */ + public Appliance[] getAppliances() + { + return (Appliance[]) m_appliances.toArray( new Appliance[0] ); + } + + /** + * Return the set of blocks locally managed by this block. + * @return the set of immediate sibling blocks. + */ + public Block[] getBlocks() + { + return (Block[]) m_blocks.toArray( new Block[0] ); + } + + public URL[] getURLs() + { + List list = new ArrayList(); + list.add( getURL() ); + Appliance[] appliances = getAppliances(); + for( int i=0; i<appliances.length; i++ ) + { + list.add( appliances[i].getURL() ); + } + Block[] blocks = getBlocks(); + for( int j=0; j<blocks.length; j++ ) + { + URL[] expanded = blocks[j].getURLs(); + for( int k=0; k<expanded.length; k++ ) + { + list.add( expanded[k] ); + } + } + return (URL[]) list.toArray( new URL[0] ); + } + + /** * Get the appliance URL. * @return the appliance URL */
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]