BilingualKey.cpp

Go to the documentation of this file.
00001 #include "BilingualKey.h"
00002 
00003 BilingualKey::BilingualKey() {
00004 }
00005 
00006 BilingualKey::BilingualKey( const QString& stringKey ) 
00007     : lang1( stringKey.left( 2 ) ), lang2( stringKey.right( 2 ) ) {
00008 }
00009 
00010 BilingualKey::BilingualKey( const QString& firstLanguage, const QString& secondLanguage ) {
00011     // Sort the languages.
00012     if( firstLanguage.compare( secondLanguage ) < 0 ) {
00013         lang1 = firstLanguage;
00014         lang2 = secondLanguage;
00015     }
00016     else {
00017         lang1 = secondLanguage;
00018         lang2 = firstLanguage;
00019     }
00020 }
00021 
00022 BilingualKey::BilingualKey( const BilingualKey& key )
00023     : lang1( key.lang1 ), lang2( key.lang2 ) {
00024 }
00025 
00026 BilingualKey::~BilingualKey() {
00027 }
00028 
00029 const QString& BilingualKey::getFirstLanguage() const {
00030     return( lang1 );
00031 }
00032 
00033 const QString& BilingualKey::getSecondLanguage() const {
00034     return( lang2 );
00035 }
00036 
00037 bool BilingualKey::contains( const QString& language ) const {
00038     return( lang1 == language || lang2 == language );
00039 }
00040 
00041 QString BilingualKey::toString() const {
00042     return( QString( lang1 + QString( "-" ) + lang2 ) );
00043 }
00044 
00045 BilingualKey& BilingualKey::operator=( const BilingualKey& key ) {
00046     if( this != &key ) {
00047         lang1 = key.getFirstLanguage();
00048         lang2 = key.getSecondLanguage();
00049     }
00050     return( *this );
00051 }
00052 
00053 bool operator==( const BilingualKey& left, const BilingualKey& right ) {
00054     return( left.toString().compare( right.toString() ) == 0 );
00055 }
00056 
00057 bool operator<( const BilingualKey& left, const BilingualKey& right ) {
00058     return( left.toString().compare( right.toString() ) < 0 );
00059 }
00060 
00061 QDataStream& operator<<( QDataStream& out, const BilingualKey& key ) {
00062     out << key.lang1 << key.lang2;
00063     return( out );
00064 }
00065 
00066 QDataStream& operator>>( QDataStream& in, BilingualKey& key ) {
00067     QString tempLang1;
00068     QString tempLang2;
00069 
00070     in >> tempLang1 >> tempLang2;
00071     key = BilingualKey( tempLang1, tempLang2 );
00072     
00073     return( in );
00074 }

Generated on Sun Mar 1 17:30:47 2009 for toMOTko by  doxygen 1.5.6