javadoc: replace invalid self enclosing elements

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1802110 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
PJ Fanning 2017-07-17 08:24:24 +00:00
parent 9b3812d027
commit 810d03f499
272 changed files with 854 additions and 854 deletions

View File

@ -140,15 +140,15 @@ public final class HSSFReadWrite {
* Method main * Method main
* *
* Given 1 argument takes that as the filename, inputs it and dumps the * Given 1 argument takes that as the filename, inputs it and dumps the
* cell values/types out to sys.out.<br/> * cell values/types out to sys.out.<br>
* *
* given 2 arguments where the second argument is the word "write" and the * given 2 arguments where the second argument is the word "write" and the
* first is the filename - writes out a sample (test) spreadsheet * first is the filename - writes out a sample (test) spreadsheet
* see {@link HSSFReadWrite#testCreateSampleSheet(String)}.<br/> * see {@link HSSFReadWrite#testCreateSampleSheet(String)}.<br>
* *
* given 2 arguments where the first is an input filename and the second * given 2 arguments where the first is an input filename and the second
* an output filename (not write), attempts to fully read in the * an output filename (not write), attempts to fully read in the
* spreadsheet and fully write it out.<br/> * spreadsheet and fully write it out.<br>
* *
* given 3 arguments where the first is an input filename and the second an * given 3 arguments where the first is an input filename and the second an
* output filename (not write) and the third is "modify1", attempts to read in the * output filename (not write) and the third is "modify1", attempts to read in the

View File

@ -64,11 +64,11 @@ public class SVSheetTable extends JTable {
/** /**
* This field is the magic number to convert from a Character width to a java * This field is the magic number to convert from a Character width to a java
* pixel width. * pixel width.
* <p/> * <p>
* When the "normal" font size in a workbook changes, this effects all of the * When the "normal" font size in a workbook changes, this effects all of the
* heights and widths. Unfortunately there is no way to retrieve this * heights and widths. Unfortunately there is no way to retrieve this
* information, hence the MAGIC number. * information, hence the MAGIC number.
* <p/> * <p>
* This number may only work for the normal style font size of Arial size 10. * This number may only work for the normal style font size of Arial size 10.
*/ */
private static final int magicCharFactor = 7; private static final int magicCharFactor = 7;

View File

@ -29,7 +29,7 @@ import java.util.List;
* initial paint of the component, and then executed at the appropriate time, * initial paint of the component, and then executed at the appropriate time,
* such as at the end of the containing object's {@link * such as at the end of the containing object's {@link
* JComponent#paintChildren(Graphics)} method. * JComponent#paintChildren(Graphics)} method.
* <p/> * <p>
* It is up to the parent component to invoke the {@link #paint(Graphics2D)} * It is up to the parent component to invoke the {@link #paint(Graphics2D)}
* method of this objet at that appropriate time. * method of this objet at that appropriate time.
* *
@ -153,7 +153,7 @@ public class PendingPaintings {
* is retrieved from the first object found that has a {@link * is retrieved from the first object found that has a {@link
* #PENDING_PAINTINGS} client property, starting with this component and * #PENDING_PAINTINGS} client property, starting with this component and
* looking up its ancestors (parent, parent's parent, etc.) * looking up its ancestors (parent, parent's parent, etc.)
* <p/> * <p>
* This allows any descendant of a component that has a {@link * This allows any descendant of a component that has a {@link
* PendingPaintings} property to add its own pending paintings. * PendingPaintings} property to add its own pending paintings.
* *

View File

@ -46,7 +46,7 @@ import org.xml.sax.XMLReader;
* org.apache.poi.hssf.eventusermodel.examples. * org.apache.poi.hssf.eventusermodel.examples.
* As with the HSSF version, this tries to spot missing * As with the HSSF version, this tries to spot missing
* rows and cells, and output empty entries for them. * rows and cells, and output empty entries for them.
* <p/> * <p>
* Data sheets are read using a SAX parser to keep the * Data sheets are read using a SAX parser to keep the
* memory footprint relatively small, so this should be * memory footprint relatively small, so this should be
* able to read enormous workbooks. The styles table and * able to read enormous workbooks. The styles table and
@ -55,7 +55,7 @@ import org.xml.sax.XMLReader;
* (read-only) class is used for the shared string table * (read-only) class is used for the shared string table
* because the standard POI SharedStringsTable grows very * because the standard POI SharedStringsTable grows very
* quickly with the number of unique strings. * quickly with the number of unique strings.
* <p/> * <p>
* For a more advanced implementation of SAX event parsing * For a more advanced implementation of SAX event parsing
* of XLSX files, see {@link XSSFEventBasedExcelExtractor} * of XLSX files, see {@link XSSFEventBasedExcelExtractor}
* and {@link XSSFSheetXMLHandler}. Note that for many cases, * and {@link XSSFSheetXMLHandler}. Note that for many cases,

View File

@ -144,14 +144,14 @@ public class UpdateEmbeddedDoc {
* Called to test whether or not the embedded workbook was correctly * Called to test whether or not the embedded workbook was correctly
* updated. This method simply recovers the first cell from the first row * updated. This method simply recovers the first cell from the first row
* of the first workbook and tests the value it contains. * of the first workbook and tests the value it contains.
* <p/> * <p>
* Note that execution will not continue up to the assertion as the * Note that execution will not continue up to the assertion as the
* embedded workbook is now corrupted and causes an IllegalArgumentException * embedded workbook is now corrupted and causes an IllegalArgumentException
* with the following message * with the following message
* <p/> * <p>
* <em>java.lang.IllegalArgumentException: Your InputStream was neither an * <em>java.lang.IllegalArgumentException: Your InputStream was neither an
* OLE2 stream, nor an OOXML stream</em> * OLE2 stream, nor an OOXML stream</em>
* <p/> * <p>
* to be thrown when the WorkbookFactory.createWorkbook(InputStream) method * to be thrown when the WorkbookFactory.createWorkbook(InputStream) method
* is executed. * is executed.
* *

View File

@ -37,7 +37,7 @@ import org.apache.tools.ant.ProjectHelper;
/** /**
* A BuildFileTest is a TestCase which executes targets from an Ant buildfile * A BuildFileTest is a TestCase which executes targets from an Ant buildfile
* for testing. * for testing.
* <p/> * <p>
* This class provides a number of utility methods for particular build file * This class provides a number of utility methods for particular build file
* tests which extend this class. * tests which extend this class.
* *
@ -73,7 +73,7 @@ public abstract class BuildFileTest extends TestCase {
/** /**
* Automatically calls the target called "tearDown" * Automatically calls the target called "tearDown"
* from the build file tested if it exits. * from the build file tested if it exits.
* <p/> * <p>
* This allows to use Ant tasks directly in the build file * This allows to use Ant tasks directly in the build file
* to clean up after each test. Note that no "setUp" target * to clean up after each test. Note that no "setUp" target
* is automatically called, since it's trivial to have a * is automatically called, since it's trivial to have a
@ -215,7 +215,7 @@ public abstract class BuildFileTest extends TestCase {
/** /**
* Gets the log the BuildFileTest object. * Gets the log the BuildFileTest object.
* <p/> * <p>
* Only valid if configureProject() has been called. * Only valid if configureProject() has been called.
* *
* @return The log value * @return The log value

View File

@ -75,7 +75,7 @@ public final class InternalSheet {
private PageSettingsBlock _psBlock; private PageSettingsBlock _psBlock;
/** /**
* 'Worksheet Protection Block'<br/> * 'Worksheet Protection Block'<br>
* Aggregate object is always present, but possibly empty. * Aggregate object is always present, but possibly empty.
*/ */
private final WorksheetProtectionBlock _protectionBlock = new WorksheetProtectionBlock(); private final WorksheetProtectionBlock _protectionBlock = new WorksheetProtectionBlock();

View File

@ -40,21 +40,21 @@ import org.apache.poi.ss.formula.ptg.Ref3DPtg;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
/** /**
* Link Table (OOO pdf reference: 4.10.3 ) <p/> * Link Table (OOO pdf reference: 4.10.3 ) <p>
* *
* The main data of all types of references is stored in the Link Table inside the Workbook Globals * The main data of all types of references is stored in the Link Table inside the Workbook Globals
* Substream (4.2.5). The Link Table itself is optional and occurs only if there are any * Substream (4.2.5). The Link Table itself is optional and occurs only if there are any
* references in the document. * references in the document.
* <p/> * <p>
* *
* In BIFF8 the Link Table consists of * In BIFF8 the Link Table consists of
* <ul> * <ul>
* <li>zero or more EXTERNALBOOK Blocks<p/> * <li>zero or more EXTERNALBOOK Blocks<p>
* each consisting of * each consisting of
* <ul> * <ul>
* <li>exactly one EXTERNALBOOK (0x01AE) record</li> * <li>exactly one EXTERNALBOOK (0x01AE) record</li>
* <li>zero or more EXTERNALNAME (0x0023) records</li> * <li>zero or more EXTERNALNAME (0x0023) records</li>
* <li>zero or more CRN Blocks<p/> * <li>zero or more CRN Blocks<p>
* each consisting of * each consisting of
* <ul> * <ul>
* <li>exactly one XCT (0x0059)record</li> * <li>exactly one XCT (0x0059)record</li>

View File

@ -74,7 +74,7 @@ import org.apache.poi.hssf.record.aggregates.WorksheetProtectionBlock;
import org.apache.poi.hssf.record.pivottable.ViewDefinitionRecord; import org.apache.poi.hssf.record.pivottable.ViewDefinitionRecord;
/** /**
* Finds correct insert positions for records in workbook streams<p/> * Finds correct insert positions for records in workbook streams<p>
* *
* See OOO excelfileformat.pdf sec. 4.2.5 'Record Order in a BIFF8 Workbook Stream' * See OOO excelfileformat.pdf sec. 4.2.5 'Record Order in a BIFF8 Workbook Stream'
*/ */

View File

@ -91,12 +91,12 @@ public class DConRefRecord extends StandardRecord
/** /**
* The link's path string. This is the <code>rgb</code> field of a * The link's path string. This is the <code>rgb</code> field of a
* <code>XLUnicodeStringNoCch</code>. Therefore it will contain at least one leading special * <code>XLUnicodeStringNoCch</code>. Therefore it will contain at least one leading special
* character (0x01 or 0x02) and probably other ones.<p/> * character (0x01 or 0x02) and probably other ones.<p>
* @see <A href="http://msdn.microsoft.com/en-us/library/dd923491(office.12).aspx"> * @see <A href="http://msdn.microsoft.com/en-us/library/dd923491(office.12).aspx">
* DConFile [MS-XLS s. 2.5.77]</A> and * DConFile [MS-XLS s. 2.5.77]</A> and
* <A href="http://msdn.microsoft.com/en-us/library/dd950157(office.12).aspx"> * <A href="http://msdn.microsoft.com/en-us/library/dd950157(office.12).aspx">
* VirtualPath [MS-XLS s. 2.5.69]</a> * VirtualPath [MS-XLS s. 2.5.69]</a>
* <p/> * <p>
*/ */
private byte[] path; private byte[] path;
/** /**

View File

@ -47,7 +47,7 @@ public final class ExternalNameRecord extends StandardRecord {
/** /**
* 'rgoper' / 'Last received results of the DDE link' * 'rgoper' / 'Last received results of the DDE link'
* (seems to be only applicable to DDE links)<br/> * (seems to be only applicable to DDE links)<br>
* Logically this is a 2-D array, which has been flattened into 1-D array here. * Logically this is a 2-D array, which has been flattened into 1-D array here.
*/ */
private Object[] _ddeValues; private Object[] _ddeValues;

View File

@ -142,9 +142,9 @@ public final class HyperlinkRecord extends StandardRecord implements Cloneable {
} }
/** /**
* Read a GUID in standard text form e.g.<br/> * Read a GUID in standard text form e.g.<br>
* 13579BDF-0246-8ACE-0123-456789ABCDEF * 13579BDF-0246-8ACE-0123-456789ABCDEF
* <br/> -&gt; <br/> * <br> -&gt; <br>
* 0x13579BDF, 0x0246, 0x8ACE 0x0123456789ABCDEF * 0x13579BDF, 0x0246, 0x8ACE 0x0123456789ABCDEF
*/ */
public static GUID parse(String rep) { public static GUID parse(String rep) {
@ -240,7 +240,7 @@ public final class HyperlinkRecord extends StandardRecord implements Cloneable {
private String _address; private String _address;
/** /**
* Text describing a place in document. In Excel UI, this is appended to the * Text describing a place in document. In Excel UI, this is appended to the
* address, (after a '#' delimiter).<br/> * address, (after a '#' delimiter).<br>
* This field is optional. If present, the {@link #HLINK_PLACE} must be set. * This field is optional. If present, the {@link #HLINK_PLACE} must be set.
*/ */
private String _textMark; private String _textMark;

View File

@ -47,7 +47,7 @@ public final class NoteRecord extends StandardRecord implements Cloneable {
private boolean field_5_hasMultibyte; private boolean field_5_hasMultibyte;
private String field_6_author; private String field_6_author;
/** /**
* Saves padding byte value to reduce delta during round-trip serialization.<br/> * Saves padding byte value to reduce delta during round-trip serialization.<br>
* *
* The documentation is not clear about how padding should work. In any case * The documentation is not clear about how padding should work. In any case
* Excel(2007) does something different. * Excel(2007) does something different.

View File

@ -136,7 +136,7 @@ public final class RecordFactory {
private static final Class<?>[] CONSTRUCTOR_ARGS = { RecordInputStream.class, }; private static final Class<?>[] CONSTRUCTOR_ARGS = { RecordInputStream.class, };
/** /**
* contains the classes for all the records we want to parse.<br/> * contains the classes for all the records we want to parse.<br>
* Note - this most but not *every* subclass of Record. * Note - this most but not *every* subclass of Record.
*/ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")

View File

@ -85,11 +85,11 @@ public final class FormulaRecordAggregate extends RecordAggregate implements Cel
* the {@link Ptg} tokens for the formula. However as it turns out in these * the {@link Ptg} tokens for the formula. However as it turns out in these
* cases, Excel encodes the unshared {@link Ptg} tokens in the right place (inside the {@link * cases, Excel encodes the unshared {@link Ptg} tokens in the right place (inside the {@link
* FormulaRecord}). So the the only thing that needs to be done is to ignore the erroneous * FormulaRecord}). So the the only thing that needs to be done is to ignore the erroneous
* shared formula flag.<br/> * shared formula flag.<br>
* *
* This method may also be used for setting breakpoints to help diagnose issues regarding the * This method may also be used for setting breakpoints to help diagnose issues regarding the
* abnormally-set 'shared formula' flags. * abnormally-set 'shared formula' flags.
* (see TestValueRecordsAggregate.testSpuriousSharedFormulaFlag()).<p/> * (see TestValueRecordsAggregate.testSpuriousSharedFormulaFlag()).<p>
*/ */
private static void handleMissingSharedFormulaRecord(FormulaRecord formula) { private static void handleMissingSharedFormulaRecord(FormulaRecord formula) {
// make sure 'unshared' formula is actually available // make sure 'unshared' formula is actually available

View File

@ -42,7 +42,7 @@ public final class PageSettingsBlock extends RecordAggregate {
private static final ContinueRecord[] EMPTY_CONTINUE_RECORD_ARRAY = { }; private static final ContinueRecord[] EMPTY_CONTINUE_RECORD_ARRAY = { };
private final Record _pls; private final Record _pls;
/** /**
* holds any continue records found after the PLS record.<br/> * holds any continue records found after the PLS record.<br>
* This would not be required if PLS was properly interpreted. * This would not be required if PLS was properly interpreted.
* Currently, PLS is an {@link UnknownRecord} and does not automatically * Currently, PLS is an {@link UnknownRecord} and does not automatically
* include any trailing {@link ContinueRecord}s. * include any trailing {@link ContinueRecord}s.

View File

@ -166,7 +166,7 @@ public final class RowRecordsAggregate extends RecordAggregate {
} }
/** Returns the number of row blocks. /** Returns the number of row blocks.
* <p/>The row blocks are goupings of rows that contain the DBCell record * <p>The row blocks are goupings of rows that contain the DBCell record
* after them * after them
*/ */
public int getRowBlockCount() { public int getRowBlockCount() {

View File

@ -28,7 +28,7 @@ import org.apache.poi.util.RecordFormatException;
/** /**
* Groups the sheet protection records for a worksheet. * Groups the sheet protection records for a worksheet.
* <p/> * <p>
* *
* See OOO excelfileformat.pdf sec 4.18.2 'Sheet Protection in a Workbook * See OOO excelfileformat.pdf sec 4.18.2 'Sheet Protection in a Workbook
* (BIFF5-BIFF8)' * (BIFF5-BIFF8)'
@ -124,14 +124,14 @@ public final class WorksheetProtectionBlock extends RecordAggregate {
* This method reads {@link WorksheetProtectionBlock} records from the supplied RecordStream * This method reads {@link WorksheetProtectionBlock} records from the supplied RecordStream
* until the first non-WorksheetProtectionBlock record is encountered. As each record is read, * until the first non-WorksheetProtectionBlock record is encountered. As each record is read,
* it is incorporated into this WorksheetProtectionBlock. * it is incorporated into this WorksheetProtectionBlock.
* <p/> * <p>
* As per the OOO documentation, the protection block records can be expected to be written * As per the OOO documentation, the protection block records can be expected to be written
* together (with no intervening records), but earlier versions of POI (prior to Jun 2009) * together (with no intervening records), but earlier versions of POI (prior to Jun 2009)
* didn't do this. Workbooks with sheet protection created by those earlier POI versions * didn't do this. Workbooks with sheet protection created by those earlier POI versions
* seemed to be valid (Excel opens them OK). So PO allows continues to support reading of files * seemed to be valid (Excel opens them OK). So PO allows continues to support reading of files
* with non continuous worksheet protection blocks. * with non continuous worksheet protection blocks.
* *
* <p/> * <p>
* <b>Note</b> - when POI writes out this WorksheetProtectionBlock, the records will always be * <b>Note</b> - when POI writes out this WorksheetProtectionBlock, the records will always be
* written in one consolidated block (in the standard ordering) regardless of how scattered the * written in one consolidated block (in the standard ordering) regardless of how scattered the
* records were when they were originally read. * records were when they were originally read.

View File

@ -25,7 +25,7 @@ import org.apache.poi.util.HexDump;
import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.LittleEndianOutput;
/** /**
* The area format record is used to define the colours and patterns for an area.<p/> * The area format record is used to define the colours and patterns for an area.<p>
* *
* @author Glen Stampoultzis (glens at apache.org) * @author Glen Stampoultzis (glens at apache.org)
*/ */

View File

@ -25,7 +25,7 @@ import org.apache.poi.util.HexDump;
import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.LittleEndianOutput;
/** /**
* The area record is used to define a area chart.<p/> * The area record is used to define a area chart.<p>
* *
* @author Glen Stampoultzis (glens at apache.org) * @author Glen Stampoultzis (glens at apache.org)
*/ */

View File

@ -23,7 +23,7 @@ import org.apache.poi.util.HexDump;
import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.LittleEndianOutput;
/** /**
* The axis line format record defines the axis type details.<p/> * The axis line format record defines the axis type details.<p>
* *
* @author Glen Stampoultzis (glens at apache.org) * @author Glen Stampoultzis (glens at apache.org)
*/ */

View File

@ -25,7 +25,7 @@ import org.apache.poi.util.HexDump;
import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.LittleEndianOutput;
/** /**
* The axis options record provides unit information and other various tidbits about the axis.<p/> * The axis options record provides unit information and other various tidbits about the axis.<p>
* *
* @author Andrew C. Oliver(acoliver at apache.org) * @author Andrew C. Oliver(acoliver at apache.org)
*/ */

View File

@ -23,7 +23,7 @@ import org.apache.poi.util.HexDump;
import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.LittleEndianOutput;
/** /**
* The axis size and location<p/> * The axis size and location<p>
* *
* @author Glen Stampoultzis (glens at apache.org) * @author Glen Stampoultzis (glens at apache.org)
*/ */

View File

@ -23,7 +23,7 @@ import org.apache.poi.util.HexDump;
import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.LittleEndianOutput;
/** /**
* The axis record defines the type of an axis.<p/> * The axis record defines the type of an axis.<p>
* *
* @author Glen Stampoultzis (glens at apache.org) * @author Glen Stampoultzis (glens at apache.org)
*/ */

View File

@ -23,7 +23,7 @@ import org.apache.poi.util.HexDump;
import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.LittleEndianOutput;
/** /**
* The number of axes used on a chart.<p/> * The number of axes used on a chart.<p>
* *
* @author Glen Stampoultzis (glens at apache.org) * @author Glen Stampoultzis (glens at apache.org)
*/ */

View File

@ -25,7 +25,7 @@ import org.apache.poi.util.HexDump;
import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.LittleEndianOutput;
/** /**
* The bar record is used to define a bar chart.<p/> * The bar record is used to define a bar chart.<p>
* *
* @author Glen Stampoultzis (glens at apache.org) * @author Glen Stampoultzis (glens at apache.org)
*/ */

View File

@ -23,7 +23,7 @@ import org.apache.poi.util.HexDump;
import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.LittleEndianOutput;
/** /**
* CATLAB - Category Labels (0x0856)<br/> * CATLAB - Category Labels (0x0856)<br>
* *
* @author Patrick Cheng * @author Patrick Cheng
*/ */

View File

@ -25,7 +25,7 @@ import org.apache.poi.util.HexDump;
import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.LittleEndianOutput;
/** /**
* This record refers to a category or series axis and is used to specify label/tickmark frequency.<p/> * This record refers to a category or series axis and is used to specify label/tickmark frequency.<p>
* *
* @author Glen Stampoultzis (glens at apache.org) * @author Glen Stampoultzis (glens at apache.org)
*/ */

View File

@ -23,7 +23,7 @@ import org.apache.poi.util.HexDump;
import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.LittleEndianOutput;
/** /**
* ENDBLOCK - Chart Future Record Type End Block (0x0853)<br/> * ENDBLOCK - Chart Future Record Type End Block (0x0853)<br>
* *
* @author Patrick Cheng * @author Patrick Cheng
*/ */

View File

@ -23,7 +23,7 @@ import org.apache.poi.util.HexDump;
import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.LittleEndianOutput;
/** /**
* The font index record indexes into the font table for the text record.<p/> * The font index record indexes into the font table for the text record.<p>
* *
* @author Glen Stampoultzis (glens at apache.org) * @author Glen Stampoultzis (glens at apache.org)
*/ */

View File

@ -25,7 +25,7 @@ import org.apache.poi.util.HexDump;
import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.LittleEndianOutput;
/** /**
* The series label record defines the type of label associated with the data format record.<p/> * The series label record defines the type of label associated with the data format record.<p>
* *
* @author Glen Stampoultzis (glens at apache.org) * @author Glen Stampoultzis (glens at apache.org)
*/ */

View File

@ -25,7 +25,7 @@ import org.apache.poi.util.HexDump;
import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.LittleEndianOutput;
/** /**
* The Tick record defines how tick marks and label positioning/formatting<p/> * The Tick record defines how tick marks and label positioning/formatting<p>
* *
* @author Andrew C. Oliver(acoliver at apache.org) * @author Andrew C. Oliver(acoliver at apache.org)
*/ */

View File

@ -35,11 +35,11 @@ import org.apache.poi.util.POILogger;
import org.apache.poi.util.StringUtil; import org.apache.poi.util.StringUtil;
/** /**
* Title: Unicode String<p/> * Title: Unicode String<p>
* Description: Unicode String - just standard fields that are in several records. * Description: Unicode String - just standard fields that are in several records.
* It is considered more desirable then repeating it in all of them.<p/> * It is considered more desirable then repeating it in all of them.<p>
* This is often called a XLUnicodeRichExtendedString in MS documentation.<p/> * This is often called a XLUnicodeRichExtendedString in MS documentation.<p>
* REFERENCE: PG 264 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)<p/> * REFERENCE: PG 264 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)<p>
* REFERENCE: PG 951 Excel Binary File Format (.xls) Structure Specification v20091214 * REFERENCE: PG 951 Excel Binary File Format (.xls) Structure Specification v20091214
*/ */
public class UnicodeString implements Comparable<UnicodeString> { public class UnicodeString implements Comparable<UnicodeString> {

View File

@ -65,7 +65,7 @@ final class UnknownLengthRecordOutput implements LittleEndianOutput {
return MAX_DATA_SIZE - _size; return MAX_DATA_SIZE - _size;
} }
/** /**
* Finishes writing the current record and updates 'ushort size' field.<br/> * Finishes writing the current record and updates 'ushort size' field.<br>
* After this method is called, only {@link #getTotalSize()} may be called. * After this method is called, only {@link #getTotalSize()} may be called.
*/ */
public void terminate() { public void terminate() {

View File

@ -24,7 +24,7 @@ import org.apache.poi.util.LittleEndianOutput;
import org.apache.poi.util.StringUtil; import org.apache.poi.util.StringUtil;
/** /**
* SXDI - Data Item (0x00C5)<br/> * SXDI - Data Item (0x00C5)<br>
* *
* @author Patrick Cheng * @author Patrick Cheng
*/ */

View File

@ -25,7 +25,7 @@ import org.apache.poi.util.RecordFormatException;
import org.apache.poi.util.StringUtil; import org.apache.poi.util.StringUtil;
/** /**
* SXVDEX - Extended PivotTable View Fields (0x0100)<br/> * SXVDEX - Extended PivotTable View Fields (0x0100)<br>
* *
* @author Patrick Cheng * @author Patrick Cheng
*/ */

View File

@ -24,7 +24,7 @@ import org.apache.poi.util.LittleEndianOutput;
import org.apache.poi.util.RecordFormatException; import org.apache.poi.util.RecordFormatException;
/** /**
* SXPI - Page Item (0x00B6)<br/> * SXPI - Page Item (0x00B6)<br>
* *
* @author Patrick Cheng * @author Patrick Cheng
*/ */

View File

@ -23,7 +23,7 @@ import org.apache.poi.util.HexDump;
import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.LittleEndianOutput;
/** /**
* SXIDSTM - Stream ID (0x00D5)<br/> * SXIDSTM - Stream ID (0x00D5)<br>
* *
* @author Patrick Cheng * @author Patrick Cheng
*/ */

View File

@ -24,7 +24,7 @@ import org.apache.poi.util.LittleEndianOutput;
import org.apache.poi.util.StringUtil; import org.apache.poi.util.StringUtil;
/** /**
* SXVIEW - View Definition (0x00B0)<br/> * SXVIEW - View Definition (0x00B0)<br>
*/ */
public final class ViewDefinitionRecord extends StandardRecord { public final class ViewDefinitionRecord extends StandardRecord {
public static final short sid = 0x00B0; public static final short sid = 0x00B0;

View File

@ -24,7 +24,7 @@ import org.apache.poi.util.LittleEndianOutput;
import org.apache.poi.util.StringUtil; import org.apache.poi.util.StringUtil;
/** /**
* SXVD - View Fields (0x00B1)<br/> * SXVD - View Fields (0x00B1)<br>
* *
* @author Patrick Cheng * @author Patrick Cheng
*/ */

View File

@ -23,7 +23,7 @@ import org.apache.poi.util.HexDump;
import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.LittleEndianOutput;
/** /**
* SXVS - View Source (0x00E3)<br/> * SXVS - View Source (0x00E3)<br>
* *
* @author Patrick Cheng * @author Patrick Cheng
*/ */

View File

@ -806,7 +806,7 @@ public class HSSFCell implements Cell {
/** /**
* Chooses a new boolean value for the cell when its type is changing.<p/> * Chooses a new boolean value for the cell when its type is changing.<p>
* *
* Usually the caller is calling setCellType() with the intention of calling * Usually the caller is calling setCellType() with the intention of calling
* setCellValue(boolean) straight afterwards. This method only exists to give * setCellValue(boolean) straight afterwards. This method only exists to give

View File

@ -28,10 +28,10 @@ import org.apache.poi.ss.usermodel.BuiltinFormats;
import org.apache.poi.ss.usermodel.DataFormat; import org.apache.poi.ss.usermodel.DataFormat;
/** /**
* Identifies both built-in and user defined formats within a workbook.<p/> * Identifies both built-in and user defined formats within a workbook.<p>
* See {@link BuiltinFormats} for a list of supported built-in formats.<p/> * See {@link BuiltinFormats} for a list of supported built-in formats.<p>
* *
* <b>International Formats</b><br/> * <b>International Formats</b><br>
* Since version 2003 Excel has supported international formats. These are denoted * Since version 2003 Excel has supported international formats. These are denoted
* with a prefix "[$-xxx]" (where xxx is a 1-7 digit hexadecimal number). * with a prefix "[$-xxx]" (where xxx is a 1-7 digit hexadecimal number).
* See the Microsoft article * See the Microsoft article

View File

@ -36,7 +36,7 @@ import org.apache.poi.ss.usermodel.RichTextString;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
/** /**
* Evaluates formula cells.<p/> * Evaluates formula cells.<p>
* *
* For performance reasons, this class keeps a cache of all previously calculated intermediate * For performance reasons, this class keeps a cache of all previously calculated intermediate
* cell values. Be sure to call {@link #clearAllCachedResultValues()} if any workbook cells are changed between * cell values. Be sure to call {@link #clearAllCachedResultValues()} if any workbook cells are changed between

View File

@ -30,7 +30,7 @@ import org.apache.poi.util.HexDump;
/** /**
* Represents binary object (i.e. OLE) data stored in the file. Eg. A GIF, JPEG etc... * Represents binary object (i.e. OLE) data stored in the file. Eg. A GIF, JPEG etc...
* <p/> * <p>
* Right now, 13, july, 2012 can not be created from scratch * Right now, 13, july, 2012 can not be created from scratch
*/ */
public final class HSSFObjectData extends HSSFPicture implements ObjectData { public final class HSSFObjectData extends HSSFPicture implements ObjectData {

View File

@ -126,9 +126,9 @@ public class HSSFPicture extends HSSFSimpleShape implements Picture {
* If the default font is changed the resized image can be streched vertically or horizontally. * If the default font is changed the resized image can be streched vertically or horizontally.
* </p> * </p>
* <p> * <p>
* <code>resize(1.0,1.0)</code> keeps the original size,<br/> * <code>resize(1.0,1.0)</code> keeps the original size,<br>
* <code>resize(0.5,0.5)</code> resize to 50% of the original,<br/> * <code>resize(0.5,0.5)</code> resize to 50% of the original,<br>
* <code>resize(2.0,2.0)</code> resizes to 200% of the original.<br/> * <code>resize(2.0,2.0)</code> resizes to 200% of the original.<br>
* <code>resize({@link Double#MAX_VALUE},{@link Double#MAX_VALUE})</code> resizes to the dimension of the embedded image. * <code>resize({@link Double#MAX_VALUE},{@link Double#MAX_VALUE})</code> resizes to the dimension of the embedded image.
* </p> * </p>
* *

View File

@ -521,7 +521,7 @@ public final class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet {
* <code> * <code>
* Truncate([numChars*7+5]/7*256)/256 = 8; * Truncate([numChars*7+5]/7*256)/256 = 8;
* </code> * </code>
* <p/> * <p>
* which gives <code>7.29</code>. * which gives <code>7.29</code>.
* *
* @param columnIndex - the column to set (0-based) * @param columnIndex - the column to set (0-based)

View File

@ -44,7 +44,7 @@ public final class HSSFSheetConditionalFormatting implements SheetConditionalFor
/** /**
* A factory method allowing to create a conditional formatting rule * A factory method allowing to create a conditional formatting rule
* with a cell comparison operator<p/> * with a cell comparison operator<p>
* TODO - formulas containing cell references are currently not parsed properly * TODO - formulas containing cell references are currently not parsed properly
* *
* @param comparisonOperation - a constant value from * @param comparisonOperation - a constant value from
@ -83,7 +83,7 @@ public final class HSSFSheetConditionalFormatting implements SheetConditionalFor
/** /**
* A factory method allowing to create a conditional formatting rule with a formula.<br> * A factory method allowing to create a conditional formatting rule with a formula.<br>
* *
* The formatting rules are applied by Excel when the value of the formula not equal to 0.<p/> * The formatting rules are applied by Excel when the value of the formula not equal to 0.<p>
* TODO - formulas containing cell references are currently not parsed properly * TODO - formulas containing cell references are currently not parsed properly
* @param formula - formula for the valued, compared with the cell * @param formula - formula for the valued, compared with the cell
*/ */

View File

@ -1061,11 +1061,11 @@ public final class HSSFWorkbook extends POIDocument implements org.apache.poi.ss
} }
/** /**
* Removes sheet at the given index.<p/> * Removes sheet at the given index.<p>
* *
* Care must be taken if the removed sheet is the currently active or only selected sheet in * Care must be taken if the removed sheet is the currently active or only selected sheet in
* the workbook. There are a few situations when Excel must have a selection and/or active * the workbook. There are a few situations when Excel must have a selection and/or active
* sheet. (For example when printing - see Bug 40414).<br/> * sheet. (For example when printing - see Bug 40414).<br>
* *
* This method makes sure that if the removed sheet was active, another sheet will become * This method makes sure that if the removed sheet was active, another sheet will become
* active in its place. Furthermore, if the removed sheet was the only selected sheet, another * active in its place. Furthermore, if the removed sheet was the only selected sheet, another

View File

@ -26,7 +26,7 @@ import org.apache.poi.ss.SpreadsheetVersion;
public final class AreaReference extends org.apache.poi.ss.util.AreaReference { public final class AreaReference extends org.apache.poi.ss.util.AreaReference {
/** /**
* Create an area ref from a string representation. Sheet names containing special characters should be * Create an area ref from a string representation. Sheet names containing special characters should be
* delimited and escaped as per normal syntax rules for formulas.<br/> * delimited and escaped as per normal syntax rules for formulas.<br>
* The area reference must be contiguous (i.e. represent a single rectangle, not a union of rectangles) * The area reference must be contiguous (i.e. represent a single rectangle, not a union of rectangles)
*/ */
public AreaReference(String reference) { public AreaReference(String reference) {

View File

@ -22,7 +22,7 @@ import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.LittleEndianOutput;
/** /**
* See OOO documentation: excelfileformat.pdf sec 2.5.14 - 'Cell Range Address'<p/> * See OOO documentation: excelfileformat.pdf sec 2.5.14 - 'Cell Range Address'<p>
* *
* Implements a CellRangeAddress with 8-but column fields. * Implements a CellRangeAddress with 8-but column fields.
*/ */

View File

@ -45,7 +45,7 @@ import org.apache.poi.util.StringUtil;
@Internal @Internal
public class CryptoFunctions { public class CryptoFunctions {
/** /**
* <p><cite>2.3.4.7 ECMA-376 Document Encryption Key Generation (Standard Encryption)<br/> * <p><cite>2.3.4.7 ECMA-376 Document Encryption Key Generation (Standard Encryption)<br>
* 2.3.4.11 Encryption Key Generation (Agile Encryption)</cite></p> * 2.3.4.11 Encryption Key Generation (Agile Encryption)</cite></p>
* *
* <p>The encryption key for ECMA-376 document encryption [ECMA-376] using agile * <p>The encryption key for ECMA-376 document encryption [ECMA-376] using agile
@ -133,9 +133,9 @@ public class CryptoFunctions {
* generated by using the following method, where H() is a hash function that MUST be the same as * generated by using the following method, where H() is a hash function that MUST be the same as
* specified in section 2.3.4.11 and a plus sign (+) represents concatenation:</p> * specified in section 2.3.4.11 and a plus sign (+) represents concatenation:</p>
* <ul> * <ul>
* <li>If a blockKey is provided, let IV be a hash of the KeySalt and the following value:<br/> * <li>If a blockKey is provided, let IV be a hash of the KeySalt and the following value:<br>
* {@code blockKey: IV = H(KeySalt + blockKey)}</li> * {@code blockKey: IV = H(KeySalt + blockKey)}</li>
* <li>If a blockKey is not provided, let IV be equal to the following value:<br/> * <li>If a blockKey is not provided, let IV be equal to the following value:<br>
* {@code KeySalt:IV = KeySalt}</li> * {@code KeySalt:IV = KeySalt}</li>
* <li>If the number of bytes in the value of IV is less than the the value of the blockSize attribute * <li>If the number of bytes in the value of IV is less than the the value of the blockSize attribute
* corresponding to the cipherAlgorithm attribute, pad the array of bytes by appending 0x36 until * corresponding to the cipherAlgorithm attribute, pad the array of bytes by appending 0x36 until

View File

@ -255,7 +255,7 @@ public class NPOIFSFileSystem extends BlockStore
/** /**
* Create a POIFSFileSystem from an <tt>InputStream</tt>. Normally the stream is read until * Create a POIFSFileSystem from an <tt>InputStream</tt>. Normally the stream is read until
* EOF. The stream is always closed.<p/> * EOF. The stream is always closed.<p>
* *
* Some streams are usable after reaching EOF (typically those that return <code>true</code> * Some streams are usable after reaching EOF (typically those that return <code>true</code>
* for <tt>markSupported()</tt>). In the unlikely case that the caller has such a stream * for <tt>markSupported()</tt>). In the unlikely case that the caller has such a stream

View File

@ -96,7 +96,7 @@ public class OPOIFSFileSystem
/** /**
* Create a OPOIFSFileSystem from an <tt>InputStream</tt>. Normally the stream is read until * Create a OPOIFSFileSystem from an <tt>InputStream</tt>. Normally the stream is read until
* EOF. The stream is always closed.<p/> * EOF. The stream is always closed.<p>
* *
* Some streams are usable after reaching EOF (typically those that return <code>true</code> * Some streams are usable after reaching EOF (typically those that return <code>true</code>
* for <tt>markSupported()</tt>). In the unlikely case that the caller has such a stream * for <tt>markSupported()</tt>). In the unlikely case that the caller has such a stream

View File

@ -52,7 +52,7 @@ public class POIFSFileSystem
/** /**
* Create a POIFSFileSystem from an <tt>InputStream</tt>. Normally the stream is read until * Create a POIFSFileSystem from an <tt>InputStream</tt>. Normally the stream is read until
* EOF. The stream is always closed.<p/> * EOF. The stream is always closed.<p>
* *
* Some streams are usable after reaching EOF (typically those that return <code>true</code> * Some streams are usable after reaching EOF (typically those that return <code>true</code>
* for <tt>markSupported()</tt>). In the unlikely case that the caller has such a stream * for <tt>markSupported()</tt>). In the unlikely case that the caller has such a stream

View File

@ -45,7 +45,7 @@ public final class BlockAllocationTableReader {
/** /**
* Maximum number size (in blocks) of the allocation table as supported by * Maximum number size (in blocks) of the allocation table as supported by
* POI.<br/> * POI.<br>
* *
* This constant has been chosen to help POI identify corrupted data in the * This constant has been chosen to help POI identify corrupted data in the
* header block (rather than crash immediately with {@link OutOfMemoryError} * header block (rather than crash immediately with {@link OutOfMemoryError}

View File

@ -20,13 +20,13 @@ package org.apache.poi.poifs.storage;
/** /**
* Wraps a <tt>byte</tt> array and provides simple data input access. * Wraps a <tt>byte</tt> array and provides simple data input access.
* Internally, this class maintains a buffer read index, so that for the most part, primitive * Internally, this class maintains a buffer read index, so that for the most part, primitive
* data can be read in a data-input-stream-like manner.<p/> * data can be read in a data-input-stream-like manner.<p>
* *
* Note - the calling class should call the {@link #available()} method to detect end-of-buffer * Note - the calling class should call the {@link #available()} method to detect end-of-buffer
* and move to the next data block when the current is exhausted. * and move to the next data block when the current is exhausted.
* For optimisation reasons, no error handling is performed in this class. Thus, mistakes in * For optimisation reasons, no error handling is performed in this class. Thus, mistakes in
* calling code ran may raise ugly exceptions here, like {@link ArrayIndexOutOfBoundsException}, * calling code ran may raise ugly exceptions here, like {@link ArrayIndexOutOfBoundsException},
* etc .<p/> * etc .<p>
* *
* The multi-byte primitive input methods ({@link #readUShortLE()}, {@link #readIntLE()} and * The multi-byte primitive input methods ({@link #readUShortLE()}, {@link #readIntLE()} and
* {@link #readLongLE()}) have corresponding 'spanning read' methods which (when required) perform * {@link #readLongLE()}) have corresponding 'spanning read' methods which (when required) perform

View File

@ -222,7 +222,7 @@ public class CellDateFormatter extends CellFormatter {
/** /**
* {@inheritDoc} * {@inheritDoc}
* <p/> * <p>
* For a date, this is <tt>"mm/d/y"</tt>. * For a date, this is <tt>"mm/d/y"</tt>.
*/ */
public void simpleValue(StringBuffer toAppendTo, Object value) { public void simpleValue(StringBuffer toAppendTo, Object value) {

View File

@ -211,7 +211,7 @@ public class CellElapsedFormatter extends CellFormatter {
/** /**
* {@inheritDoc} * {@inheritDoc}
* <p/> * <p>
* For a date, this is <tt>"mm/d/y"</tt>. * For a date, this is <tt>"mm/d/y"</tt>.
*/ */
public void simpleValue(StringBuffer toAppendTo, Object value) { public void simpleValue(StringBuffer toAppendTo, Object value) {

View File

@ -43,7 +43,7 @@ import org.apache.poi.util.Removal;
* Format a value according to the standard Excel behavior. This "standard" is * Format a value according to the standard Excel behavior. This "standard" is
* not explicitly documented by Microsoft, so the behavior is determined by * not explicitly documented by Microsoft, so the behavior is determined by
* experimentation; see the tests. * experimentation; see the tests.
* <p/> * <p>
* An Excel format has up to four parts, separated by semicolons. Each part * An Excel format has up to four parts, separated by semicolons. Each part
* specifies what to do with particular kinds of values, depending on the number * specifies what to do with particular kinds of values, depending on the number
* of parts given: * of parts given:
@ -75,12 +75,12 @@ import org.apache.poi.util.Removal;
* fourth part (example: text in the cell's usual color, with the text value * fourth part (example: text in the cell's usual color, with the text value
* surround by brackets).</dd> * surround by brackets).</dd>
* </dl> * </dl>
* <p/> * <p>
* A given format part may specify a given Locale, by including something * A given format part may specify a given Locale, by including something
* like <tt>[$$-409]</tt> or <tt>[$&pound;-809]</tt> or <tt>[$-40C]</tt>. These * like <tt>[$$-409]</tt> or <tt>[$&pound;-809]</tt> or <tt>[$-40C]</tt>. These
* are (currently) largely ignored. You can use {@link DateFormatConverter} * are (currently) largely ignored. You can use {@link DateFormatConverter}
* to look these up into Java Locales if desired. * to look these up into Java Locales if desired.
* <p/> * <p>
* In addition to these, there is a general format that is used when no format * In addition to these, there is a general format that is used when no format
* is specified. This formatting is presented by the {@link #GENERAL_FORMAT} * is specified. This formatting is presented by the {@link #GENERAL_FORMAT}
* object. * object.

View File

@ -35,12 +35,12 @@ import static org.apache.poi.ss.format.CellFormatter.quote;
* Objects of this class represent a single part of a cell format expression. * Objects of this class represent a single part of a cell format expression.
* Each cell can have up to four of these for positive, zero, negative, and text * Each cell can have up to four of these for positive, zero, negative, and text
* values. * values.
* <p/> * <p>
* Each format part can contain a color, a condition, and will always contain a * Each format part can contain a color, a condition, and will always contain a
* format specification. For example <tt>"[Red][>=10]#"</tt> has a color * format specification. For example <tt>"[Red][>=10]#"</tt> has a color
* (<tt>[Red]</tt>), a condition (<tt>>=10</tt>) and a format specification * (<tt>[Red]</tt>), a condition (<tt>>=10</tt>) and a format specification
* (<tt>#</tt>). * (<tt>#</tt>).
* <p/> * <p>
* This class also contains patterns for matching the subparts of format * This class also contains patterns for matching the subparts of format
* specification. These are used internally, but are made public in case other * specification. These are used internally, but are made public in case other
* code has use for them. * code has use for them.

View File

@ -583,7 +583,7 @@ public class CellNumberFormatter extends CellFormatter {
* the result is the original format, and that starting from that situation, * the result is the original format, and that starting from that situation,
* the indexes of the original special characters can be used to place the new * the indexes of the original special characters can be used to place the new
* characters. As just described, this is not true for the exponent's sign. * characters. As just described, this is not true for the exponent's sign.
* <p/> * <p>
* So here is how we handle it: * So here is how we handle it:
* *
* (1) When parsing the format, remove the sign from after the 'e' and put it * (1) When parsing the format, remove the sign from after the 'e' and put it
@ -847,7 +847,7 @@ public class CellNumberFormatter extends CellFormatter {
/** /**
* {@inheritDoc} * {@inheritDoc}
* <p/> * <p>
* For a number, this is <tt>"#"</tt> for integer values, and <tt>"#.#"</tt> * For a number, this is <tt>"#"</tt> for integer values, and <tt>"#.#"</tt>
* for floating-point values. * for floating-point values.
*/ */

View File

@ -74,7 +74,7 @@ public class CellTextFormatter extends CellFormatter {
/** /**
* {@inheritDoc} * {@inheritDoc}
* <p/> * <p>
* For text, this is just printing the text. * For text, this is just printing the text.
*/ */
public void simpleValue(StringBuffer toAppendTo, Object value) { public void simpleValue(StringBuffer toAppendTo, Object value) {

View File

@ -29,7 +29,7 @@ import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
/** /**
* Common functionality across file formats for evaluating formula cells.<p/> * Common functionality across file formats for evaluating formula cells.<p>
*/ */
public abstract class BaseFormulaEvaluator implements FormulaEvaluator, WorkbookEvaluatorProvider { public abstract class BaseFormulaEvaluator implements FormulaEvaluator, WorkbookEvaluatorProvider {
protected final WorkbookEvaluator _bookEvaluator; protected final WorkbookEvaluator _bookEvaluator;

View File

@ -26,7 +26,7 @@ import org.apache.poi.ss.formula.eval.ValueEval;
import org.apache.poi.ss.formula.IEvaluationListener.ICacheEntry; import org.apache.poi.ss.formula.IEvaluationListener.ICacheEntry;
/** /**
* Stores the parameters that identify the evaluation of one cell.<br/> * Stores the parameters that identify the evaluation of one cell.<br>
*/ */
abstract class CellCacheEntry implements ICacheEntry { abstract class CellCacheEntry implements ICacheEntry {
public static final CellCacheEntry[] EMPTY_ARRAY = { }; public static final CellCacheEntry[] EMPTY_ARRAY = { };

View File

@ -23,7 +23,7 @@ import java.util.Set;
import org.apache.poi.ss.formula.eval.ValueEval; import org.apache.poi.ss.formula.eval.ValueEval;
/** /**
* Stores details about the current evaluation of a cell.<br/> * Stores details about the current evaluation of a cell.<br>
*/ */
final class CellEvaluationFrame { final class CellEvaluationFrame {

View File

@ -36,12 +36,12 @@ import org.apache.poi.ss.util.CellReference;
import org.apache.poi.ss.util.SheetUtil; import org.apache.poi.ss.util.SheetUtil;
/** /**
* Evaluates Conditional Formatting constraints.<p/> * Evaluates Conditional Formatting constraints.<p>
* *
* For performance reasons, this class keeps a cache of all previously evaluated rules and cells. * For performance reasons, this class keeps a cache of all previously evaluated rules and cells.
* Be sure to call {@link #clearAllCachedFormats()} if any conditional formats are modified, added, or deleted, * Be sure to call {@link #clearAllCachedFormats()} if any conditional formats are modified, added, or deleted,
* and {@link #clearAllCachedValues()} whenever cell values change. * and {@link #clearAllCachedValues()} whenever cell values change.
* <p/> * <p>
* *
*/ */
public class ConditionalFormattingEvaluator { public class ConditionalFormattingEvaluator {
@ -53,9 +53,9 @@ public class ConditionalFormattingEvaluator {
* All the underlying structures, for both HSSF and XSSF, repeatedly go to the raw bytes/XML for the * All the underlying structures, for both HSSF and XSSF, repeatedly go to the raw bytes/XML for the
* different pieces used in the ConditionalFormatting* structures. That's highly inefficient, * different pieces used in the ConditionalFormatting* structures. That's highly inefficient,
* and can cause significant lag when checking formats for large workbooks. * and can cause significant lag when checking formats for large workbooks.
* <p/> * <p>
* Instead we need a cached version that is discarded when definitions change. * Instead we need a cached version that is discarded when definitions change.
* <p/> * <p>
* Sheets don't implement equals, and since its an interface, * Sheets don't implement equals, and since its an interface,
* there's no guarantee instances won't be recreated on the fly by some implementation. * there's no guarantee instances won't be recreated on the fly by some implementation.
* So we use sheet name. * So we use sheet name.
@ -65,9 +65,9 @@ public class ConditionalFormattingEvaluator {
/** /**
* Evaluating rules for cells in their region(s) is expensive, so we want to cache them, * Evaluating rules for cells in their region(s) is expensive, so we want to cache them,
* and empty/reevaluate the cache when values change. * and empty/reevaluate the cache when values change.
* <p/> * <p>
* Rule lists are in priority order, as evaluated by Excel (smallest priority # for XSSF, definition order for HSSF) * Rule lists are in priority order, as evaluated by Excel (smallest priority # for XSSF, definition order for HSSF)
* <p/> * <p>
* CellReference implements equals(). * CellReference implements equals().
*/ */
private final Map<CellReference, List<EvaluationConditionalFormatRule>> values = new HashMap<CellReference, List<EvaluationConditionalFormatRule>>(); private final Map<CellReference, List<EvaluationConditionalFormatRule>> values = new HashMap<CellReference, List<EvaluationConditionalFormatRule>>();
@ -92,7 +92,7 @@ public class ConditionalFormattingEvaluator {
/** /**
* Call this whenever cell values change in the workbook, so condional formats are re-evaluated * Call this whenever cell values change in the workbook, so condional formats are re-evaluated
* for all cells. * for all cells.
* <p/> * <p>
* TODO: eventually this should work like {@link EvaluationCache#notifyUpdateCell(int, int, EvaluationCell)} * TODO: eventually this should work like {@link EvaluationCache#notifyUpdateCell(int, int, EvaluationCell)}
* and only clear values that need recalculation based on the formula dependency tree. * and only clear values that need recalculation based on the formula dependency tree.
*/ */
@ -136,10 +136,10 @@ public class ConditionalFormattingEvaluator {
* This checks all applicable {@link ConditionalFormattingRule}s for the cell's sheet, * This checks all applicable {@link ConditionalFormattingRule}s for the cell's sheet,
* in defined "priority" order, returning the matches if any. This is a property currently * in defined "priority" order, returning the matches if any. This is a property currently
* not exposed from <code>CTCfRule</code> in <code>XSSFConditionalFormattingRule</code>. * not exposed from <code>CTCfRule</code> in <code>XSSFConditionalFormattingRule</code>.
* <p/> * <p>
* Most cells will have zero or one applied rule, but it is possible to define multiple rules * Most cells will have zero or one applied rule, but it is possible to define multiple rules
* that apply at the same time to the same cell, thus the List result. * that apply at the same time to the same cell, thus the List result.
* <p/> * <p>
* Note that to properly apply conditional rules, care must be taken to offset the base * Note that to properly apply conditional rules, care must be taken to offset the base
* formula by the relative position of the current cell, or the wrong value is checked. * formula by the relative position of the current cell, or the wrong value is checked.
* This is handled by {@link WorkbookEvaluator#evaluate(String, CellReference, CellRangeAddressBase)}. * This is handled by {@link WorkbookEvaluator#evaluate(String, CellReference, CellRangeAddressBase)}.
@ -171,10 +171,10 @@ public class ConditionalFormattingEvaluator {
* This checks all applicable {@link ConditionalFormattingRule}s for the cell's sheet, * This checks all applicable {@link ConditionalFormattingRule}s for the cell's sheet,
* in defined "priority" order, returning the matches if any. This is a property currently * in defined "priority" order, returning the matches if any. This is a property currently
* not exposed from <code>CTCfRule</code> in <code>XSSFConditionalFormattingRule</code>. * not exposed from <code>CTCfRule</code> in <code>XSSFConditionalFormattingRule</code>.
* <p/> * <p>
* Most cells will have zero or one applied rule, but it is possible to define multiple rules * Most cells will have zero or one applied rule, but it is possible to define multiple rules
* that apply at the same time to the same cell, thus the List result. * that apply at the same time to the same cell, thus the List result.
* <p/> * <p>
* Note that to properly apply conditional rules, care must be taken to offset the base * Note that to properly apply conditional rules, care must be taken to offset the base
* formula by the relative position of the current cell, or the wrong value is checked. * formula by the relative position of the current cell, or the wrong value is checked.
* This is handled by {@link WorkbookEvaluator#evaluate(String, CellReference, CellRangeAddressBase)}. * This is handled by {@link WorkbookEvaluator#evaluate(String, CellReference, CellRangeAddressBase)}.
@ -249,9 +249,9 @@ public class ConditionalFormattingEvaluator {
/** /**
* Conditional formatting rules can apply only to cells in the sheet to which they are attached. * Conditional formatting rules can apply only to cells in the sheet to which they are attached.
* The POI data model does not have a back-reference to the owning sheet, so it must be passed in separately. * The POI data model does not have a back-reference to the owning sheet, so it must be passed in separately.
* <p/> * <p>
* We could overload this with convenience methods taking a sheet name and sheet index as well. * We could overload this with convenience methods taking a sheet name and sheet index as well.
* <p/> * <p>
* @param sheet containing the rule * @param sheet containing the rule
* @param conditionalFormattingIndex of the {@link ConditionalFormatting} instance in the sheet's array * @param conditionalFormattingIndex of the {@link ConditionalFormatting} instance in the sheet's array
* @param ruleIndex of the {@link ConditionalFormattingRule} instance within the {@link ConditionalFormatting} * @param ruleIndex of the {@link ConditionalFormattingRule} instance within the {@link ConditionalFormatting}

View File

@ -44,12 +44,12 @@ import org.apache.poi.ss.util.CellReference;
import org.apache.poi.ss.util.SheetUtil; import org.apache.poi.ss.util.SheetUtil;
/** /**
* Evaluates Data Validation constraints.<p/> * Evaluates Data Validation constraints.<p>
* *
* For performance reasons, this class keeps a cache of all previously retrieved {@link DataValidation} instances. * For performance reasons, this class keeps a cache of all previously retrieved {@link DataValidation} instances.
* Be sure to call {@link #clearAllCachedValues()} if any workbook validation definitions are * Be sure to call {@link #clearAllCachedValues()} if any workbook validation definitions are
* added, modified, or deleted. * added, modified, or deleted.
* <p/> * <p>
* Changing cell values should be fine, as long as the corresponding {@link WorkbookEvaluator#clearAllCachedResultValues()} * Changing cell values should be fine, as long as the corresponding {@link WorkbookEvaluator#clearAllCachedResultValues()}
* is called as well. * is called as well.
* *
@ -58,7 +58,7 @@ public class DataValidationEvaluator {
/** /**
* Expensive to compute, so cache them as they are retrieved. * Expensive to compute, so cache them as they are retrieved.
* <p/> * <p>
* Sheets don't implement equals, and since its an interface, * Sheets don't implement equals, and since its an interface,
* there's no guarantee instances won't be recreated on the fly by some implementation. * there's no guarantee instances won't be recreated on the fly by some implementation.
* So we use sheet name. * So we use sheet name.
@ -157,10 +157,10 @@ public class DataValidationEvaluator {
* If {@link #getValidationForCell(CellReference)} returns an instance, and the * If {@link #getValidationForCell(CellReference)} returns an instance, and the
* {@link ValidationType} is {@link ValidationType#LIST}, return the valid * {@link ValidationType} is {@link ValidationType#LIST}, return the valid
* values, whether they are from a static list or cell range. * values, whether they are from a static list or cell range.
* <p/> * <p>
* For all other validation types, or no validation at all, this method * For all other validation types, or no validation at all, this method
* returns null. * returns null.
* <p/> * <p>
* This method could throw an exception if the validation type is not LIST, * This method could throw an exception if the validation type is not LIST,
* but since this method is mostly useful in UI contexts, null seems the * but since this method is mostly useful in UI contexts, null seems the
* easier path. * easier path.
@ -214,7 +214,7 @@ public class DataValidationEvaluator {
* Use the validation returned by {@link #getValidationForCell(CellReference)} if you * Use the validation returned by {@link #getValidationForCell(CellReference)} if you
* want the error display details. This is the validation checked by this * want the error display details. This is the validation checked by this
* method, which attempts to replicate Excel's data validation rules. * method, which attempts to replicate Excel's data validation rules.
* <p/> * <p>
* Note that to properly apply some validations, care must be taken to * Note that to properly apply some validations, care must be taken to
* offset the base validation formula by the relative position of the * offset the base validation formula by the relative position of the
* current cell, or the wrong value is checked. * current cell, or the wrong value is checked.

View File

@ -21,7 +21,7 @@ import org.apache.poi.ss.usermodel.CellType;
/** /**
* Abstracts a cell for the purpose of formula evaluation. This interface represents both formula * Abstracts a cell for the purpose of formula evaluation. This interface represents both formula
* and non-formula cells.<br/> * and non-formula cells.<br>
* *
* For POI internal use only * For POI internal use only
* *

View File

@ -51,12 +51,12 @@ import org.apache.poi.ss.util.CellRangeAddress;
* {@link ConditionalFormattingEvaluator}. This references a rule, its owning * {@link ConditionalFormattingEvaluator}. This references a rule, its owning
* {@link ConditionalFormatting}, its priority order (lower index = higher priority in Excel), * {@link ConditionalFormatting}, its priority order (lower index = higher priority in Excel),
* and the information needed to evaluate the rule for a given cell. * and the information needed to evaluate the rule for a given cell.
* <p/> * <p>
* Having this all combined and cached avoids repeated access calls to the * Having this all combined and cached avoids repeated access calls to the
* underlying structural objects, XSSF CT* objects and HSSF raw byte structures. * underlying structural objects, XSSF CT* objects and HSSF raw byte structures.
* Those objects can be referenced from here. This object will be out of sync if * Those objects can be referenced from here. This object will be out of sync if
* anything modifies the referenced structures' evaluation properties. * anything modifies the referenced structures' evaluation properties.
* <p/> * <p>
* The assumption is that consuming applications will read the display properties once and * The assumption is that consuming applications will read the display properties once and
* create whatever style objects they need, caching those at the application level. * create whatever style objects they need, caching those at the application level.
* Thus this class only caches values needed for evaluation, not display. * Thus this class only caches values needed for evaluation, not display.
@ -225,7 +225,7 @@ public class EvaluationConditionalFormatRule implements Comparable<EvaluationCon
/** /**
* Per Excel Help, XSSF rule priority is sheet-wide, not just within the owning ConditionalFormatting object. * Per Excel Help, XSSF rule priority is sheet-wide, not just within the owning ConditionalFormatting object.
* This can be seen by creating 4 rules applying to two different ranges and examining the XML. * This can be seen by creating 4 rules applying to two different ranges and examining the XML.
* <p/> * <p>
* HSSF priority is based on definition/persistence order. * HSSF priority is based on definition/persistence order.
* *
* @param o * @param o

View File

@ -20,7 +20,7 @@ package org.apache.poi.ss.formula;
import org.apache.poi.ss.formula.ptg.NamePtg; import org.apache.poi.ss.formula.ptg.NamePtg;
import org.apache.poi.ss.formula.ptg.Ptg; import org.apache.poi.ss.formula.ptg.Ptg;
/** /**
* Abstracts a name record for formula evaluation.<br/> * Abstracts a name record for formula evaluation.<br>
* *
* For POI internal use only * For POI internal use only
* *

View File

@ -20,7 +20,7 @@ package org.apache.poi.ss.formula;
import org.apache.poi.util.Internal; import org.apache.poi.util.Internal;
/** /**
* Abstracts a sheet for the purpose of formula evaluation.<br/> * Abstracts a sheet for the purpose of formula evaluation.<br>
* *
* For POI internal use only * For POI internal use only
* *

View File

@ -49,16 +49,16 @@ final class EvaluationTracker {
/** /**
* Notifies this evaluation tracker that evaluation of the specified cell is * Notifies this evaluation tracker that evaluation of the specified cell is
* about to start.<br/> * about to start.<br>
* *
* In the case of a <code>true</code> return code, the caller should * In the case of a <code>true</code> return code, the caller should
* continue evaluation of the specified cell, and also be sure to call * continue evaluation of the specified cell, and also be sure to call
* <tt>endEvaluate()</tt> when complete.<br/> * <tt>endEvaluate()</tt> when complete.<br>
* *
* In the case of a <code>null</code> return code, the caller should * In the case of a <code>null</code> return code, the caller should
* return an evaluation result of * return an evaluation result of
* <tt>ErrorEval.CIRCULAR_REF_ERROR<tt>, and not call <tt>endEvaluate()</tt>. * <tt>ErrorEval.CIRCULAR_REF_ERROR<tt>, and not call <tt>endEvaluate()</tt>.
* <br/> * <br>
* @return <code>false</code> if the specified cell is already being evaluated * @return <code>false</code> if the specified cell is already being evaluated
*/ */
public boolean startEvaluate(FormulaCellCacheEntry cce) { public boolean startEvaluate(FormulaCellCacheEntry cce) {
@ -94,10 +94,10 @@ final class EvaluationTracker {
} }
/** /**
* Notifies this evaluation tracker that the evaluation of the specified cell is complete. <p/> * Notifies this evaluation tracker that the evaluation of the specified cell is complete. <p>
* *
* Every successful call to <tt>startEvaluate</tt> must be followed by a call to <tt>endEvaluate</tt> (recommended in a finally block) to enable * Every successful call to <tt>startEvaluate</tt> must be followed by a call to <tt>endEvaluate</tt> (recommended in a finally block) to enable
* proper tracking of which cells are being evaluated at any point in time.<p/> * proper tracking of which cells are being evaluated at any point in time.<p>
* *
* Assuming a well behaved client, parameters to this method would not be * Assuming a well behaved client, parameters to this method would not be
* required. However, they have been included to assert correct behaviour, * required. However, they have been included to assert correct behaviour,

View File

@ -25,7 +25,7 @@ import org.apache.poi.ss.formula.udf.UDFFinder;
import org.apache.poi.util.Internal; import org.apache.poi.util.Internal;
/** /**
* Abstracts a workbook for the purpose of formula evaluation.<br/> * Abstracts a workbook for the purpose of formula evaluation.<br>
* *
* For POI internal use only * For POI internal use only
* *

View File

@ -18,7 +18,7 @@
package org.apache.poi.ss.formula; package org.apache.poi.ss.formula;
/** /**
* Should be implemented by any {@link org.apache.poi.ss.formula.ptg.Ptg} subclass that needs has an extern sheet index <br/> * Should be implemented by any {@link org.apache.poi.ss.formula.ptg.Ptg} subclass that needs has an extern sheet index <br>
* *
* For POI internal use only * For POI internal use only
* *

View File

@ -87,9 +87,9 @@ import org.apache.poi.util.POILogger;
* <term> ::= <factor> [ <mulop> <factor> ]* * <term> ::= <factor> [ <mulop> <factor> ]*
* <factor> ::= <number> | (<expression>) | <cellRef> | <function> * <factor> ::= <number> | (<expression>) | <cellRef> | <function>
* <function> ::= <functionName> ([expression [, expression]*]) * <function> ::= <functionName> ([expression [, expression]*])
* <p/> * <p>
* For POI internal use only * For POI internal use only
* <p/> * <p>
*/ */
@Internal @Internal
public final class FormulaParser { public final class FormulaParser {

View File

@ -25,7 +25,7 @@ import org.apache.poi.ss.util.AreaReference;
import org.apache.poi.ss.util.CellReference; import org.apache.poi.ss.util.CellReference;
/** /**
* Abstracts a workbook for the purpose of formula parsing.<br/> * Abstracts a workbook for the purpose of formula parsing.<br>
* *
* For POI internal use only * For POI internal use only
* *

View File

@ -28,7 +28,7 @@ import org.apache.poi.ss.formula.ptg.ParenthesisPtg;
import org.apache.poi.ss.formula.ptg.Ptg; import org.apache.poi.ss.formula.ptg.Ptg;
/** /**
* Common logic for rendering formulas.<br/> * Common logic for rendering formulas.<br>
* *
* For POI internal use only * For POI internal use only
* *

View File

@ -22,7 +22,7 @@ import org.apache.poi.ss.formula.ptg.NamePtg;
import org.apache.poi.ss.formula.ptg.NameXPtg; import org.apache.poi.ss.formula.ptg.NameXPtg;
/** /**
* Abstracts a workbook for the purpose of converting formula to text.<br/> * Abstracts a workbook for the purpose of converting formula to text.<br>
* *
* For POI internal use only * For POI internal use only
* *

View File

@ -20,7 +20,7 @@ package org.apache.poi.ss.formula;
import org.apache.poi.ss.formula.eval.ValueEval; import org.apache.poi.ss.formula.eval.ValueEval;
/** /**
* Tests can implement this class to track the internal working of the {@link WorkbookEvaluator}.<br/> * Tests can implement this class to track the internal working of the {@link WorkbookEvaluator}.<br>
* *
* For POI internal testing use only * For POI internal testing use only
* *

View File

@ -19,12 +19,12 @@ package org.apache.poi.ss.formula;
/** /**
* Used to help optimise cell evaluation result caching by allowing applications to specify which * Used to help optimise cell evaluation result caching by allowing applications to specify which
* parts of a workbook are <em>final</em>.<br/> * parts of a workbook are <em>final</em>.<br>
* The term <b>final</b> is introduced here to denote immutability or 'having constant definition'. * The term <b>final</b> is introduced here to denote immutability or 'having constant definition'.
* This classification refers to potential actions (on the evaluated workbook) by the evaluating * This classification refers to potential actions (on the evaluated workbook) by the evaluating
* application. It does not refer to operations performed by the evaluator ({@link * application. It does not refer to operations performed by the evaluator ({@link
* WorkbookEvaluator}).<br/> * WorkbookEvaluator}).<br>
* <br/> * <br>
* <b>General guidelines</b>: * <b>General guidelines</b>:
* <ul> * <ul>
* <li>a plain value cell can be marked as 'final' if it will not be changed after the first call * <li>a plain value cell can be marked as 'final' if it will not be changed after the first call

View File

@ -38,18 +38,18 @@ import org.apache.poi.util.Removal;
* <li>value</li> * <li>value</li>
* <li>array</li> * <li>array</li>
* </ul> * </ul>
* <p/> * <p>
* *
* The final operand class chosen for each token depends on the formula type and the token's place * The final operand class chosen for each token depends on the formula type and the token's place
* in the formula. If POI gets the operand class wrong, Excel <em>may</em> interpret the formula * in the formula. If POI gets the operand class wrong, Excel <em>may</em> interpret the formula
* incorrectly. This condition is typically manifested as a formula cell that displays as '#VALUE!', * incorrectly. This condition is typically manifested as a formula cell that displays as '#VALUE!',
* but resolves correctly when the user presses F2, enter.<p/> * but resolves correctly when the user presses F2, enter.<p>
* *
* The logic implemented here was partially inspired by the description in * The logic implemented here was partially inspired by the description in
* "OpenOffice.org's Documentation of the Microsoft Excel File Format". The model presented there * "OpenOffice.org's Documentation of the Microsoft Excel File Format". The model presented there
* seems to be inconsistent with observed Excel behaviour (These differences have not been fully * seems to be inconsistent with observed Excel behaviour (These differences have not been fully
* investigated). The implementation in this class has been heavily modified in order to satisfy * investigated). The implementation in this class has been heavily modified in order to satisfy
* concrete examples of how Excel performs the same logic (see TestRVA).<p/> * concrete examples of how Excel performs the same logic (see TestRVA).<p>
* *
* Hopefully, as additional important test cases are identified and added to the test suite, * Hopefully, as additional important test cases are identified and added to the test suite,
* patterns might become more obvious in this code and allow for simplification. * patterns might become more obvious in this code and allow for simplification.

View File

@ -162,7 +162,7 @@ public final class SheetNameFormatter {
/** /**
* Used to decide whether sheet names like 'AB123' need delimiting due to the fact that they * Used to decide whether sheet names like 'AB123' need delimiting due to the fact that they
* look like cell references. * look like cell references.
* <p/> * <p>
* This code is currently being used for translating formulas represented with <code>Ptg</code> * This code is currently being used for translating formulas represented with <code>Ptg</code>
* tokens into human readable text form. In formula expressions, a sheet name always has a * tokens into human readable text form. In formula expressions, a sheet name always has a
* trailing '!' so there is little chance for ambiguity. It doesn't matter too much what this * trailing '!' so there is little chance for ambiguity. It doesn't matter too much what this
@ -177,7 +177,7 @@ public final class SheetNameFormatter {
* *
* At the time of writing, POI's formula parser tolerates cell-like sheet names in formulas * At the time of writing, POI's formula parser tolerates cell-like sheet names in formulas
* with or without delimiters. The same goes for Excel(2007), both manual and automated entry. * with or without delimiters. The same goes for Excel(2007), both manual and automated entry.
* <p/> * <p>
* For better or worse this implementation attempts to replicate Excel's formula renderer. * For better or worse this implementation attempts to replicate Excel's formula renderer.
* Excel uses range checking on the apparent 'row' and 'column' components. Note however that * Excel uses range checking on the apparent 'row' and 'column' components. Note however that
* the maximum sheet size varies across versions. * the maximum sheet size varies across versions.
@ -190,7 +190,7 @@ public final class SheetNameFormatter {
/** /**
* Note - this method assumes the specified rawSheetName has only letters and digits. It * Note - this method assumes the specified rawSheetName has only letters and digits. It
* cannot be used to match absolute or range references (using the dollar or colon char). * cannot be used to match absolute or range references (using the dollar or colon char).
* <p/> * <p>
* Some notable cases: * Some notable cases:
* <blockquote><table border="0" cellpadding="1" cellspacing="0" * <blockquote><table border="0" cellpadding="1" cellspacing="0"
* summary="Notable cases."> * summary="Notable cases.">

View File

@ -19,7 +19,7 @@ package org.apache.poi.ss.formula;
/** /**
* Should be implemented by any {@link org.apache.poi.ss.formula.ptg.Ptg} subclass that needs a workbook to render its formula. * Should be implemented by any {@link org.apache.poi.ss.formula.ptg.Ptg} subclass that needs a workbook to render its formula.
* <br/> * <br>
* *
* For POI internal use only * For POI internal use only
* *

View File

@ -44,11 +44,11 @@ import org.apache.poi.util.Internal;
import org.apache.poi.util.POILogFactory; import org.apache.poi.util.POILogFactory;
import org.apache.poi.util.POILogger; import org.apache.poi.util.POILogger;
/** /**
* Evaluates formula cells.<p/> * Evaluates formula cells.<p>
* *
* For performance reasons, this class keeps a cache of all previously calculated intermediate * For performance reasons, this class keeps a cache of all previously calculated intermediate
* cell values. Be sure to call {@link #clearAllCachedResultValues()} if any workbook cells are changed between * cell values. Be sure to call {@link #clearAllCachedResultValues()} if any workbook cells are changed between
* calls to evaluate~ methods on this class.<br/> * calls to evaluate~ methods on this class.<br>
* *
* For POI internal use only * For POI internal use only
* *
@ -595,7 +595,7 @@ public final class WorkbookEvaluator {
/** /**
* returns an appropriate Eval impl instance for the Ptg. The Ptg must be * returns an appropriate Eval impl instance for the Ptg. The Ptg must be
* one of: Area3DPtg, AreaPtg, ReferencePtg, Ref3DPtg, IntPtg, NumberPtg, * one of: Area3DPtg, AreaPtg, ReferencePtg, Ref3DPtg, IntPtg, NumberPtg,
* StringPtg, BoolPtg <br/>special Note: OperationPtg subtypes cannot be * StringPtg, BoolPtg <br>special Note: OperationPtg subtypes cannot be
* passed here! * passed here!
*/ */
private ValueEval getEvalForPtg(Ptg ptg, OperationEvaluationContext ec) { private ValueEval getEvalForPtg(Ptg ptg, OperationEvaluationContext ec) {

View File

@ -24,11 +24,11 @@ import org.apache.poi.ss.formula.eval.EvaluationException;
import org.apache.poi.ss.formula.eval.ValueEval; import org.apache.poi.ss.formula.eval.ValueEval;
import org.apache.poi.ss.formula.functions.FreeRefFunction; import org.apache.poi.ss.formula.functions.FreeRefFunction;
/** /**
* Implementation of 'Analysis Toolpak' Excel function IFERROR()<br/> * Implementation of 'Analysis Toolpak' Excel function IFERROR()<br>
* *
* Returns an error text if there is an error in the evaluation<p/> * Returns an error text if there is an error in the evaluation<p>
* *
* <b>Syntax</b><br/> * <b>Syntax</b><br>
* <b>IFERROR</b>(<b>expression</b>, <b>string</b>) * <b>IFERROR</b>(<b>expression</b>, <b>string</b>)
* *
* @author Johan Karlsteen * @author Johan Karlsteen

View File

@ -23,14 +23,14 @@ import org.apache.poi.ss.formula.functions.FreeRefFunction;
import org.apache.poi.ss.formula.functions.NumericFunction; import org.apache.poi.ss.formula.functions.NumericFunction;
/** /**
* Implementation of Excel 'Analysis ToolPak' function MROUND()<br/> * Implementation of Excel 'Analysis ToolPak' function MROUND()<br>
* *
* Returns a number rounded to the desired multiple.<p/> * Returns a number rounded to the desired multiple.<p>
* *
* <b>Syntax</b><br/> * <b>Syntax</b><br>
* <b>MROUND</b>(<b>number</b>, <b>multiple</b>) * <b>MROUND</b>(<b>number</b>, <b>multiple</b>)
* *
* <p/> * <p>
* *
* @author Yegor Kozlov * @author Yegor Kozlov
*/ */

View File

@ -26,13 +26,13 @@ import org.apache.poi.ss.formula.eval.ValueEval;
import org.apache.poi.ss.formula.functions.FreeRefFunction; import org.apache.poi.ss.formula.functions.FreeRefFunction;
/** /**
* Implementation of Excel 'Analysis ToolPak' function NETWORKDAYS()<br/> * Implementation of Excel 'Analysis ToolPak' function NETWORKDAYS()<br>
* Returns the number of workdays given a starting and an ending date, considering an interval of holidays. A workday is any non * Returns the number of workdays given a starting and an ending date, considering an interval of holidays. A workday is any non
* saturday/sunday date. * saturday/sunday date.
* <p/> * <p>
* <b>Syntax</b><br/> * <b>Syntax</b><br>
* <b>NETWORKDAYS</b>(<b>startDate</b>, <b>endDate</b>, holidays) * <b>NETWORKDAYS</b>(<b>startDate</b>, <b>endDate</b>, holidays)
* <p/> * <p>
* *
* @author jfaenomoto@gmail.com * @author jfaenomoto@gmail.com
*/ */

View File

@ -25,7 +25,7 @@ import org.apache.poi.ss.formula.eval.ValueEval;
import org.apache.poi.ss.formula.functions.FreeRefFunction; import org.apache.poi.ss.formula.functions.FreeRefFunction;
import org.apache.poi.ss.formula.OperationEvaluationContext; import org.apache.poi.ss.formula.OperationEvaluationContext;
/** /**
* Implementation of Excel 'Analysis ToolPak' function ISEVEN() ISODD()<br/> * Implementation of Excel 'Analysis ToolPak' function ISEVEN() ISODD()<br>
* *
* @author Josh Micich * @author Josh Micich
*/ */

View File

@ -25,15 +25,15 @@ import org.apache.poi.ss.formula.functions.FreeRefFunction;
import org.apache.poi.ss.formula.OperationEvaluationContext; import org.apache.poi.ss.formula.OperationEvaluationContext;
/** /**
* Implementation of Excel 'Analysis ToolPak' function RANDBETWEEN()<br/> * Implementation of Excel 'Analysis ToolPak' function RANDBETWEEN()<br>
* *
* Returns a random integer number between the numbers you specify.<p/> * Returns a random integer number between the numbers you specify.<p>
* *
* <b>Syntax</b><br/> * <b>Syntax</b><br>
* <b>RANDBETWEEN</b>(<b>bottom</b>, <b>top</b>)<p/> * <b>RANDBETWEEN</b>(<b>bottom</b>, <b>top</b>)<p>
* *
* <b>bottom</b> is the smallest integer RANDBETWEEN will return.<br/> * <b>bottom</b> is the smallest integer RANDBETWEEN will return.<br>
* <b>top</b> is the largest integer RANDBETWEEN will return.<br/> * <b>top</b> is the largest integer RANDBETWEEN will return.<br>
* @author Brendan Nolan * @author Brendan Nolan
*/ */

View File

@ -26,13 +26,13 @@ import org.apache.poi.ss.formula.functions.FreeRefFunction;
import org.apache.poi.ss.usermodel.DateUtil; import org.apache.poi.ss.usermodel.DateUtil;
/** /**
* Implementation of Excel 'Analysis ToolPak' function WORKDAY()<br/> * Implementation of Excel 'Analysis ToolPak' function WORKDAY()<br>
* Returns the date past a number of workdays beginning at a start date, considering an interval of holidays. A workday is any non * Returns the date past a number of workdays beginning at a start date, considering an interval of holidays. A workday is any non
* saturday/sunday date. * saturday/sunday date.
* <p/> * <p>
* <b>Syntax</b><br/> * <b>Syntax</b><br>
* <b>WORKDAY</b>(<b>startDate</b>, <b>days</b>, holidays) * <b>WORKDAY</b>(<b>startDate</b>, <b>days</b>, holidays)
* <p/> * <p>
* *
* @author jfaenomoto@gmail.com * @author jfaenomoto@gmail.com
*/ */

View File

@ -29,12 +29,12 @@ import org.apache.poi.ss.formula.functions.FreeRefFunction;
import org.apache.poi.ss.formula.OperationEvaluationContext; import org.apache.poi.ss.formula.OperationEvaluationContext;
import org.apache.poi.ss.usermodel.DateUtil; import org.apache.poi.ss.usermodel.DateUtil;
/** /**
* Implementation of Excel 'Analysis ToolPak' function YEARFRAC()<br/> * Implementation of Excel 'Analysis ToolPak' function YEARFRAC()<br>
* *
* Returns the fraction of the year spanned by two dates.<p/> * Returns the fraction of the year spanned by two dates.<p>
* *
* <b>Syntax</b><br/> * <b>Syntax</b><br>
* <b>YEARFRAC</b>(<b>startDate</b>, <b>endDate</b>, basis)<p/> * <b>YEARFRAC</b>(<b>startDate</b>, <b>endDate</b>, basis)<p>
* *
* The <b>basis</b> optionally specifies the behaviour of YEARFRAC as follows: * The <b>basis</b> optionally specifies the behaviour of YEARFRAC as follows:
* *

View File

@ -26,7 +26,7 @@ import org.apache.poi.util.LocaleUtil;
/** /**
* Internal calculation methods for Excel 'Analysis ToolPak' function YEARFRAC()<br/> * Internal calculation methods for Excel 'Analysis ToolPak' function YEARFRAC()<br>
* *
* Algorithm inspired by www.dwheeler.com/yearfrac * Algorithm inspired by www.dwheeler.com/yearfrac
*/ */

View File

@ -24,7 +24,7 @@ import org.apache.poi.util.StringUtil;
/** /**
* To support Constant Values (2.5.7) as required by the CRN record. * To support Constant Values (2.5.7) as required by the CRN record.
* This class is also used for two dimensional arrays which are encoded by * This class is also used for two dimensional arrays which are encoded by
* EXTERNALNAME (5.39) records and Array tokens.<p/> * EXTERNALNAME (5.39) records and Array tokens.<p>
* *
* @author Josh Micich * @author Josh Micich
*/ */

View File

@ -21,7 +21,7 @@ import org.apache.poi.ss.usermodel.FormulaError;
import org.apache.poi.util.POILogFactory; import org.apache.poi.util.POILogFactory;
import org.apache.poi.util.POILogger; import org.apache.poi.util.POILogger;
/** /**
* Represents a constant error code value as encoded in a constant values array. <p/> * Represents a constant error code value as encoded in a constant values array. <p>
* *
* This class is a type-safe wrapper for a 16-bit int value performing a similar job to * This class is a type-safe wrapper for a 16-bit int value performing a similar job to
* <tt>ErrorEval</tt>. * <tt>ErrorEval</tt>.

View File

@ -29,7 +29,7 @@ public final class BoolEval implements NumericValueEval, StringValueEval {
public static final BoolEval TRUE = new BoolEval(true); public static final BoolEval TRUE = new BoolEval(true);
/** /**
* Convenience method for the following:<br/> * Convenience method for the following:<br>
* <code>(b ? BoolEval.TRUE : BoolEval.FALSE)</code> * <code>(b ? BoolEval.TRUE : BoolEval.FALSE)</code>
* *
* @return the <tt>BoolEval</tt> instance representing <tt>b</tt>. * @return the <tt>BoolEval</tt> instance representing <tt>b</tt>.

View File

@ -20,7 +20,7 @@ package org.apache.poi.ss.formula.eval;
/** /**
* This class is used to simplify error handling logic <i>within</i> operator and function * This class is used to simplify error handling logic <i>within</i> operator and function
* implementations. Note - <tt>OperationEval.evaluate()</tt> and <tt>Function.evaluate()</tt> * implementations. Note - <tt>OperationEval.evaluate()</tt> and <tt>Function.evaluate()</tt>
* method signatures do not throw this exception so it cannot propagate outside.<p/> * method signatures do not throw this exception so it cannot propagate outside.<p>
* *
* Here is an example coded without <tt>EvaluationException</tt>, to show how it can help: * Here is an example coded without <tt>EvaluationException</tt>, to show how it can help:
* <pre> * <pre>
@ -51,9 +51,9 @@ package org.apache.poi.ss.formula.eval;
* </pre> * </pre>
* In this example, if any error is encountered while processing the arguments, an error is * In this example, if any error is encountered while processing the arguments, an error is
* returned immediately. This code is difficult to refactor due to all the points where errors * returned immediately. This code is difficult to refactor due to all the points where errors
* are returned.<br/> * are returned.<br>
* Using <tt>EvaluationException</tt> allows the error returning code to be consolidated to one * Using <tt>EvaluationException</tt> allows the error returning code to be consolidated to one
* place.<p/> * place.<p>
* <pre> * <pre>
* public Eval evaluate(Eval[] args, int srcRow, short srcCol) { * public Eval evaluate(Eval[] args, int srcRow, short srcCol) {
* try { * try {
@ -91,14 +91,14 @@ package org.apache.poi.ss.formula.eval;
* return temp; * return temp;
*} *}
* </pre> * </pre>
* It is not mandatory to use EvaluationException, doing so might give the following advantages:<br/> * It is not mandatory to use EvaluationException, doing so might give the following advantages:<br>
* - Methods can more easily be extracted, allowing for re-use.<br/> * - Methods can more easily be extracted, allowing for re-use.<br>
* - Type management (typecasting etc) is simpler because error conditions have been separated from * - Type management (typecasting etc) is simpler because error conditions have been separated from
* intermediate calculation values.<br/> * intermediate calculation values.<br>
* - Fewer local variables are required. Local variables can have stronger types.<br/> * - Fewer local variables are required. Local variables can have stronger types.<br>
* - It is easier to mimic common Excel error handling behaviour (exit upon encountering first * - It is easier to mimic common Excel error handling behaviour (exit upon encountering first
* error), because exceptions conveniently propagate up the call stack regardless of execution * error), because exceptions conveniently propagate up the call stack regardless of execution
* points or the number of levels of nested calls.<p/> * points or the number of levels of nested calls.<p>
* *
* <b>Note</b> - Only standard evaluation errors are represented by <tt>EvaluationException</tt> ( * <b>Note</b> - Only standard evaluation errors are represented by <tt>EvaluationException</tt> (
* i.e. conditions expected to be encountered when evaluating arbitrary Excel formulas). Conditions * i.e. conditions expected to be encountered when evaluating arbitrary Excel formulas). Conditions

View File

@ -97,10 +97,10 @@ public final class OperandResolver {
* *
* Note that the row area (A1:B1) does not include column C and the column area (D2:D3) does * Note that the row area (A1:B1) does not include column C and the column area (D2:D3) does
* not include row 4, so the values in C1(=25) and D4(=400) are not accessible to the formula * not include row 4, so the values in C1(=25) and D4(=400) are not accessible to the formula
* as written, but in the 4 cells A2:B3, the row and column selection works ok.<p/> * as written, but in the 4 cells A2:B3, the row and column selection works ok.<p>
* *
* The same concept is extended to references across sheets, such that even multi-row, * The same concept is extended to references across sheets, such that even multi-row,
* multi-column areas can be useful.<p/> * multi-column areas can be useful.<p>
* *
* Of course with carefully (or carelessly) chosen parameters, cyclic references can occur and * Of course with carefully (or carelessly) chosen parameters, cyclic references can occur and
* hence this method <b>can</b> throw a 'circular reference' EvaluationException. Note that * hence this method <b>can</b> throw a 'circular reference' EvaluationException. Note that
@ -180,14 +180,14 @@ public final class OperandResolver {
} }
/** /**
* Applies some conversion rules if the supplied value is not already an integer.<br/> * Applies some conversion rules if the supplied value is not already an integer.<br>
* Value is first coerced to a <tt>double</tt> ( See <tt>coerceValueToDouble()</tt> ). * Value is first coerced to a <tt>double</tt> ( See <tt>coerceValueToDouble()</tt> ).
* Note - <tt>BlankEval</tt> is converted to <code>0</code>.<p/> * Note - <tt>BlankEval</tt> is converted to <code>0</code>.<p>
* *
* Excel typically converts doubles to integers by truncating toward negative infinity.<br/> * Excel typically converts doubles to integers by truncating toward negative infinity.<br>
* The equivalent java code is:<br/> * The equivalent java code is:<br>
* &nbsp;&nbsp;<code>return (int)Math.floor(d);</code><br/> * &nbsp;&nbsp;<code>return (int)Math.floor(d);</code><br>
* <b>not</b>:<br/> * <b>not</b>:<br>
* &nbsp;&nbsp;<code>return (int)d; // wrong - rounds toward zero</code> * &nbsp;&nbsp;<code>return (int)d; // wrong - rounds toward zero</code>
* *
*/ */
@ -232,21 +232,21 @@ public final class OperandResolver {
} }
/** /**
* Converts a string to a double using standard rules that Excel would use.<br/> * Converts a string to a double using standard rules that Excel would use.<br>
* Tolerates leading and trailing spaces, <p/> * Tolerates leading and trailing spaces, <p>
* *
* Doesn't support currency prefixes, commas, percentage signs or arithmetic operations strings. * Doesn't support currency prefixes, commas, percentage signs or arithmetic operations strings.
* *
* Some examples:<br/> * Some examples:<br>
* " 123 " -&gt; 123.0<br/> * " 123 " -&gt; 123.0<br>
* ".123" -&gt; 0.123<br/> * ".123" -&gt; 0.123<br>
* "1E4" -&gt; 1000<br/> * "1E4" -&gt; 1000<br>
* "-123" -&gt; -123.0<br/> * "-123" -&gt; -123.0<br>
* These not supported yet:<br/> * These not supported yet:<br>
* " $ 1,000.00 " -&gt; 1000.0<br/> * " $ 1,000.00 " -&gt; 1000.0<br>
* "$1.25E4" -&gt; 12500.0<br/> * "$1.25E4" -&gt; 12500.0<br>
* "5**2" -&gt; 500<br/> * "5**2" -&gt; 500<br>
* "250%" -&gt; 2.5<br/> * "250%" -&gt; 2.5<br>
* *
* @return <code>null</code> if the specified text cannot be parsed as a number * @return <code>null</code> if the specified text cannot be parsed as a number
*/ */

View File

@ -22,7 +22,7 @@ import org.apache.poi.ss.formula.functions.Function;
/** /**
* Implementation of Excel formula token '%'. <p/> * Implementation of Excel formula token '%'. <p>
* @author Josh Micich * @author Josh Micich
*/ */
public final class PercentEval extends Fixed1ArgFunction { public final class PercentEval extends Fixed1ArgFunction {

View File

@ -34,7 +34,7 @@ import org.apache.poi.util.Internal;
* Represents a sheet being used for forked evaluation. Initially, objects of this class contain * Represents a sheet being used for forked evaluation. Initially, objects of this class contain
* only the cells from the master workbook. By calling {@link #getOrCreateUpdatableCell(int, int)}, * only the cells from the master workbook. By calling {@link #getOrCreateUpdatableCell(int, int)},
* the master cell object is logically replaced with a {@link ForkedEvaluationCell} instance, which * the master cell object is logically replaced with a {@link ForkedEvaluationCell} instance, which
* will be used in all subsequent evaluations.<br/> * will be used in all subsequent evaluations.<br>
* *
* For POI internal use only * For POI internal use only
*/ */

Some files were not shown because too many files have changed in this diff Show More