| /* |
| * ==================================================================== |
| * 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 java.util.Arrays; |
| |
| import org.apache.poi.util.*; |
| |
| /** |
| * The PICF structure specifies the type of a picture, as well as the size of the |
| picture and information about its border. <p>Class and fields descriptions are quoted |
| from Microsoft Office Word 97-2007 |
| Binary File Format and [MS-DOC] - v20110608 Word (.doc) |
| 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] and [MS-DOC] - v20110608 Word (.doc) Binary File Format |
| |
| */ |
| @Internal |
| public abstract class PICFAbstractType |
| { |
| |
| protected int field_1_lcb; |
| protected int field_2_cbHeader; |
| protected short field_3_mm; |
| protected short field_4_xExt; |
| protected short field_5_yExt; |
| protected short field_6_swHMF; |
| protected int field_7_grf; |
| protected int field_8_padding; |
| protected int field_9_mmPM; |
| protected int field_10_padding2; |
| protected short field_11_dxaGoal; |
| protected short field_12_dyaGoal; |
| protected int field_13_mx; |
| protected int field_14_my; |
| protected short field_15_dxaReserved1; |
| protected short field_16_dyaReserved1; |
| protected short field_17_dxaReserved2; |
| protected short field_18_dyaReserved2; |
| protected byte field_19_fReserved; |
| protected byte field_20_bpp; |
| protected byte[] field_21_brcTop80; |
| protected byte[] field_22_brcLeft80; |
| protected byte[] field_23_brcBottom80; |
| protected byte[] field_24_brcRight80; |
| protected short field_25_dxaReserved3; |
| protected short field_26_dyaReserved3; |
| protected short field_27_cProps; |
| |
| protected PICFAbstractType() |
| { |
| this.field_21_brcTop80 = new byte[4]; |
| this.field_22_brcLeft80 = new byte[4]; |
| this.field_23_brcBottom80 = new byte[4]; |
| this.field_24_brcRight80 = new byte[4]; |
| } |
| |
| protected void fillFields( byte[] data, int offset ) |
| { |
| field_1_lcb = LittleEndian.getInt( data, 0x0 + offset ); |
| field_2_cbHeader = LittleEndian.getShort( data, 0x4 + offset ); |
| field_3_mm = LittleEndian.getShort( data, 0x6 + offset ); |
| field_4_xExt = LittleEndian.getShort( data, 0x8 + offset ); |
| field_5_yExt = LittleEndian.getShort( data, 0xa + offset ); |
| field_6_swHMF = LittleEndian.getShort( data, 0xc + offset ); |
| field_7_grf = LittleEndian.getInt( data, 0xe + offset ); |
| field_8_padding = LittleEndian.getInt( data, 0x12 + offset ); |
| field_9_mmPM = LittleEndian.getShort( data, 0x16 + offset ); |
| field_10_padding2 = LittleEndian.getInt( data, 0x18 + offset ); |
| field_11_dxaGoal = LittleEndian.getShort( data, 0x1c + offset ); |
| field_12_dyaGoal = LittleEndian.getShort( data, 0x1e + offset ); |
| field_13_mx = LittleEndian.getShort( data, 0x20 + offset ); |
| field_14_my = LittleEndian.getShort( data, 0x22 + offset ); |
| field_15_dxaReserved1 = LittleEndian.getShort( data, 0x24 + offset ); |
| field_16_dyaReserved1 = LittleEndian.getShort( data, 0x26 + offset ); |
| field_17_dxaReserved2 = LittleEndian.getShort( data, 0x28 + offset ); |
| field_18_dyaReserved2 = LittleEndian.getShort( data, 0x2a + offset ); |
| field_19_fReserved = data[ 0x2c + offset ]; |
| field_20_bpp = data[ 0x2d + offset ]; |
| field_21_brcTop80 = LittleEndian.getByteArray( data, 0x2e + offset,4 ); |
| field_22_brcLeft80 = LittleEndian.getByteArray( data, 0x32 + offset,4 ); |
| field_23_brcBottom80 = LittleEndian.getByteArray( data, 0x36 + offset,4 ); |
| field_24_brcRight80 = LittleEndian.getByteArray( data, 0x3a + offset,4 ); |
| field_25_dxaReserved3 = LittleEndian.getShort( data, 0x3e + offset ); |
| field_26_dyaReserved3 = LittleEndian.getShort( data, 0x40 + offset ); |
| field_27_cProps = LittleEndian.getShort( data, 0x42 + offset ); |
| } |
| |
| public void serialize( byte[] data, int offset ) |
| { |
| LittleEndian.putInt( data, 0x0 + offset, field_1_lcb ); |
| LittleEndian.putUShort( data, 0x4 + offset, field_2_cbHeader ); |
| LittleEndian.putShort( data, 0x6 + offset, field_3_mm ); |
| LittleEndian.putShort( data, 0x8 + offset, field_4_xExt ); |
| LittleEndian.putShort( data, 0xa + offset, field_5_yExt ); |
| LittleEndian.putShort( data, 0xc + offset, field_6_swHMF ); |
| LittleEndian.putInt( data, 0xe + offset, field_7_grf ); |
| LittleEndian.putInt( data, 0x12 + offset, field_8_padding ); |
| LittleEndian.putUShort( data, 0x16 + offset, field_9_mmPM ); |
| LittleEndian.putInt( data, 0x18 + offset, field_10_padding2 ); |
| LittleEndian.putShort( data, 0x1c + offset, field_11_dxaGoal ); |
| LittleEndian.putShort( data, 0x1e + offset, field_12_dyaGoal ); |
| LittleEndian.putUShort( data, 0x20 + offset, field_13_mx ); |
| LittleEndian.putUShort( data, 0x22 + offset, field_14_my ); |
| LittleEndian.putShort( data, 0x24 + offset, field_15_dxaReserved1 ); |
| LittleEndian.putShort( data, 0x26 + offset, field_16_dyaReserved1 ); |
| LittleEndian.putShort( data, 0x28 + offset, field_17_dxaReserved2 ); |
| LittleEndian.putShort( data, 0x2a + offset, field_18_dyaReserved2 ); |
| data[ 0x2c + offset ] = field_19_fReserved; |
| data[ 0x2d + offset ] = field_20_bpp; |
| System.arraycopy( field_21_brcTop80, 0, data, 0x2e + offset, field_21_brcTop80.length ); |
| System.arraycopy( field_22_brcLeft80, 0, data, 0x32 + offset, field_22_brcLeft80.length ); |
| System.arraycopy( field_23_brcBottom80, 0, data, 0x36 + offset, field_23_brcBottom80.length ); |
| System.arraycopy( field_24_brcRight80, 0, data, 0x3a + offset, field_24_brcRight80.length ); |
| LittleEndian.putShort( data, 0x3e + offset, field_25_dxaReserved3 ); |
| LittleEndian.putShort( data, 0x40 + offset, field_26_dyaReserved3 ); |
| LittleEndian.putShort( data, 0x42 + offset, field_27_cProps ); |
| } |
| |
| public byte[] serialize() |
| { |
| final byte[] result = new byte[ getSize() ]; |
| serialize( result, 0 ); |
| return result; |
| } |
| |
| /** |
| * Size of record |
| */ |
| public static int getSize() |
| { |
| return 0 + 4 + 2 + 2 + 2 + 2 + 2 + 4 + 4 + 2 + 4 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 1 + 1 + 4 + 4 + 4 + 4 + 2 + 2 + 2; |
| } |
| |
| public String toString() |
| { |
| StringBuilder builder = new StringBuilder(); |
| builder.append("[PICF]\n"); |
| builder.append(" .lcb = "); |
| builder.append(" (").append(getLcb()).append(" )\n"); |
| builder.append(" .cbHeader = "); |
| builder.append(" (").append(getCbHeader()).append(" )\n"); |
| builder.append(" .mm = "); |
| builder.append(" (").append(getMm()).append(" )\n"); |
| builder.append(" .xExt = "); |
| builder.append(" (").append(getXExt()).append(" )\n"); |
| builder.append(" .yExt = "); |
| builder.append(" (").append(getYExt()).append(" )\n"); |
| builder.append(" .swHMF = "); |
| builder.append(" (").append(getSwHMF()).append(" )\n"); |
| builder.append(" .grf = "); |
| builder.append(" (").append(getGrf()).append(" )\n"); |
| builder.append(" .padding = "); |
| builder.append(" (").append(getPadding()).append(" )\n"); |
| builder.append(" .mmPM = "); |
| builder.append(" (").append(getMmPM()).append(" )\n"); |
| builder.append(" .padding2 = "); |
| builder.append(" (").append(getPadding2()).append(" )\n"); |
| builder.append(" .dxaGoal = "); |
| builder.append(" (").append(getDxaGoal()).append(" )\n"); |
| builder.append(" .dyaGoal = "); |
| builder.append(" (").append(getDyaGoal()).append(" )\n"); |
| builder.append(" .mx = "); |
| builder.append(" (").append(getMx()).append(" )\n"); |
| builder.append(" .my = "); |
| builder.append(" (").append(getMy()).append(" )\n"); |
| builder.append(" .dxaReserved1 = "); |
| builder.append(" (").append(getDxaReserved1()).append(" )\n"); |
| builder.append(" .dyaReserved1 = "); |
| builder.append(" (").append(getDyaReserved1()).append(" )\n"); |
| builder.append(" .dxaReserved2 = "); |
| builder.append(" (").append(getDxaReserved2()).append(" )\n"); |
| builder.append(" .dyaReserved2 = "); |
| builder.append(" (").append(getDyaReserved2()).append(" )\n"); |
| builder.append(" .fReserved = "); |
| builder.append(" (").append(getFReserved()).append(" )\n"); |
| builder.append(" .bpp = "); |
| builder.append(" (").append(getBpp()).append(" )\n"); |
| builder.append(" .brcTop80 = "); |
| builder.append(" (").append(Arrays.toString(getBrcTop80())).append(" )\n"); |
| builder.append(" .brcLeft80 = "); |
| builder.append(" (").append(Arrays.toString(getBrcLeft80())).append(" )\n"); |
| builder.append(" .brcBottom80 = "); |
| builder.append(" (").append(Arrays.toString(getBrcBottom80())).append(" )\n"); |
| builder.append(" .brcRight80 = "); |
| builder.append(" (").append(Arrays.toString(getBrcRight80())).append(" )\n"); |
| builder.append(" .dxaReserved3 = "); |
| builder.append(" (").append(getDxaReserved3()).append(" )\n"); |
| builder.append(" .dyaReserved3 = "); |
| builder.append(" (").append(getDyaReserved3()).append(" )\n"); |
| builder.append(" .cProps = "); |
| builder.append(" (").append(getCProps()).append(" )\n"); |
| |
| builder.append("[/PICF]\n"); |
| return builder.toString(); |
| } |
| |
| /** |
| * A signed integer that specifies the size, in bytes, of this PICF structure and the subsequent data. |
| */ |
| @Internal |
| public int getLcb() |
| { |
| return field_1_lcb; |
| } |
| |
| /** |
| * A signed integer that specifies the size, in bytes, of this PICF structure and the subsequent data. |
| */ |
| @Internal |
| public void setLcb( int field_1_lcb ) |
| { |
| this.field_1_lcb = field_1_lcb; |
| } |
| |
| /** |
| * An unsigned integer that specifies the size, in bytes, of this PICF structure. This value MUST be 0x44. |
| */ |
| @Internal |
| public int getCbHeader() |
| { |
| return field_2_cbHeader; |
| } |
| |
| /** |
| * An unsigned integer that specifies the size, in bytes, of this PICF structure. This value MUST be 0x44. |
| */ |
| @Internal |
| public void setCbHeader( int field_2_cbHeader ) |
| { |
| this.field_2_cbHeader = field_2_cbHeader; |
| } |
| |
| /** |
| * A signed integer that specifies the format of the picture data. |
| */ |
| @Internal |
| public short getMm() |
| { |
| return field_3_mm; |
| } |
| |
| /** |
| * A signed integer that specifies the format of the picture data. |
| */ |
| @Internal |
| public void setMm( short field_3_mm ) |
| { |
| this.field_3_mm = field_3_mm; |
| } |
| |
| /** |
| * This field is unused and MUST be ignored. |
| */ |
| @Internal |
| public short getXExt() |
| { |
| return field_4_xExt; |
| } |
| |
| /** |
| * This field is unused and MUST be ignored. |
| */ |
| @Internal |
| public void setXExt( short field_4_xExt ) |
| { |
| this.field_4_xExt = field_4_xExt; |
| } |
| |
| /** |
| * This field is unused and MUST be ignored. |
| */ |
| @Internal |
| public short getYExt() |
| { |
| return field_5_yExt; |
| } |
| |
| /** |
| * This field is unused and MUST be ignored. |
| */ |
| @Internal |
| public void setYExt( short field_5_yExt ) |
| { |
| this.field_5_yExt = field_5_yExt; |
| } |
| |
| /** |
| * This field is unused and MUST be ignored. |
| */ |
| @Internal |
| public short getSwHMF() |
| { |
| return field_6_swHMF; |
| } |
| |
| /** |
| * This field is unused and MUST be ignored. |
| */ |
| @Internal |
| public void setSwHMF( short field_6_swHMF ) |
| { |
| this.field_6_swHMF = field_6_swHMF; |
| } |
| |
| /** |
| * This field MUST be ignored. |
| */ |
| @Internal |
| public int getGrf() |
| { |
| return field_7_grf; |
| } |
| |
| /** |
| * This field MUST be ignored. |
| */ |
| @Internal |
| public void setGrf( int field_7_grf ) |
| { |
| this.field_7_grf = field_7_grf; |
| } |
| |
| /** |
| * This value MUST be zero and MUST be ignored. |
| */ |
| @Internal |
| public int getPadding() |
| { |
| return field_8_padding; |
| } |
| |
| /** |
| * This value MUST be zero and MUST be ignored. |
| */ |
| @Internal |
| public void setPadding( int field_8_padding ) |
| { |
| this.field_8_padding = field_8_padding; |
| } |
| |
| /** |
| * This field MUST be ignored. |
| */ |
| @Internal |
| public int getMmPM() |
| { |
| return field_9_mmPM; |
| } |
| |
| /** |
| * This field MUST be ignored. |
| */ |
| @Internal |
| public void setMmPM( int field_9_mmPM ) |
| { |
| this.field_9_mmPM = field_9_mmPM; |
| } |
| |
| /** |
| * This value MUST be zero and MUST be ignored. |
| */ |
| @Internal |
| public int getPadding2() |
| { |
| return field_10_padding2; |
| } |
| |
| /** |
| * This value MUST be zero and MUST be ignored. |
| */ |
| @Internal |
| public void setPadding2( int field_10_padding2 ) |
| { |
| this.field_10_padding2 = field_10_padding2; |
| } |
| |
| /** |
| * Get the dxaGoal field for the PICF record. |
| */ |
| @Internal |
| public short getDxaGoal() |
| { |
| return field_11_dxaGoal; |
| } |
| |
| /** |
| * Set the dxaGoal field for the PICF record. |
| */ |
| @Internal |
| public void setDxaGoal( short field_11_dxaGoal ) |
| { |
| this.field_11_dxaGoal = field_11_dxaGoal; |
| } |
| |
| /** |
| * Get the dyaGoal field for the PICF record. |
| */ |
| @Internal |
| public short getDyaGoal() |
| { |
| return field_12_dyaGoal; |
| } |
| |
| /** |
| * Set the dyaGoal field for the PICF record. |
| */ |
| @Internal |
| public void setDyaGoal( short field_12_dyaGoal ) |
| { |
| this.field_12_dyaGoal = field_12_dyaGoal; |
| } |
| |
| /** |
| * Get the mx field for the PICF record. |
| */ |
| @Internal |
| public int getMx() |
| { |
| return field_13_mx; |
| } |
| |
| /** |
| * Set the mx field for the PICF record. |
| */ |
| @Internal |
| public void setMx( int field_13_mx ) |
| { |
| this.field_13_mx = field_13_mx; |
| } |
| |
| /** |
| * Get the my field for the PICF record. |
| */ |
| @Internal |
| public int getMy() |
| { |
| return field_14_my; |
| } |
| |
| /** |
| * Set the my field for the PICF record. |
| */ |
| @Internal |
| public void setMy( int field_14_my ) |
| { |
| this.field_14_my = field_14_my; |
| } |
| |
| /** |
| * Get the dxaReserved1 field for the PICF record. |
| */ |
| @Internal |
| public short getDxaReserved1() |
| { |
| return field_15_dxaReserved1; |
| } |
| |
| /** |
| * Set the dxaReserved1 field for the PICF record. |
| */ |
| @Internal |
| public void setDxaReserved1( short field_15_dxaReserved1 ) |
| { |
| this.field_15_dxaReserved1 = field_15_dxaReserved1; |
| } |
| |
| /** |
| * Get the dyaReserved1 field for the PICF record. |
| */ |
| @Internal |
| public short getDyaReserved1() |
| { |
| return field_16_dyaReserved1; |
| } |
| |
| /** |
| * Set the dyaReserved1 field for the PICF record. |
| */ |
| @Internal |
| public void setDyaReserved1( short field_16_dyaReserved1 ) |
| { |
| this.field_16_dyaReserved1 = field_16_dyaReserved1; |
| } |
| |
| /** |
| * Get the dxaReserved2 field for the PICF record. |
| */ |
| @Internal |
| public short getDxaReserved2() |
| { |
| return field_17_dxaReserved2; |
| } |
| |
| /** |
| * Set the dxaReserved2 field for the PICF record. |
| */ |
| @Internal |
| public void setDxaReserved2( short field_17_dxaReserved2 ) |
| { |
| this.field_17_dxaReserved2 = field_17_dxaReserved2; |
| } |
| |
| /** |
| * Get the dyaReserved2 field for the PICF record. |
| */ |
| @Internal |
| public short getDyaReserved2() |
| { |
| return field_18_dyaReserved2; |
| } |
| |
| /** |
| * Set the dyaReserved2 field for the PICF record. |
| */ |
| @Internal |
| public void setDyaReserved2( short field_18_dyaReserved2 ) |
| { |
| this.field_18_dyaReserved2 = field_18_dyaReserved2; |
| } |
| |
| /** |
| * Get the fReserved field for the PICF record. |
| */ |
| @Internal |
| public byte getFReserved() |
| { |
| return field_19_fReserved; |
| } |
| |
| /** |
| * Set the fReserved field for the PICF record. |
| */ |
| @Internal |
| public void setFReserved( byte field_19_fReserved ) |
| { |
| this.field_19_fReserved = field_19_fReserved; |
| } |
| |
| /** |
| * Get the bpp field for the PICF record. |
| */ |
| @Internal |
| public byte getBpp() |
| { |
| return field_20_bpp; |
| } |
| |
| /** |
| * Set the bpp field for the PICF record. |
| */ |
| @Internal |
| public void setBpp( byte field_20_bpp ) |
| { |
| this.field_20_bpp = field_20_bpp; |
| } |
| |
| /** |
| * Get the brcTop80 field for the PICF record. |
| */ |
| @Internal |
| public byte[] getBrcTop80() |
| { |
| return field_21_brcTop80; |
| } |
| |
| /** |
| * Set the brcTop80 field for the PICF record. |
| */ |
| @Internal |
| public void setBrcTop80( byte[] field_21_brcTop80 ) |
| { |
| this.field_21_brcTop80 = field_21_brcTop80; |
| } |
| |
| /** |
| * Get the brcLeft80 field for the PICF record. |
| */ |
| @Internal |
| public byte[] getBrcLeft80() |
| { |
| return field_22_brcLeft80; |
| } |
| |
| /** |
| * Set the brcLeft80 field for the PICF record. |
| */ |
| @Internal |
| public void setBrcLeft80( byte[] field_22_brcLeft80 ) |
| { |
| this.field_22_brcLeft80 = field_22_brcLeft80; |
| } |
| |
| /** |
| * Get the brcBottom80 field for the PICF record. |
| */ |
| @Internal |
| public byte[] getBrcBottom80() |
| { |
| return field_23_brcBottom80; |
| } |
| |
| /** |
| * Set the brcBottom80 field for the PICF record. |
| */ |
| @Internal |
| public void setBrcBottom80( byte[] field_23_brcBottom80 ) |
| { |
| this.field_23_brcBottom80 = field_23_brcBottom80; |
| } |
| |
| /** |
| * Get the brcRight80 field for the PICF record. |
| */ |
| @Internal |
| public byte[] getBrcRight80() |
| { |
| return field_24_brcRight80; |
| } |
| |
| /** |
| * Set the brcRight80 field for the PICF record. |
| */ |
| @Internal |
| public void setBrcRight80( byte[] field_24_brcRight80 ) |
| { |
| this.field_24_brcRight80 = field_24_brcRight80; |
| } |
| |
| /** |
| * Get the dxaReserved3 field for the PICF record. |
| */ |
| @Internal |
| public short getDxaReserved3() |
| { |
| return field_25_dxaReserved3; |
| } |
| |
| /** |
| * Set the dxaReserved3 field for the PICF record. |
| */ |
| @Internal |
| public void setDxaReserved3( short field_25_dxaReserved3 ) |
| { |
| this.field_25_dxaReserved3 = field_25_dxaReserved3; |
| } |
| |
| /** |
| * Get the dyaReserved3 field for the PICF record. |
| */ |
| @Internal |
| public short getDyaReserved3() |
| { |
| return field_26_dyaReserved3; |
| } |
| |
| /** |
| * Set the dyaReserved3 field for the PICF record. |
| */ |
| @Internal |
| public void setDyaReserved3( short field_26_dyaReserved3 ) |
| { |
| this.field_26_dyaReserved3 = field_26_dyaReserved3; |
| } |
| |
| /** |
| * This value MUST be 0 and MUST be ignored. |
| */ |
| @Internal |
| public short getCProps() |
| { |
| return field_27_cProps; |
| } |
| |
| /** |
| * This value MUST be 0 and MUST be ignored. |
| */ |
| @Internal |
| public void setCProps( short field_27_cProps ) |
| { |
| this.field_27_cProps = field_27_cProps; |
| } |
| |
| } // END OF CLASS |