BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Classes | Protected Member Functions | Private Attributes | Friends | List of all members
BALL::Substring Class Reference

#include <BALL/DATATYPE/string.h>

Classes

class  InvalidSubstring
 
class  UnboundSubstring
 

Public Member Functions

Constructors and Destructors
 Substring ()
 
 Substring (const Substring &substring, bool deep=true)
 
 Substring (const String &string, Index from=0, Size len=String::EndPos)
 
virtual ~Substring ()
 
void destroy ()
 
virtual void clear ()
 
Converters
 operator String () const
 
String toString () const
 
Binding and Unbinding Substrings
Substringbind (const String &string, Index from=0, Size len=String::EndPos)
 
Substringbind (const Substring &substring, Index from=0, Size len=String::EndPos)
 
void unbind ()
 unbinds the substring from the string it is bound to More...
 
StringgetBoundString ()
 Return a pointer to the bound String. More...
 
const StringgetBoundString () const
 Retunrs a const pointer to the bound String. More...
 
Assignment
void set (const String &string)
 
void set (const Substring &s)
 
void set (const char *char_ptr, Size size=String::EndPos)
 
const Substringoperator= (const String &string)
 
const Substringoperator= (const Substring &substring)
 
const Substringoperator= (const char *char_ptr)
 
Accessors and Mutators
char * c_str ()
 
const char * c_str () const
 
Index getFirstIndex () const
 
Index getLastIndex () const
 
Size size () const
 Return the substring size. More...
 
char & operator[] (Index index)
 
char operator[] (Index index) const
 
SubstringtoLower ()
 
SubstringtoUpper ()
 
Predicates
bool isBound () const
 Return true, if the substring is bound to a String. More...
 
bool isEmpty () const
 Return true, if the substring is empty or unbound. More...
 
Debugging and Diagnostics
bool isValid () const
 
void dump (std::ostream &s=std::cout, Size depth=0) const
 

Protected Member Functions

void validateRange_ (Index &from, Size &len) const
 

Private Attributes

Stringbound_
 
Index from_
 
Index to_
 

Friends

class String
 
Stream I/O
BALL_EXPORT friend std::ostream & operator<< (std::ostream &s, const Substring &substring)
 Writes the substring to a stream. More...
 

Comparison Operators

BALL_EXPORT friend bool operator== (const String &string, const Substring &substring)
 
BALL_EXPORT friend bool operator!= (const String &string, const Substring &substring)
 
bool operator== (const Substring &substring) const
 
bool operator!= (const Substring &substring) const
 
bool operator== (const String &string) const
 
bool operator!= (const String &string) const
 
bool operator== (const char *char_ptr) const
 
bool operator!= (const char *char_ptr) const
 
bool operator== (char c) const
 
bool operator!= (char c) const
 

Detailed Description

A substring class. The Substring class represents an efficient way to deal with substrings of String . Each Substring is bound to an instance of String and is defined by a start and end index. It can be used like a String (with several restrictions) but only affects the given range of the string it is bount to.

Definition at line 1044 of file string.h.

Constructor & Destructor Documentation

BALL::Substring::Substring ( )

Default constructor. Create an empty string.

BALL::Substring::Substring ( const Substring substring,
bool  deep = true 
)

Copy constructor. Create a substring from another substring.

Parameters
substringthe substring to be copied
deepignored
BALL::Substring::Substring ( const String string,
Index  from = 0,
Size  len = String::EndPos 
)

Create a substring from a string and two indices.

Parameters
stringthe string the substring is bound to.
fromthe start index of the substring
lenthe length of the substring (default EndPos: to the end of the string)
Exceptions
Exception::IndexUnderflowif from < 0
Exception::IndexOverflowif from || len >= size()
virtual BALL::Substring::~Substring ( )
virtual

Destructor. Destruct the substring.

Member Function Documentation

Substring& BALL::Substring::bind ( const String string,
Index  from = 0,
Size  len = String::EndPos 
)

Bind the substring to a string.

Parameters
stringthe string to bind to
fromthe start position in the string (default is the beginning of the string)
lenthe substring's length (default is to the end of the string)
Exceptions
Exception::IndexUnderflowif index < 0
Exception::IndexOverflowif index >= size()
Substring& BALL::Substring::bind ( const Substring substring,
Index  from = 0,
Size  len = String::EndPos 
)

Bind the substring to the same string another substring is bound to.

Parameters
substringthe substring that is bound to a string
Exceptions
Exception::IndexUnderflowif index < 0
Exception::IndexOverflowif index >= size()
char* BALL::Substring::c_str ( )

Return a pointer to the substring's contents

Exceptions
Substring::UnboundSubstringif this Substring is not correctly bound
const char* BALL::Substring::c_str ( ) const

Return a const pointer to the substring's contents

Exceptions
Substring::UnboundSubstringif this Substring is not correctly bound
virtual void BALL::Substring::clear ( )
virtual

Clear the substrings contents. Unbind the substring from its string and set the start and the end position to 0.

void BALL::Substring::destroy ( )

Clear the substrings contents. Unbind the substring from its string and set the start and the end position to 0.

void BALL::Substring::dump ( std::ostream &  s = std::cout,
Size  depth = 0 
) const

Dumps the substring object (including the values of its private members)

Exceptions
Substring::UnboundSubstringif this Substring is not correctly bound
String* BALL::Substring::getBoundString ( )

Return a pointer to the bound String.

const String* BALL::Substring::getBoundString ( ) const

Retunrs a const pointer to the bound String.

Index BALL::Substring::getFirstIndex ( ) const

Return the first index of the substring. This means the starting point in the bound string.

Exceptions
Substring::UnboundSubstringif this Substring is not correctly bound
Index BALL::Substring::getLastIndex ( ) const

Return the last index of the substring This means the end point in the bound string.

Exceptions
Substring::UnboundSubstringif this Substring is not correctly bound
bool BALL::Substring::isBound ( ) const

Return true, if the substring is bound to a String.

bool BALL::Substring::isEmpty ( ) const

Return true, if the substring is empty or unbound.

bool BALL::Substring::isValid ( ) const

Return true, if the string is bound to a string and its indices are valid. Valid indices means that the first index is not greater than the last index, both indices are non-negative and lesser than the size of the bound string.

BALL::Substring::operator String ( ) const

Convert a substring to a string. Return a copy of the substring's contents.

Exceptions
Substring::UnboundSubstringif this Substring is not correctly bound
bool BALL::Substring::operator!= ( const Substring substring) const

Return true, if the contents of the two substrings are not equal

Exceptions
Substring::UnboundSubstringif this Substring is not correctly bound
bool BALL::Substring::operator!= ( const String string) const

Return true, if the contents of the substring and the string are not equal

Exceptions
Substring::UnboundSubstringif this Substring is not correctly bound
bool BALL::Substring::operator!= ( const char *  char_ptr) const

Return true, if the contents of the substring are not equal to the contents of the C-string

Exceptions
Exception::NullPointerif delimiters == NULL
Substring::UnboundSubstringif this Substring is not correctly bound
bool BALL::Substring::operator!= ( char  c) const

Return true, if the substring is differnet from the given char

Exceptions
Substring::UnboundSubstringif this Substring is not correctly bound
const Substring& BALL::Substring::operator= ( const String string)

String assignment operator

Exceptions
Substring::UnboundSubstringif this Substring is not correctly bound
const Substring& BALL::Substring::operator= ( const Substring substring)

Substring assignment operator

Exceptions
Substring::UnboundSubstringif this Substring is not correctly bound
const Substring& BALL::Substring::operator= ( const char *  char_ptr)

char pointer assignment operator

Exceptions
Exception::NullPointerif char_ptr == NULL
Substring::UnboundSubstringif this Substring is not correctly bound
bool BALL::Substring::operator== ( const Substring substring) const

returns true, if the contents of the two substrings are equal

Exceptions
Substring::UnboundSubstringif this Substring is not correctly bound
bool BALL::Substring::operator== ( const String string) const

Return true, if the contents of the substring and the string are equal

Exceptions
Substring::UnboundSubstringif this Substring is not correctly bound
bool BALL::Substring::operator== ( const char *  char_ptr) const

Return true, if the contents of the substring are equal to the contents of the C-string

Exceptions
Exception::NullPointerif delimiters == NULL
Substring::UnboundSubstringif this Substring is not correctly bound
bool BALL::Substring::operator== ( char  c) const

Return true, if the substring has length 1 and contains the given char

Exceptions
Substring::UnboundSubstringif this Substring is not correctly bound
char& BALL::Substring::operator[] ( Index  index)

Mutable random access to a character of the substring

Exceptions
Exception::IndexUnderflowif index < 0
Exception::IndexOverflowif index >= size()
Substring::UnboundSubstringif this Substring is not correctly bound
char BALL::Substring::operator[] ( Index  index) const

Random access to a character of the substring (const method).

Exceptions
Exception::IndexUnderflowif index < 0
Exception::IndexOverflowif index >= size()
Substring::UnboundSubstringif this Substring is not correctly bound
void BALL::Substring::set ( const String string)

Sets the substring to a certain string

Exceptions
Substring::UnboundSubstringif this Substring is not correctly bound
void BALL::Substring::set ( const Substring s)

Copies a substring from another substring

Exceptions
Substring::UnboundSubstringif this Substring is not correctly bound
void BALL::Substring::set ( const char *  char_ptr,
Size  size = String::EndPos 
)

Assigns a substring from a char pointer

Exceptions
Substring::UnboundSubstringif this Substring is not correctly bound
Exception::IndexUnderflow
Exception::NullPointerif char_ptr == NULL
Size BALL::Substring::size ( ) const

Return the substring size.

Substring& BALL::Substring::toLower ( )

Converts the substring to lower case characters

Exceptions
Substring::UnboundSubstringif this Substring is not correctly bound
String BALL::Substring::toString ( ) const

Convert a substring to a string. Return a copy of the substring's contents.

Exceptions
Substring::UnboundSubstringif this Substring is not correctly bound
Substring& BALL::Substring::toUpper ( )

Converts the substring to lower case characters

Exceptions
Substring::UnboundSubstringif this Substring is not correctly bound
void BALL::Substring::unbind ( )

unbinds the substring from the string it is bound to

void BALL::Substring::validateRange_ ( Index from,
Size len 
) const
protected

Friends And Related Function Documentation

BALL_EXPORT friend bool operator!= ( const String string,
const Substring substring 
)
friend

Return true, if the contents of the substring and the string are not equal

Exceptions
Substring::UnboundSubstringif this Substring is not correctly bound
BALL_EXPORT friend std::ostream& operator<< ( std::ostream &  s,
const Substring substring 
)
friend

Writes the substring to a stream.

BALL_EXPORT friend bool operator== ( const String string,
const Substring substring 
)
friend

Return true, if the contents of the substring and the string are equal

Exceptions
Substring::UnboundSubstringif this Substring is not correctly bound
friend class String
friend

Definition at line 1046 of file string.h.

Member Data Documentation

String* BALL::Substring::bound_
private

Definition at line 1372 of file string.h.

Index BALL::Substring::from_
private

Definition at line 1375 of file string.h.

Index BALL::Substring::to_
private

Definition at line 1378 of file string.h.