add StdfPost2000 to StyleDefinition

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1173714 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Sergey Vladimirov 2011-09-21 15:32:11 +00:00
parent 092ff1b867
commit d13ee3399d

View File

@ -20,10 +20,14 @@ package org.apache.poi.hwpf.model;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.util.Arrays; import java.util.Arrays;
import org.apache.poi.hwpf.sprm.SprmIterator;
import org.apache.poi.hwpf.usermodel.CharacterProperties; import org.apache.poi.hwpf.usermodel.CharacterProperties;
import org.apache.poi.hwpf.usermodel.ParagraphProperties; import org.apache.poi.hwpf.usermodel.ParagraphProperties;
import org.apache.poi.util.Internal; import org.apache.poi.util.Internal;
import org.apache.poi.util.LittleEndian; import org.apache.poi.util.LittleEndian;
import org.apache.poi.util.POILogFactory;
import org.apache.poi.util.POILogger;
/** /**
* Comment me * Comment me
@ -34,6 +38,8 @@ import org.apache.poi.util.LittleEndian;
public final class StyleDescription implements HDFType public final class StyleDescription implements HDFType
{ {
private static final POILogger logger = POILogFactory.getLogger( StyleDescription.class );
private final static int PARAGRAPH_STYLE = 1; private final static int PARAGRAPH_STYLE = 1;
private final static int CHARACTER_STYLE = 2; private final static int CHARACTER_STYLE = 2;
private final static int TABLE_STYLE = 3; private final static int TABLE_STYLE = 3;
@ -41,6 +47,7 @@ public final class StyleDescription implements HDFType
private int _baseLength; private int _baseLength;
private StdfBase _stdfBase; private StdfBase _stdfBase;
private StdfPost2000 _stdfPost2000;
UPX[] _upxs; UPX[] _upxs;
String _name; String _name;
@ -57,9 +64,31 @@ public final class StyleDescription implements HDFType
_baseLength = baseLength; _baseLength = baseLength;
int nameStart = offset + baseLength; int nameStart = offset + baseLength;
boolean readStdfPost2000 = false;
if ( baseLength == 0x0012 )
{
readStdfPost2000 = true;
}
else if ( baseLength == 0x000A )
{
readStdfPost2000 = false;
}
else
{
logger.log( POILogger.WARN,
"Style definition has non-standard size of ",
Integer.valueOf( baseLength ) );
}
_stdfBase = new StdfBase(std, offset); _stdfBase = new StdfBase(std, offset);
offset += StdfBase.getSize(); offset += StdfBase.getSize();
if ( readStdfPost2000 )
{
_stdfPost2000 = new StdfPost2000( std, offset );
offset += StdfPost2000.getSize();
}
//first byte(s) of variable length section of std is the length of the //first byte(s) of variable length section of std is the length of the
//style name and aliases string //style name and aliases string
int nameLength = 0; int nameLength = 0;
@ -255,7 +284,18 @@ public final class StyleDescription implements HDFType
@Override @Override
public String toString() public String toString()
{ {
return "[STD]: '" + _name + "'" StringBuilder result = new StringBuilder();
+ ( "\n" + _stdfBase ).replaceAll( "\n", "\n " ); result.append( "[STD]: '" );
result.append( _name );
result.append( "'" );
result.append( ( "\nStdfBase:\t" + _stdfBase ).replaceAll( "\n",
"\n " ) );
result.append( ( "\nStdfPost2000:\t" + _stdfPost2000 ).replaceAll(
"\n", "\n " ) );
for ( UPX upx : _upxs )
{
result.append( ( "\nUPX:\t" + upx ).replaceAll( "\n", "\n " ) );
}
return result.toString();
} }
} }