Remove more deprecated code

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1813092 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
PJ Fanning 2017-10-23 20:39:27 +00:00
parent 6c0ac68e05
commit af2813634b
3 changed files with 384 additions and 481 deletions

View File

@ -1,31 +0,0 @@
/* ====================================================================
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;
import org.apache.poi.util.Internal;
/**
*
* @author andy
*/
@Internal
@Deprecated
public interface HDFType {
}

View File

@ -34,10 +34,9 @@ import org.apache.poi.util.StringUtil;
* @author Ryan Ackley
*/
@Internal
public final class StyleDescription implements HDFType
{
public final class StyleDescription {
private static final POILogger logger = POILogFactory.getLogger( StyleDescription.class );
private static final POILogger logger = POILogFactory.getLogger(StyleDescription.class);
//arbitrarily selected; may need to increase
private static final int MAX_RECORD_LENGTH = 100_000;
@ -57,38 +56,31 @@ public final class StyleDescription implements HDFType
@Deprecated
CharacterProperties _chp;
public StyleDescription()
{
public StyleDescription() {
// _pap = new ParagraphProperties();
// _chp = new CharacterProperties();
}
public StyleDescription(byte[] std, int baseLength, int offset, boolean word9)
{
public StyleDescription(byte[] std, int baseLength, int offset, boolean word9) {
_baseLength = baseLength;
int nameStart = offset + baseLength;
boolean readStdfPost2000 = false;
if ( baseLength == 0x0012 )
{
if (baseLength == 0x0012) {
readStdfPost2000 = true;
}
else if ( baseLength == 0x000A )
{
} else if (baseLength == 0x000A) {
readStdfPost2000 = false;
}
else
{
logger.log( POILogger.WARN,
} else {
logger.log(POILogger.WARN,
"Style definition has non-standard size of ",
Integer.valueOf( baseLength ) );
Integer.valueOf(baseLength));
}
_stdfBase = new StdfBase(std, offset);
offset += StdfBase.getSize();
if ( readStdfPost2000 )
{
_stdfPost2000 = new StdfPost2000( std, offset );
if (readStdfPost2000) {
_stdfPost2000 = new StdfPost2000(std, offset);
// offset += StdfPost2000.getSize();
}
@ -96,18 +88,15 @@ public final class StyleDescription implements HDFType
//style name and aliases string
int nameLength = 0;
int multiplier = 1;
if(word9)
{
if (word9) {
nameLength = LittleEndian.getShort(std, nameStart);
multiplier = 2;
nameStart += LittleEndian.SHORT_SIZE;
}
else
{
} else {
nameLength = std[nameStart];
}
_name = StringUtil.getFromUnicodeLE(std, nameStart, (nameLength*multiplier)/2);
_name = StringUtil.getFromUnicodeLE(std, nameStart, (nameLength * multiplier) / 2);
//length then null terminator.
@ -116,8 +105,7 @@ public final class StyleDescription implements HDFType
int varOffset = ((nameLength + 1) * multiplier) + nameStart;
int countOfUPX = _stdfBase.getCupx();
_upxs = new UPX[countOfUPX];
for(int x = 0; x < countOfUPX; x++)
{
for (int x = 0; x < countOfUPX; x++) {
int upxSize = LittleEndian.getShort(std, varOffset);
varOffset += LittleEndian.SHORT_SIZE;
@ -128,8 +116,7 @@ public final class StyleDescription implements HDFType
// the upx will always start on a word boundary.
if((upxSize & 1) == 1)
{
if ((upxSize & 1) == 1) {
++varOffset;
}
@ -137,17 +124,15 @@ public final class StyleDescription implements HDFType
}
public int getBaseStyle()
{
public int getBaseStyle() {
return _stdfBase.getIstdBase();
}
public byte[] getCHPX()
{
switch (_stdfBase.getStk())
{
public byte[] getCHPX() {
switch (_stdfBase.getStk()) {
case PARAGRAPH_STYLE:
if (_upxs.length > 1)
{
if (_upxs.length > 1) {
return _upxs[1].getUPX();
}
return null;
@ -158,44 +143,41 @@ public final class StyleDescription implements HDFType
}
}
public byte[] getPAPX()
{
switch (_stdfBase.getStk())
{
public byte[] getPAPX() {
switch (_stdfBase.getStk()) {
case PARAGRAPH_STYLE:
return _upxs[0].getUPX();
default:
return null;
}
}
@Deprecated
public ParagraphProperties getPAP()
{
public ParagraphProperties getPAP() {
return _pap;
}
@Deprecated
public CharacterProperties getCHP()
{
public CharacterProperties getCHP() {
return _chp;
}
@Deprecated
void setPAP(ParagraphProperties pap)
{
void setPAP(ParagraphProperties pap) {
_pap = pap;
}
@Deprecated
void setCHP(CharacterProperties chp)
{
void setCHP(CharacterProperties chp) {
_chp = chp;
}
public String getName()
{
public String getName() {
return _name;
}
public byte[] toByteArray()
{
public byte[] toByteArray() {
// size equals _baseLength bytes for known variables plus 2 bytes for name
// length plus name length * 2 plus 2 bytes for null plus upx's preceded by
// length
@ -204,32 +186,29 @@ public final class StyleDescription implements HDFType
// determine the size needed for the upxs. They always fall on word
// boundaries.
size += _upxs[0].size() + 2;
for (int x = 1; x < _upxs.length; x++)
{
size += _upxs[x-1].size() % 2;
for (int x = 1; x < _upxs.length; x++) {
size += _upxs[x - 1].size() % 2;
size += _upxs[x].size() + 2;
}
byte[] buf = new byte[size];
_stdfBase.serialize( buf, 0 );
_stdfBase.serialize(buf, 0);
int offset = _baseLength;
char[] letters = _name.toCharArray();
LittleEndian.putShort(buf, _baseLength, (short)letters.length);
LittleEndian.putShort(buf, _baseLength, (short) letters.length);
offset += LittleEndian.SHORT_SIZE;
for (int x = 0; x < letters.length; x++)
{
LittleEndian.putShort(buf, offset, (short)letters[x]);
for (int x = 0; x < letters.length; x++) {
LittleEndian.putShort(buf, offset, (short) letters[x]);
offset += LittleEndian.SHORT_SIZE;
}
// get past the null delimiter for the name.
offset += LittleEndian.SHORT_SIZE;
for (int x = 0; x < _upxs.length; x++)
{
short upxSize = (short)_upxs[x].size();
for (int x = 0; x < _upxs.length; x++) {
short upxSize = (short) _upxs[x].size();
LittleEndian.putShort(buf, offset, upxSize);
offset += LittleEndian.SHORT_SIZE;
System.arraycopy(_upxs[x].getUPX(), 0, buf, offset, upxSize);
@ -240,60 +219,52 @@ public final class StyleDescription implements HDFType
}
@Override
public int hashCode()
{
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ( ( _name == null ) ? 0 : _name.hashCode() );
result = prime * result + ((_name == null) ? 0 : _name.hashCode());
result = prime * result
+ ( ( _stdfBase == null ) ? 0 : _stdfBase.hashCode() );
result = prime * result + Arrays.hashCode( _upxs );
+ ((_stdfBase == null) ? 0 : _stdfBase.hashCode());
result = prime * result + Arrays.hashCode(_upxs);
return result;
}
@Override
public boolean equals( Object obj )
{
if ( this == obj )
public boolean equals(Object obj) {
if (this == obj)
return true;
if ( obj == null )
if (obj == null)
return false;
if ( getClass() != obj.getClass() )
if (getClass() != obj.getClass())
return false;
StyleDescription other = (StyleDescription) obj;
if ( _name == null )
{
if ( other._name != null )
if (_name == null) {
if (other._name != null)
return false;
}
else if ( !_name.equals( other._name ) )
} else if (!_name.equals(other._name))
return false;
if ( _stdfBase == null )
{
if ( other._stdfBase != null )
if (_stdfBase == null) {
if (other._stdfBase != null)
return false;
}
else if ( !_stdfBase.equals( other._stdfBase ) )
} else if (!_stdfBase.equals(other._stdfBase))
return false;
if ( !Arrays.equals( _upxs, other._upxs ) )
if (!Arrays.equals(_upxs, other._upxs))
return false;
return true;
}
@Override
public String toString()
{
public String toString() {
StringBuilder result = new StringBuilder();
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 " ) );
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();
}

View File

@ -39,7 +39,7 @@ import org.apache.poi.util.LittleEndian;
* @author Ryan Ackley
*/
@Internal
public final class StyleSheet implements HDFType {
public final class StyleSheet {
public static final int NIL_STYLE = 4095;
// private static final int PAP_TYPE = 1;
@ -52,8 +52,8 @@ public final class StyleSheet implements HDFType {
@Deprecated
private final static CharacterProperties NIL_CHP = new CharacterProperties();
private final static byte[] NIL_CHPX = new byte[] {};
private final static byte[] NIL_PAPX = new byte[] {0, 0};
private final static byte[] NIL_CHPX = new byte[]{};
private final static byte[] NIL_PAPX = new byte[]{0, 0};
/**
* Size of the STSHI structure
@ -74,10 +74,9 @@ public final class StyleSheet implements HDFType {
* info. Found by using FileInformationBlock.getFcStshf() and
* FileInformationBLock.getLcbStshf()
*/
public StyleSheet(byte[] tableStream, int offset)
{
public StyleSheet(byte[] tableStream, int offset) {
int startOffset = offset;
_cbStshi = LittleEndian.getShort( tableStream, offset );
_cbStshi = LittleEndian.getShort(tableStream, offset);
offset += LittleEndian.SHORT_SIZE;
/*
@ -88,20 +87,18 @@ public final class StyleSheet implements HDFType {
* be empty, i.e. cbSTD==0.
*/
_stshif = new Stshif( tableStream, offset );
_stshif = new Stshif(tableStream, offset);
offset += Stshif.getSize();
// shall we discard cbLSD and mpstilsd?
offset = startOffset + LittleEndian.SHORT_SIZE + _cbStshi;
_styleDescriptions = new StyleDescription[_stshif.getCstd()];
for(int x = 0; x < _stshif.getCstd(); x++)
{
for (int x = 0; x < _stshif.getCstd(); x++) {
int stdSize = LittleEndian.getShort(tableStream, offset);
//get past the size
offset += 2;
if(stdSize > 0)
{
if (stdSize > 0) {
//byte[] std = new byte[stdSize];
StyleDescription aStyle = new StyleDescription(tableStream,
@ -113,10 +110,8 @@ public final class StyleSheet implements HDFType {
offset += stdSize;
}
for(int x = 0; x < _styleDescriptions.length; x++)
{
if(_styleDescriptions[x] != null)
{
for (int x = 0; x < _styleDescriptions.length; x++) {
if (_styleDescriptions[x] != null) {
createPap(x);
createChp(x);
}
@ -124,8 +119,7 @@ public final class StyleSheet implements HDFType {
}
public void writeTo(OutputStream out)
throws IOException
{
throws IOException {
int offset = 0;
@ -139,35 +133,30 @@ public final class StyleSheet implements HDFType {
// add two bytes so we can prepend the stylesheet w/ its size
byte[] buf = new byte[_cbStshi + 2];
LittleEndian.putUShort(buf, offset, (short)_cbStshi);
LittleEndian.putUShort(buf, offset, (short) _cbStshi);
offset += LittleEndian.SHORT_SIZE;
_stshif.setCstd( _styleDescriptions.length );
_stshif.serialize( buf, offset );
_stshif.setCstd(_styleDescriptions.length);
_stshif.serialize(buf, offset);
// offset += Stshif.getSize();
out.write(buf);
byte[] sizeHolder = new byte[2];
for (int x = 0; x < _styleDescriptions.length; x++)
{
if(_styleDescriptions[x] != null)
{
for (int x = 0; x < _styleDescriptions.length; x++) {
if (_styleDescriptions[x] != null) {
byte[] std = _styleDescriptions[x].toByteArray();
// adjust the size so it is always on a word boundary
LittleEndian.putShort(sizeHolder, 0, (short)((std.length) + (std.length % 2)));
LittleEndian.putShort(sizeHolder, 0, (short) ((std.length) + (std.length % 2)));
out.write(sizeHolder);
out.write(std);
// Must always start on a word boundary.
if (std.length % 2 == 1)
{
if (std.length % 2 == 1) {
out.write('\0');
}
}
else
{
} else {
sizeHolder[0] = 0;
sizeHolder[1] = 0;
out.write(sizeHolder);
@ -176,17 +165,16 @@ public final class StyleSheet implements HDFType {
}
@Override
public boolean equals(Object o)
{
public boolean equals(Object o) {
if (!(o instanceof StyleSheet)) return false;
StyleSheet ss = (StyleSheet)o;
StyleSheet ss = (StyleSheet) o;
if (!ss._stshif.equals( this._stshif )
if (!ss._stshif.equals(this._stshif)
|| ss._cbStshi != this._cbStshi
|| ss._styleDescriptions.length != this._styleDescriptions.length
) return false;
for (int i=0; i<_styleDescriptions.length; i++) {
for (int i = 0; i < _styleDescriptions.length; i++) {
StyleDescription tsd = this._styleDescriptions[i];
StyleDescription osd = ss._styleDescriptions[i];
if (tsd == null && osd == null) continue;
@ -213,21 +201,18 @@ public final class StyleSheet implements HDFType {
* ParagraphProperties from (and also place the finished PAP in)
*/
@Deprecated
private void createPap(int istd)
{
private void createPap(int istd) {
StyleDescription sd = _styleDescriptions[istd];
ParagraphProperties pap = sd.getPAP();
byte[] papx = sd.getPAPX();
int baseIndex = sd.getBaseStyle();
if(pap == null && papx != null)
{
if (pap == null && papx != null) {
ParagraphProperties parentPAP = new ParagraphProperties();
if(baseIndex != NIL_STYLE)
{
if (baseIndex != NIL_STYLE) {
parentPAP = _styleDescriptions[baseIndex].getPAP();
if(parentPAP == null) {
if(baseIndex == istd) {
if (parentPAP == null) {
if (baseIndex == istd) {
// Oh dear, style claims that it is its own parent
throw new IllegalStateException("Pap style " + istd + " claimed to have itself as its parent, which isn't allowed");
}
@ -246,6 +231,7 @@ public final class StyleSheet implements HDFType {
sd.setPAP(pap);
}
}
/**
* Creates a CharacterProperties object from a chpx stored in the
* StyleDescription at the index istd in the StyleDescription array. The
@ -257,14 +243,13 @@ public final class StyleSheet implements HDFType {
* CharacterProperties object from.
*/
@Deprecated
private void createChp(int istd)
{
private void createChp(int istd) {
StyleDescription sd = _styleDescriptions[istd];
CharacterProperties chp = sd.getCHP();
byte[] chpx = sd.getCHPX();
int baseIndex = sd.getBaseStyle();
if(baseIndex == istd) {
if (baseIndex == istd) {
// Oh dear, this isn't allowed...
// The word file seems to be corrupted
// Switch to using the nil style so that
@ -273,18 +258,15 @@ public final class StyleSheet implements HDFType {
}
// Build and decompress the Chp if required
if(chp == null && chpx != null)
{
if (chp == null && chpx != null) {
CharacterProperties parentCHP = new CharacterProperties();
if(baseIndex != NIL_STYLE)
{
if (baseIndex != NIL_STYLE) {
parentCHP = _styleDescriptions[baseIndex].getCHP();
if(parentCHP == null)
{
if (parentCHP == null) {
createChp(baseIndex);
parentCHP = _styleDescriptions[baseIndex].getCHP();
}
if(parentCHP == null) {
if (parentCHP == null) {
parentCHP = new CharacterProperties();
}
}
@ -296,6 +278,7 @@ public final class StyleSheet implements HDFType {
/**
* Gets the number of styles in the style sheet.
*
* @return The number of styles in the style sheet.
*/
public int numStyles() {
@ -305,101 +288,81 @@ public final class StyleSheet implements HDFType {
/**
* Gets the StyleDescription at index x.
*
* @param styleIndex
* the index of the desired StyleDescription.
* @param styleIndex the index of the desired StyleDescription.
*/
public StyleDescription getStyleDescription( int styleIndex )
{
public StyleDescription getStyleDescription(int styleIndex) {
return _styleDescriptions[styleIndex];
}
@Deprecated
public CharacterProperties getCharacterStyle( int styleIndex )
{
if ( styleIndex == NIL_STYLE )
{
public CharacterProperties getCharacterStyle(int styleIndex) {
if (styleIndex == NIL_STYLE) {
return NIL_CHP;
}
if ( styleIndex >= _styleDescriptions.length )
{
if (styleIndex >= _styleDescriptions.length) {
return NIL_CHP;
}
return ( _styleDescriptions[styleIndex] != null ? _styleDescriptions[styleIndex]
.getCHP() : NIL_CHP );
return (_styleDescriptions[styleIndex] != null ? _styleDescriptions[styleIndex]
.getCHP() : NIL_CHP);
}
@Deprecated
public ParagraphProperties getParagraphStyle( int styleIndex )
{
if ( styleIndex == NIL_STYLE )
{
public ParagraphProperties getParagraphStyle(int styleIndex) {
if (styleIndex == NIL_STYLE) {
return NIL_PAP;
}
if ( styleIndex >= _styleDescriptions.length )
{
if (styleIndex >= _styleDescriptions.length) {
return NIL_PAP;
}
if ( _styleDescriptions[styleIndex] == null )
{
if (_styleDescriptions[styleIndex] == null) {
return NIL_PAP;
}
if ( _styleDescriptions[styleIndex].getPAP() == null )
{
if (_styleDescriptions[styleIndex].getPAP() == null) {
return NIL_PAP;
}
return _styleDescriptions[styleIndex].getPAP();
}
public byte[] getCHPX( int styleIndex )
{
if ( styleIndex == NIL_STYLE )
{
public byte[] getCHPX(int styleIndex) {
if (styleIndex == NIL_STYLE) {
return NIL_CHPX;
}
if ( styleIndex >= _styleDescriptions.length )
{
if (styleIndex >= _styleDescriptions.length) {
return NIL_CHPX;
}
if ( _styleDescriptions[styleIndex] == null )
{
if (_styleDescriptions[styleIndex] == null) {
return NIL_CHPX;
}
if ( _styleDescriptions[styleIndex].getCHPX() == null )
{
if (_styleDescriptions[styleIndex].getCHPX() == null) {
return NIL_CHPX;
}
return _styleDescriptions[styleIndex].getCHPX();
}
public byte[] getPAPX( int styleIndex )
{
if ( styleIndex == NIL_STYLE )
{
public byte[] getPAPX(int styleIndex) {
if (styleIndex == NIL_STYLE) {
return NIL_PAPX;
}
if ( styleIndex >= _styleDescriptions.length )
{
if (styleIndex >= _styleDescriptions.length) {
return NIL_PAPX;
}
if ( _styleDescriptions[styleIndex] == null )
{
if (_styleDescriptions[styleIndex] == null) {
return NIL_PAPX;
}
if ( _styleDescriptions[styleIndex].getPAPX() == null )
{
if (_styleDescriptions[styleIndex].getPAPX() == null) {
return NIL_PAPX;
}