1 /*
   2  * Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 package build.tools.logutil;
  26 
  27 import java.util.LinkedList;
  28 import java.util.Queue;
  29 
  30 public class InputException {
  31 
  32   /**
  33    * The name of this exception.
  34    */
  35   private final String name;
  36 
  37   /**
  38    * The codes associated with this exception.
  39    */
  40   private final Queue<InputCode> codes;
  41 
  42   /**
  43    * Constructs a new {@link InputException} with the
  44    * specified name.
  45    *
  46    * @param name the name of the new exception;
  47    */
  48   public InputException(final String name) {
  49     this.name = name;
  50     codes = new LinkedList<InputCode>();
  51   }
  52 
  53   /**
  54    * Adds a new code to this exception.
  55    *
  56    * @param c the code to add.
  57    */
  58   public void add(InputCode c)
  59   {
  60     codes.offer(c);
  61   }
  62 
  63   /**
  64    * Returns the name of this exception.
  65    *
  66    * @return the exception's name.
  67    */
  68   public String getName() {
  69     return name;
  70   }
  71 
  72   /**
  73    * Returns the codes associated with this exception.
  74    *
  75    * @return the exception's codes.
  76    */
  77   public Queue<InputCode> getCodes() {
  78     return codes;
  79   }
  80 
  81   /**
  82    * Returns a textual representation of this exception.
  83    *
  84    * @return a textual representation.
  85    */
  86   public String toString() {
  87     return getClass().getName()
  88       + "[name=" + name
  89       + ",codes=" + codes
  90       + "]";
  91   }
  92 
  93 }