| /* ==================================================================== |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| ==================================================================== */ |
| package org.apache.poi.hwpf.model.types; |
| |
| |
| import org.apache.poi.util.BitField; |
| import org.apache.poi.util.Internal; |
| import org.apache.poi.util.LittleEndian; |
| |
| /** |
| * File Shape Address (FSPA). |
| * <p> |
| * Class and fields descriptions are quoted from Microsoft Office Word 97-2007 |
| * Binary File Format |
| * |
| * <p> |
| * NOTE: This source is automatically generated please do not modify this file. |
| * Either subclass or remove the record in src/types/definitions. |
| * <p> |
| * This class is internal. It content or properties may change without notice |
| * due to changes in our knowledge of internal Microsoft Word binary structures. |
| * |
| * @author Sergey Vladimirov; according to Microsoft Office Word 97-2007 Binary |
| * File Format Specification [*.doc] |
| */ |
| @Internal |
| public abstract class FSPAAbstractType |
| { |
| |
| protected int field_1_spid; |
| protected int field_2_xaLeft; |
| protected int field_3_yaTop; |
| protected int field_4_xaRight; |
| protected int field_5_yaBottom; |
| protected short field_6_flags; |
| /**/private static BitField fHdr = new BitField(0x0001); |
| /**/private static BitField bx = new BitField(0x0006); |
| /**/private static BitField by = new BitField(0x0018); |
| /**/private static BitField wr = new BitField(0x01E0); |
| /**/private static BitField wrk = new BitField(0x1E00); |
| /**/private static BitField fRcaSimple = new BitField(0x2000); |
| /**/private static BitField fBelowText = new BitField(0x4000); |
| /**/private static BitField fAnchorLock = new BitField(0x8000); |
| protected int field_7_cTxbx; |
| |
| protected FSPAAbstractType() |
| { |
| } |
| |
| protected void fillFields( byte[] data, int offset ) |
| { |
| field_1_spid = LittleEndian.getInt(data, 0x0 + offset); |
| field_2_xaLeft = LittleEndian.getInt(data, 0x4 + offset); |
| field_3_yaTop = LittleEndian.getInt(data, 0x8 + offset); |
| field_4_xaRight = LittleEndian.getInt(data, 0xc + offset); |
| field_5_yaBottom = LittleEndian.getInt(data, 0x10 + offset); |
| field_6_flags = LittleEndian.getShort(data, 0x14 + offset); |
| field_7_cTxbx = LittleEndian.getInt(data, 0x16 + offset); |
| } |
| |
| public void serialize( byte[] data, int offset ) |
| { |
| LittleEndian.putInt(data, 0x0 + offset, field_1_spid); |
| LittleEndian.putInt(data, 0x4 + offset, field_2_xaLeft); |
| LittleEndian.putInt(data, 0x8 + offset, field_3_yaTop); |
| LittleEndian.putInt(data, 0xc + offset, field_4_xaRight); |
| LittleEndian.putInt(data, 0x10 + offset, field_5_yaBottom); |
| LittleEndian.putShort(data, 0x14 + offset, field_6_flags); |
| LittleEndian.putInt(data, 0x16 + offset, field_7_cTxbx); |
| } |
| |
| /** |
| * Size of record |
| */ |
| public static int getSize() |
| { |
| return 0 + 4 + 4 + 4 + 4 + 4 + 2 + 4; |
| } |
| |
| public String toString() |
| { |
| StringBuilder builder = new StringBuilder(); |
| builder.append("[FSPA]\n"); |
| builder.append(" .spid = "); |
| builder.append(" (").append(getSpid()).append(" )\n"); |
| builder.append(" .xaLeft = "); |
| builder.append(" (").append(getXaLeft()).append(" )\n"); |
| builder.append(" .yaTop = "); |
| builder.append(" (").append(getYaTop()).append(" )\n"); |
| builder.append(" .xaRight = "); |
| builder.append(" (").append(getXaRight()).append(" )\n"); |
| builder.append(" .yaBottom = "); |
| builder.append(" (").append(getYaBottom()).append(" )\n"); |
| builder.append(" .flags = "); |
| builder.append(" (").append(getFlags()).append(" )\n"); |
| builder.append(" .fHdr = ").append(isFHdr()).append('\n'); |
| builder.append(" .bx = ").append(getBx()).append('\n'); |
| builder.append(" .by = ").append(getBy()).append('\n'); |
| builder.append(" .wr = ").append(getWr()).append('\n'); |
| builder.append(" .wrk = ").append(getWrk()).append('\n'); |
| builder.append(" .fRcaSimple = ").append(isFRcaSimple()).append('\n'); |
| builder.append(" .fBelowText = ").append(isFBelowText()).append('\n'); |
| builder.append(" .fAnchorLock = ").append(isFAnchorLock()).append('\n'); |
| builder.append(" .cTxbx = "); |
| builder.append(" (").append(getCTxbx()).append(" )\n"); |
| |
| builder.append("[/FSPA]\n"); |
| return builder.toString(); |
| } |
| |
| /** |
| * Shape Identifier. Used in conjunction with the office art data (found via fcDggInfo in the FIB) to find the actual data for this shape. |
| */ |
| @Internal |
| public int getSpid() |
| { |
| return field_1_spid; |
| } |
| |
| /** |
| * Shape Identifier. Used in conjunction with the office art data (found via fcDggInfo in the FIB) to find the actual data for this shape. |
| */ |
| @Internal |
| public void setSpid( int field_1_spid ) |
| { |
| this.field_1_spid = field_1_spid; |
| } |
| |
| /** |
| * Left of rectangle enclosing shape relative to the origin of the shape. |
| */ |
| @Internal |
| public int getXaLeft() |
| { |
| return field_2_xaLeft; |
| } |
| |
| /** |
| * Left of rectangle enclosing shape relative to the origin of the shape. |
| */ |
| @Internal |
| public void setXaLeft( int field_2_xaLeft ) |
| { |
| this.field_2_xaLeft = field_2_xaLeft; |
| } |
| |
| /** |
| * Top of rectangle enclosing shape relative to the origin of the shape. |
| */ |
| @Internal |
| public int getYaTop() |
| { |
| return field_3_yaTop; |
| } |
| |
| /** |
| * Top of rectangle enclosing shape relative to the origin of the shape. |
| */ |
| @Internal |
| public void setYaTop( int field_3_yaTop ) |
| { |
| this.field_3_yaTop = field_3_yaTop; |
| } |
| |
| /** |
| * Right of rectangle enclosing shape relative to the origin of the shape. |
| */ |
| @Internal |
| public int getXaRight() |
| { |
| return field_4_xaRight; |
| } |
| |
| /** |
| * Right of rectangle enclosing shape relative to the origin of the shape. |
| */ |
| @Internal |
| public void setXaRight( int field_4_xaRight ) |
| { |
| this.field_4_xaRight = field_4_xaRight; |
| } |
| |
| /** |
| * Bottom of the rectangle enclosing shape relative to the origin of the shape. |
| */ |
| @Internal |
| public int getYaBottom() |
| { |
| return field_5_yaBottom; |
| } |
| |
| /** |
| * Bottom of the rectangle enclosing shape relative to the origin of the shape. |
| */ |
| @Internal |
| public void setYaBottom( int field_5_yaBottom ) |
| { |
| this.field_5_yaBottom = field_5_yaBottom; |
| } |
| |
| /** |
| * Get the flags field for the FSPA record. |
| */ |
| @Internal |
| public short getFlags() |
| { |
| return field_6_flags; |
| } |
| |
| /** |
| * Set the flags field for the FSPA record. |
| */ |
| @Internal |
| public void setFlags( short field_6_flags ) |
| { |
| this.field_6_flags = field_6_flags; |
| } |
| |
| /** |
| * Count of textboxes in shape (undo doc only). |
| */ |
| @Internal |
| public int getCTxbx() |
| { |
| return field_7_cTxbx; |
| } |
| |
| /** |
| * Count of textboxes in shape (undo doc only). |
| */ |
| @Internal |
| public void setCTxbx( int field_7_cTxbx ) |
| { |
| this.field_7_cTxbx = field_7_cTxbx; |
| } |
| |
| /** |
| * Sets the fHdr field value. |
| * 1 in the undo doc when shape is from the header doc, 0 otherwise (undefined when not in the undo doc) |
| */ |
| @Internal |
| public void setFHdr( boolean value ) |
| { |
| field_6_flags = (short)fHdr.setBoolean(field_6_flags, value); |
| } |
| |
| /** |
| * 1 in the undo doc when shape is from the header doc, 0 otherwise (undefined when not in the undo doc) |
| * @return the fHdr field value. |
| */ |
| @Internal |
| public boolean isFHdr() |
| { |
| return fHdr.isSet(field_6_flags); |
| } |
| |
| /** |
| * Sets the bx field value. |
| * X position of shape relative to anchor CP |
| */ |
| @Internal |
| public void setBx( byte value ) |
| { |
| field_6_flags = (short)bx.setValue(field_6_flags, value); |
| } |
| |
| /** |
| * X position of shape relative to anchor CP |
| * @return the bx field value. |
| */ |
| @Internal |
| public byte getBx() |
| { |
| return ( byte )bx.getValue(field_6_flags); |
| } |
| |
| /** |
| * Sets the by field value. |
| * Y position of shape relative to anchor CP |
| */ |
| @Internal |
| public void setBy( byte value ) |
| { |
| field_6_flags = (short)by.setValue(field_6_flags, value); |
| } |
| |
| /** |
| * Y position of shape relative to anchor CP |
| * @return the by field value. |
| */ |
| @Internal |
| public byte getBy() |
| { |
| return ( byte )by.getValue(field_6_flags); |
| } |
| |
| /** |
| * Sets the wr field value. |
| * Text wrapping mode |
| */ |
| @Internal |
| public void setWr( byte value ) |
| { |
| field_6_flags = (short)wr.setValue(field_6_flags, value); |
| } |
| |
| /** |
| * Text wrapping mode |
| * @return the wr field value. |
| */ |
| @Internal |
| public byte getWr() |
| { |
| return ( byte )wr.getValue(field_6_flags); |
| } |
| |
| /** |
| * Sets the wrk field value. |
| * Text wrapping mode type (valid only for wrapping modes 2 and 4 |
| */ |
| @Internal |
| public void setWrk( byte value ) |
| { |
| field_6_flags = (short)wrk.setValue(field_6_flags, value); |
| } |
| |
| /** |
| * Text wrapping mode type (valid only for wrapping modes 2 and 4 |
| * @return the wrk field value. |
| */ |
| @Internal |
| public byte getWrk() |
| { |
| return ( byte )wrk.getValue(field_6_flags); |
| } |
| |
| /** |
| * Sets the fRcaSimple field value. |
| * When set, temporarily overrides bx, by, forcing the xaLeft, xaRight, yaTop, and yaBottom fields to all be page relative. |
| */ |
| @Internal |
| public void setFRcaSimple( boolean value ) |
| { |
| field_6_flags = (short)fRcaSimple.setBoolean(field_6_flags, value); |
| } |
| |
| /** |
| * When set, temporarily overrides bx, by, forcing the xaLeft, xaRight, yaTop, and yaBottom fields to all be page relative. |
| * @return the fRcaSimple field value. |
| */ |
| @Internal |
| public boolean isFRcaSimple() |
| { |
| return fRcaSimple.isSet(field_6_flags); |
| } |
| |
| /** |
| * Sets the fBelowText field value. |
| * |
| */ |
| @Internal |
| public void setFBelowText( boolean value ) |
| { |
| field_6_flags = (short)fBelowText.setBoolean(field_6_flags, value); |
| } |
| |
| /** |
| * |
| * @return the fBelowText field value. |
| */ |
| @Internal |
| public boolean isFBelowText() |
| { |
| return fBelowText.isSet(field_6_flags); |
| } |
| |
| /** |
| * Sets the fAnchorLock field value. |
| * |
| */ |
| @Internal |
| public void setFAnchorLock( boolean value ) |
| { |
| field_6_flags = (short)fAnchorLock.setBoolean(field_6_flags, value); |
| } |
| |
| /** |
| * |
| * @return the fAnchorLock field value. |
| */ |
| @Internal |
| public boolean isFAnchorLock() |
| { |
| return fAnchorLock.isSet(field_6_flags); |
| } |
| |
| } // END OF CLASS |