/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ #ifndef _GSICHECK_HXX_ #define _GSICHECK_HXX_ #include "tagtest.hxx" // // class GSILine // enum LineFormat { FORMAT_GSI, FORMAT_SDF, FORMAT_UNKNOWN }; class GSILine : public ByteString { private: ParserMessageList aMessages; LineFormat aFormat; sal_uLong nLineNumber; ByteString aUniqId; ByteString aLineType; ByteString aLangId; ByteString aText; ByteString aQuickHelpText; ByteString aTitle; sal_Bool bOK; sal_Bool bFixed; void ReassembleLine(); public: GSILine( const ByteString &rLine, sal_uLong nLine ); LineFormat GetLineFormat() const { return aFormat; } sal_uLong GetLineNumber() const { return nLineNumber; } ByteString const GetUniqId() const { return aUniqId; } ByteString const GetLineType() const { return aLineType; } ByteString const GetLanguageId() const { return aLangId; } ByteString const GetText() const { return aText; } String const GetUText() const { return String( aText, RTL_TEXTENCODING_UTF8 ); } ByteString const GetQuickHelpText() const { return aQuickHelpText; } ByteString const GetTitle() const { return aTitle; } void SetUText( String &aNew ) { aText = ByteString( aNew, RTL_TEXTENCODING_UTF8 ); ReassembleLine(); } void SetText( ByteString &aNew ) { aText = aNew; ReassembleLine(); } void SetQuickHelpText( ByteString &aNew ) { aQuickHelpText = aNew; ReassembleLine(); } void SetTitle( ByteString &aNew ) { aTitle = aNew; ReassembleLine(); } ParserMessageList* GetMessageList() { return &aMessages; }; sal_Bool HasMessages(){ return ( aMessages.Count() > 0 ); }; sal_Bool IsOK() const { return bOK; } void NotOK(); sal_Bool IsFixed() const { return bFixed; } void SetFixed() { bFixed = sal_True; }; }; // // class GSIBlock // DECLARE_LIST( GSIBlock_Impl, GSILine * ) class LazySvFileStream; class GSIBlock : public GSIBlock_Impl { private: GSILine *pSourceLine; GSILine *pReferenceLine; void PrintList( ParserMessageList *pList, ByteString aPrefix, GSILine *pLine ); sal_Bool bPrintContext; sal_Bool bCheckSourceLang; sal_Bool bCheckTranslationLang; sal_Bool bReference; sal_Bool bAllowKeyIDs; sal_Bool bAllowSuspicious; sal_Bool bHasBlockError; sal_Bool IsUTF8( const ByteString &aTestee, sal_Bool bFixTags, sal_uInt16 &nErrorPos, ByteString &aErrorMsg, sal_Bool &bHasBeenFixed, ByteString &aFixed ) const; sal_Bool TestUTF8( GSILine* pTestee, sal_Bool bFixTags ); sal_Bool HasSuspiciousChars( GSILine* pTestee, GSILine* pSource ); public: GSIBlock( sal_Bool PbPrintContext, sal_Bool bSource, sal_Bool bTrans, sal_Bool bRef, sal_Bool bAllowKID, sal_Bool bAllowSusp ); ~GSIBlock(); void PrintMessage( ByteString aType, ByteString aMsg, ByteString aPrefix, ByteString aContext, sal_uLong nLine, ByteString aUniqueId = ByteString() ); void PrintError( ByteString aMsg, ByteString aPrefix, ByteString aContext, sal_uLong nLine, ByteString aUniqueId = ByteString() ); void InsertLine( GSILine* pLine, const ByteString aSourceLang); void SetReferenceLine( GSILine* pLine ); sal_Bool CheckSyntax( sal_uLong nLine, sal_Bool bRequireSourceLine, sal_Bool bFixTags ); void WriteError( LazySvFileStream &aErrOut, sal_Bool bRequireSourceLine ); void WriteCorrect( LazySvFileStream &aOkOut, sal_Bool bRequireSourceLine ); void WriteFixed( LazySvFileStream &aFixOut, sal_Bool bRequireSourceLine ); }; #endif