2005-02-22 David Gilbert <david.gilbert@object-refinery.com>
authorDavid Gilbert <david.gilbert@object-refinery.com>
Tue, 22 Feb 2005 19:07:40 +0000 (19:07 +0000)
committerMichael Koch <mkoch@gcc.gnu.org>
Tue, 22 Feb 2005 19:07:40 +0000 (19:07 +0000)
* java/awt/font/TransformAttribute.java,
(TransformAttribute(AffineTransform)): throw
IllegalArgumentException for null transform.
(getTransform): return a copy of transform.
Added doc comments to all.

From-SVN: r95408

libjava/ChangeLog
libjava/java/awt/font/TransformAttribute.java

index d36ba6f38c585478fed954003a0fe820d46116e4..5c99a7834171d7a819d78ed520d5c68093debbdd 100644 (file)
@@ -1,3 +1,11 @@
+2005-02-22  David Gilbert  <david.gilbert@object-refinery.com>
+
+       * java/awt/font/TransformAttribute.java,
+       (TransformAttribute(AffineTransform)): throw
+       IllegalArgumentException for null transform.
+       (getTransform): return a copy of transform.
+       Added doc comments to all.
+
 2005-02-22  Jeroen Frijters  <jeroen@frijters.net>
 
        * java/io/Externalizable.java,
index b24170419619eeba0256669959a0da87f74574f7..3bb3c3cf1c33cf2684ec2bb6a292bb26628073eb 100644 (file)
@@ -1,5 +1,5 @@
-/* TransformAttribute.java
-   Copyright (C) 2003 Free Software Foundation, Inc.
+/* TransformAttribute.java --
+   Copyright (C) 2003, 2005  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -42,6 +42,13 @@ import java.awt.geom.AffineTransform;
 import java.io.Serializable;
 
 /**
+ * This class provides a mechanism for using an {@link AffineTransform} as
+ * an <i>immutable</i> attribute (for example, in the 
+ * {@link java.text.AttributedString} class).  Any transform passed to 
+ * this class is copied before being stored, and any transform handed out
+ * by this class is a copy of the stored transform.  In this way, it is 
+ * not possible to modify the stored transform.
+ * 
  * @author Michael Koch
  */
 public final class TransformAttribute implements Serializable
@@ -50,20 +57,40 @@ public final class TransformAttribute implements Serializable
 
   private AffineTransform affineTransform;
   
+  /**
+   * Creates a new attribute that contains a copy of the given transform.
+   * 
+   * @param transform  the transform (<code>null</code> not permitted).
+   * 
+   * @throws IllegalArgumentException if <code>transform</code> is 
+   *         <code>null</code>.
+   */
   public TransformAttribute (AffineTransform transform) 
   {
-    if (transform != null)
+    if (transform == null)
       {
-        this.affineTransform = new AffineTransform (transform);
+        throw new IllegalArgumentException("Null 'transform' not permitted.");
       }
+    this.affineTransform = new AffineTransform (transform);
   }
 
+  /**
+   * Returns a copy of the transform contained by this attribute.
+   * 
+   * @return A copy of the transform.
+   */
   public AffineTransform getTransform ()
   {
-    return affineTransform;
+    return (AffineTransform) affineTransform.clone();
   }
 
   /**
+   * Returns <code>true</code> if the transform contained by this attribute is
+   * an identity transform, and <code>false</code> otherwise.
+   * 
+   * @return <code>true</code> if the transform contained by this attribute is
+   * an identity transform, and <code>false</code> otherwise.
+   * 
    * @since 1.4
    */
   public boolean isIdentity ()