View Javadoc

1   /* $Id: Box.java 1102402 2011-05-12 18:03:26Z simonetripodi $
2    *
3    * Licensed to the Apache Software Foundation (ASF) under one or more
4    * contributor license agreements.  See the NOTICE file distributed with
5    * this work for additional information regarding copyright ownership.
6    * The ASF licenses this file to You under the Apache License, Version 2.0
7    * (the "License"); you may not use this file except in compliance with
8    * the License.  You may obtain a copy of the License at
9    *
10   *      http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  
19  package org.apache.commons.digester3;
20  
21  import java.util.LinkedList;
22  import java.util.List;
23  
24  /**
25   * Simple class for use in unit tests. A box has an ID, and can have multiple boxes within it.
26   */
27  public class Box
28  {
29      private String id;
30  
31      private List<Box> children = new LinkedList<Box>();
32  
33      public Box()
34      {
35      }
36  
37      public String getId()
38      {
39          return id;
40      }
41  
42      public void setId( String id )
43      {
44          this.id = id;
45      }
46  
47      public void addChild( Box child )
48      {
49          this.children.add( child );
50      }
51  
52      public List<Box> getChildren()
53      {
54          return children;
55      }
56  
57      @Override
58      public String toString()
59      {
60          StringBuilder buf = new StringBuilder();
61          buf.append( "[Box] id=" );
62          buf.append( id );
63          buf.append( " nchildren=" );
64          buf.append( children.size() );
65  
66          for ( Box child : children )
67          {
68              buf.append( "  " );
69              buf.append( child.toString() );
70          }
71          return buf.toString();
72      }
73  
74      /**
75       * Return a string containing this object's name value, followed by the names of all child objects (and their
76       * children etc) in pre-order sequence. Each name is separated by a space from the preceding one.
77       */
78      public String getIds()
79      {
80          StringBuilder buf = new StringBuilder();
81          buf.append( this.id );
82          for ( Box child : children )
83          {
84              buf.append( " " );
85              buf.append( child.getIds() );
86          }
87          return buf.toString();
88      }
89  }