You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by jk...@apache.org on 2002/06/03 15:27:55 UTC
cvs commit: xml-xalan/java/src/org/apache/xml/utils FastStringBuffer.java
jkesselm 2002/06/03 06:27:55
Modified: java/src/org/apache/xml/utils FastStringBuffer.java
Log:
Put back main-branch version. Not sure how it got overlaid with the
XALAN3-branch copy.
Revision Changes Path
1.21 +1 -122 xml-xalan/java/src/org/apache/xml/utils/FastStringBuffer.java
Index: FastStringBuffer.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xml/utils/FastStringBuffer.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- FastStringBuffer.java 31 May 2002 20:37:04 -0000 1.20
+++ FastStringBuffer.java 3 Jun 2002 13:27:55 -0000 1.21
@@ -966,7 +966,7 @@
return sb;
}
-
+
/**
* Get a single character from the string buffer.
*
@@ -1372,126 +1372,5 @@
source.m_chunkBits += m_rebundleBits;
source.m_chunkSize = 1 << (source.m_chunkBits);
source.m_chunkMask = source.m_chunkSize - 1;
- }
-
- /** Yield substring value as a sequence of Character Blocks
- * @return a CharacterBlockEnumeration displaying the contents of
- * this object's string value (as in str()). May be empty, may
- * yield multiple blocks depending on the FSB's contents. (The latter
- * case is why we need to enumerate, of course!)
- *
- * @param start Offset of first character to be delivered
- * @param length Number of contiguous characters to be delivered
- * */
- public org.apache.xml.utils.CharacterBlockEnumeration enumerateCharacterBlocks(int start,int length)
- {
- // %REVIEW% %OPT% I'm not sure this is an optimization. Depends on
- // how retrieval of char[] from String works in any given JVM.
- // See comments in CharacterBlockEnumeration, and run some tests.
- return new FSBCharacterBlockEnumeration(start,length);
- }
-
- /** FSB-specific implementation of CharacterBlockEnumeration.
- *
- * NOTE: This is _NOT_ guaranteed to tolerate attempts to modify the
- * FSB's contents while it is executing!
- *
- * Inner class, since it's accessing FSB's implementation details
- * and might as well leverage its ability to access the associated FSB.
- * */
- protected class FSBCharacterBlockEnumeration
- extends org.apache.xml.utils.CharacterBlockEnumeration
- {
- int e_chunk; // Current enumeration position
- int e_toBeDelivered; // Current enumeration status
-
- /** Construct this enumeration
- *
- * %BUG% Does not currently support m_innerFSB. (I'm still deciding
- * whether to rip out the innerFSB support entirely, or to fix it.)
- *
- * @param start Starting offset, in characters. If past available data,
- * we return a single empty block.
- * @param length Number of characters to deliver. If start+length is
- * past available data, length will be truncated to fit.
- * */
- public FSBCharacterBlockEnumeration(int start,int length)
- {
- if(m_innerFSB!=null)
- throw new java.lang.UnsupportedOperationException("Inner FSB not yet implemented. Oops.");
-
- int fsblength=length();
- if (start<=fsblength)
- {
- int max=fsblength-start;
- e_toBeDelivered=(length<max) ? length : max;
-
- // Set up to display first chunk
- e_chunk=start>>m_chunkBits;
- _chars=m_array[e_chunk];
- _start=start&m_chunkBits;
- max=m_chunkSize-_start;
- _length=(max<=e_toBeDelivered) ? max : e_toBeDelivered;
- // and decrement what's left to go
- e_toBeDelivered -= _length;
- }
- else
- {
- // Off the end. We can just leave it empty.
- }
- }
-
- /** Disable superclass's ctor
- * @throws java.lang.UnsupportedOperationException since not appropriate here.
- * */
- public FSBCharacterBlockEnumeration(String s)
- { throw new java.lang.UnsupportedOperationException("Inappropriate ctor for this subclass");
- }
- /** Disable superclass's ctor
- * @throws java.lang.UnsupportedOperationException since not appropriate here.
- * */
- public FSBCharacterBlockEnumeration(String s, int start, int length)
- { throw new java.lang.UnsupportedOperationException("Inappropriate ctor for this subclass");
- }
- /** Disable superclass's ctor
- * @throws java.lang.UnsupportedOperationException since not appropriate here.
- * */
- public FSBCharacterBlockEnumeration(char[] ch)
- { throw new java.lang.UnsupportedOperationException("Inappropriate ctor for this subclass");
- }
- /** Disable superclass's ctor
- * @throws java.lang.UnsupportedOperationException since not appropriate here.
- * */
- public FSBCharacterBlockEnumeration(char[] ch, int start, int length)
- { throw new java.lang.UnsupportedOperationException("Inappropriate ctor for this subclass");
- }
-
- /** @return true if another character block can be accessed by calling
- * nextElement()
- */
- public boolean hasMoreElements()
- {
- return e_toBeDelivered > 0;
- }
-
- /** Advance to the next character block.
- *
- * @returns either this CharacterBlockEnumeration object (as a
- * transient accessor to the "element") or null if no more elements are available.
- * This is a bit of a kluge, but it allows us to claim that we
- * implement the Java Enumeration interface if we want to do so, and
- * it seems to be as good or bad as any other return value.
- * */
- public Object nextElement()
- {
- // Set up to display next chunk
- _chars=m_array[++e_chunk];
- _start=0;
- _length=(m_chunkSize<=e_toBeDelivered) ? m_chunkSize : e_toBeDelivered;
- // and decrement what's left to go
- e_toBeDelivered -= _length;
-
- return (e_toBeDelivered>0) ? this : null;
- }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org