]> source.dussan.org Git - poi.git/commitdiff
fix generics warning
authorSergey Vladimirov <sergey@apache.org>
Thu, 7 Jul 2011 09:59:51 +0000 (09:59 +0000)
committerSergey Vladimirov <sergey@apache.org>
Thu, 7 Jul 2011 09:59:51 +0000 (09:59 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1143740 13f79535-47bb-0310-9956-ffa450edef68

src/scratchpad/src/org/apache/poi/hwpf/model/BytePropertyNode.java
src/scratchpad/src/org/apache/poi/hwpf/model/CHPX.java
src/scratchpad/src/org/apache/poi/hwpf/model/CachedPropertyNode.java
src/scratchpad/src/org/apache/poi/hwpf/model/GenericPropertyNode.java
src/scratchpad/src/org/apache/poi/hwpf/model/PAPX.java
src/scratchpad/src/org/apache/poi/hwpf/model/PropertyNode.java
src/scratchpad/src/org/apache/poi/hwpf/model/SEPX.java
src/scratchpad/src/org/apache/poi/hwpf/model/TextPiece.java

index 59ac18e7b1d5a3c804425a5d3d7196a360a7718d..2bc5f004cff5b0be8309d0872a79eda851223164 100644 (file)
@@ -24,7 +24,9 @@ package org.apache.poi.hwpf.model;
  * It handles the conversion as required between bytes
  *  and characters.
  */
-public abstract class BytePropertyNode extends PropertyNode {
+public abstract class BytePropertyNode<T extends BytePropertyNode<T>> extends
+        PropertyNode<T>
+{
         private final int startBytes;
         private final int endBytes;
 
index 940f20438fe45754e0f51de7b04fcce2906dab3a..7aebf89f0201773c87acc0a1f669685cb198205f 100644 (file)
@@ -17,9 +17,9 @@
 
 package org.apache.poi.hwpf.model;
 
-import org.apache.poi.hwpf.usermodel.CharacterProperties;
-import org.apache.poi.hwpf.sprm.SprmBuffer;
 import org.apache.poi.hwpf.sprm.CharacterSprmUncompressor;
+import org.apache.poi.hwpf.sprm.SprmBuffer;
+import org.apache.poi.hwpf.usermodel.CharacterProperties;
 
 /**
  * DANGER - works in bytes!
@@ -31,7 +31,7 @@ import org.apache.poi.hwpf.sprm.CharacterSprmUncompressor;
  * @author Ryan Ackley
  */
 
-public final class CHPX extends BytePropertyNode
+public final class CHPX extends BytePropertyNode<CHPX>
 {
 
   public CHPX(int fcStart, int fcEnd, CharIndexTranslator translator, byte[] grpprl)
index 565cdb2cb8bf28a6f1eadcf2b0300c59a67d0b5a..51928e6cd5dc290e227da917296fdb1a34029742 100644 (file)
 
 package org.apache.poi.hwpf.model;
 
-import org.apache.poi.hwpf.sprm.SprmBuffer;
-
 import java.lang.ref.SoftReference;
 
+import org.apache.poi.hwpf.sprm.SprmBuffer;
+
 public final class CachedPropertyNode
-  extends PropertyNode
+  extends PropertyNode<CachedPropertyNode>
 {
   protected SoftReference _propCache;
 
index 28c380383f48ad436182e0cc42019d96c2e03e54..7b2730d79ab425c3576c27670adb209b09c33106 100644 (file)
@@ -18,7 +18,7 @@
 package org.apache.poi.hwpf.model;
 
 public final class GenericPropertyNode
-  extends PropertyNode
+  extends PropertyNode<GenericPropertyNode>
 {
   public GenericPropertyNode(int start, int end, byte[] buf)
   {
index 6ea71ebccf65d7f158c4f4590a8750c03c9acb8b..1707ccd71a63a8b4b9775b4d8f61cc78d34f2132 100644 (file)
@@ -34,7 +34,7 @@ import org.apache.poi.util.LittleEndian;
  * @author Ryan Ackley
  */
 
-public final class PAPX extends BytePropertyNode {
+public final class PAPX extends BytePropertyNode<PAPX> {
 
   private ParagraphHeight _phe;
   private int _hugeGrpprlOffset = -1;
index 6c5a23972a43135d7c75667908eeee20e447bc45..251458e3f6466a8d5c38221b8ef236c22be20670 100644 (file)
 
 package org.apache.poi.hwpf.model;
 
+import java.util.Arrays;
+
 import org.apache.poi.util.POILogFactory;
 import org.apache.poi.util.POILogger;
 
-import java.util.Arrays;
-
 /**
  * Represents a lightweight node in the Trees used to store content
  *  properties.
@@ -31,7 +31,7 @@ import java.util.Arrays;
  *
  * @author Ryan Ackley
  */
-public abstract class PropertyNode implements Comparable, Cloneable
+public abstract class PropertyNode<T extends PropertyNode<T>>  implements Comparable<T>, Cloneable
 {
   private final static POILogger _logger = POILogFactory.getLogger(PropertyNode.class);
   protected Object _buf;
@@ -114,16 +114,22 @@ public abstract class PropertyNode implements Comparable, Cloneable
 
   protected boolean limitsAreEqual(Object o)
   {
-    return ((PropertyNode)o).getStart() == _cpStart &&
-           ((PropertyNode)o).getEnd() == _cpEnd;
+    return ((PropertyNode<?>)o).getStart() == _cpStart &&
+           ((PropertyNode<?>)o).getEnd() == _cpEnd;
 
   }
 
+    @Override
+    public int hashCode()
+    {
+        return this._cpStart * 31 + this._buf.hashCode();
+    }
+
   public boolean equals(Object o)
   {
     if (limitsAreEqual(o))
     {
-      Object testBuf = ((PropertyNode)o)._buf;
+      Object testBuf = ((PropertyNode<?>)o)._buf;
       if (testBuf instanceof byte[] && _buf instanceof byte[])
       {
         return Arrays.equals((byte[])testBuf, (byte[])_buf);
@@ -133,18 +139,18 @@ public abstract class PropertyNode implements Comparable, Cloneable
     return false;
   }
 
-  public Object clone()
+  public T clone()
     throws CloneNotSupportedException
   {
-    return super.clone();
+    return (T) super.clone();
   }
 
   /**
    * Used for sorting in collections.
    */
-  public int compareTo(Object o)
+  public int compareTo(T o)
   {
-      int cpEnd = ((PropertyNode)o).getEnd();
+      int cpEnd = o.getEnd();
       if(_cpEnd == cpEnd)
       {
         return 0;
index 880d4956ee24d01fe0568544039a10f49ed4e314..b6ae393d67a501cca651e26cd0ca350ee7b3fb70 100644 (file)
@@ -23,7 +23,7 @@ import org.apache.poi.hwpf.usermodel.SectionProperties;
 
 /**
  */
-public final class SEPX extends BytePropertyNode
+public final class SEPX extends BytePropertyNode<SEPX>
 {
 
   SectionDescriptor _sed;
index 1ae5f604d291120b2f8c8bdf71ece69f82d0194c..50e1127b5d75fcb09fddeac56018a968605c844b 100644 (file)
@@ -28,7 +28,7 @@ import java.io.UnsupportedEncodingException;
  * @author Ryan Ackley
  */
 
-public final class TextPiece extends PropertyNode implements Comparable
+public final class TextPiece extends PropertyNode<TextPiece>
 {
   private boolean _usesUnicode;