NameType.java

  1. /*
  2.  *   Copyright (C) Christian Schulte <cs@schulte.it>, 2005-206
  3.  *   All rights reserved.
  4.  *
  5.  *   Redistribution and use in source and binary forms, with or without
  6.  *   modification, are permitted provided that the following conditions
  7.  *   are met:
  8.  *
  9.  *     o Redistributions of source code must retain the above copyright
  10.  *       notice, this list of conditions and the following disclaimer.
  11.  *
  12.  *     o Redistributions in binary form must reproduce the above copyright
  13.  *       notice, this list of conditions and the following disclaimer in
  14.  *       the documentation and/or other materials provided with the
  15.  *       distribution.
  16.  *
  17.  *   THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
  18.  *   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
  19.  *   AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
  20.  *   THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
  21.  *   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  22.  *   NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  23.  *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  24.  *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  25.  *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  26.  *   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  27.  *
  28.  *   $JOMC: NameType.java 5043 2015-05-27 07:03:39Z schulte $
  29.  *
  30.  */
  31. package org.jomc.ant.types;

  32. import org.apache.commons.lang.builder.ToStringBuilder;

  33. /**
  34.  * Datatype holding a {@code name} property.
  35.  *
  36.  * @author <a href="mailto:cs@schulte.it">Christian Schulte</a>
  37.  * @version $JOMC: NameType.java 5043 2015-05-27 07:03:39Z schulte $
  38.  */
  39. public class NameType implements Cloneable
  40. {

  41.     /**
  42.      * The name of the datatype.
  43.      */
  44.     private String name;

  45.     /**
  46.      * Creates a new {@code NameType} instance.
  47.      */
  48.     public NameType()
  49.     {
  50.         super();
  51.     }

  52.     /**
  53.      * Gets the value of the {@code name} property.
  54.      *
  55.      * @return The value of the {@code name} property.
  56.      *
  57.      * @see #setName(java.lang.String)
  58.      */
  59.     public final String getName()
  60.     {
  61.         return this.name;
  62.     }

  63.     /**
  64.      * Sets the value of the {@code name} property.
  65.      *
  66.      * @param value The new value of the {@code name} property.
  67.      *
  68.      * @see #getName()
  69.      */
  70.     public final void setName( final String value )
  71.     {
  72.         this.name = value;
  73.     }

  74.     /**
  75.      * Creates and returns a copy of this object.
  76.      *
  77.      * @return A copy of this object.
  78.      */
  79.     @Override
  80.     public NameType clone()
  81.     {
  82.         try
  83.         {
  84.             return (NameType) super.clone();
  85.         }
  86.         catch ( final CloneNotSupportedException e )
  87.         {
  88.             throw new AssertionError( e );
  89.         }
  90.     }

  91.     /**
  92.      * Creates and returns a string representation of the object.
  93.      *
  94.      * @return A string representation of the object.
  95.      */
  96.     @Override
  97.     public String toString()
  98.     {
  99.         return ToStringBuilder.reflectionToString( this );
  100.     }

  101. }