From: Sergey Vladimirov Date: Sat, 9 Jul 2011 11:34:16 +0000 (+0000) Subject: improve DropCapSpecifier, add field getters/setters, toString(), isEmpty(), hashCode... X-Git-Tag: REL_3_8_BETA4~242 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=ba1fcae89676a0c08f5b18a1307216011cfd77fa;p=poi.git improve DropCapSpecifier, add field getters/setters, toString(), isEmpty(), hashCode(), equals() git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1144649 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/src/scratchpad/src/org/apache/poi/hwpf/usermodel/DropCapSpecifier.java b/src/scratchpad/src/org/apache/poi/hwpf/usermodel/DropCapSpecifier.java index b2da9f5eac..5f008acded 100644 --- a/src/scratchpad/src/org/apache/poi/hwpf/usermodel/DropCapSpecifier.java +++ b/src/scratchpad/src/org/apache/poi/hwpf/usermodel/DropCapSpecifier.java @@ -24,29 +24,89 @@ import org.apache.poi.util.LittleEndian; /** * This data structure is used by a paragraph to determine how it should drop * its first letter. I think its the visual effect that will show a giant first - * letter to a paragraph. I've seen this used in the first paragraph of a - * book - * + * letter to a paragraph. I've seen this used in the first paragraph of a book + * * @author Ryan Ackley */ public final class DropCapSpecifier { - private short _info; - private static BitField _type = BitFieldFactory.getInstance(0x07); - private static BitField _lines = BitFieldFactory.getInstance(0xf8); - - public DropCapSpecifier(byte[] buf, int offset) - { - this(LittleEndian.getShort(buf, offset)); - } - - public DropCapSpecifier(short info) - { - _info = info; - } - - public short toShort() - { - return _info; - } + private short _fdct; + private static BitField _lines = BitFieldFactory.getInstance( 0xf8 ); + private static BitField _type = BitFieldFactory.getInstance( 0x07 ); + + public DropCapSpecifier() + { + this._fdct = 0; + } + + public DropCapSpecifier( byte[] buf, int offset ) + { + this( LittleEndian.getShort( buf, offset ) ); + } + + public DropCapSpecifier( short fdct ) + { + this._fdct = fdct; + } + + @Override + public boolean equals( Object obj ) + { + if ( this == obj ) + return true; + if ( obj == null ) + return false; + if ( getClass() != obj.getClass() ) + return false; + DropCapSpecifier other = (DropCapSpecifier) obj; + if ( _fdct != other._fdct ) + return false; + return true; + } + + public byte getCountOfLinesToDrop() + { + return (byte) _lines.getValue( _fdct ); + } + + public byte getDropCapType() + { + return (byte) _type.getValue( _fdct ); + } + + @Override + public int hashCode() + { + return _fdct; + } + + public boolean isEmpty() + { + return _fdct == 0; + } + + public void setCountOfLinesToDrop( byte value ) + { + _fdct = (short) _lines.setValue( _fdct, value ); + } + + public void setDropCapType( byte value ) + { + _fdct = (short) _type.setValue( _fdct, value ); + } + + public short toShort() + { + return _fdct; + } + + @Override + public String toString() + { + if ( isEmpty() ) + return "[DCS] EMPTY"; + + return "[DCS] (type: " + getDropCapType() + "; count: " + + getCountOfLinesToDrop() + ")"; + } }