| package org.eclipse.jface.text; |
| |
| /* |
| * (c) Copyright IBM Corp. 2000, 2001. |
| * All Rights Reserved. |
| */ |
| |
| |
| /** |
| * Default implementation of <code>ITypedRegion</code>. |
| */ |
| public class TypedRegion extends Region implements ITypedRegion { |
| |
| /** The region's type */ |
| private String fType; |
| |
| /** |
| * Creates a typed region based on the given specification. |
| * |
| * @param offset the region's offset |
| * @param length the region's length |
| * @param type the region's type |
| */ |
| public TypedRegion(int offset, int length, String type) { |
| super(offset, length); |
| fType= type; |
| } |
| |
| /* |
| * @see ITypedRegion#getType() |
| */ |
| public String getType() { |
| return fType; |
| } |
| |
| /** |
| * Two typed positions are equal if they have the same offset, length, and type. |
| * |
| * @see Object#equals |
| */ |
| public boolean equals(Object o) { |
| if (o instanceof TypedRegion) { |
| TypedRegion r= (TypedRegion) o; |
| return super.equals(r) && ((fType == null && r.getType() == null) || fType.equals(r.getType())); |
| } |
| return false; |
| } |
| |
| /* |
| * @see Object#hashCode |
| */ |
| public int hashCode() { |
| int type= fType == null ? 0 : fType.hashCode(); |
| return super.hashCode() | type; |
| } |
| } |