blob: 06d79351fefeb7d95bcc793e36033c93310015c3 [file] [log] [blame]
/**************************************************************
*
* 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.
*
*************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_l10ntools.hxx"
#include "wtranode.hxx"
// NOT FULLY DECLARED SERVICES
const ByteString sEmptyString("");
WTT_Node::WTT_Node( UINT8 i_nValue,
WTT_Node * i_pDefaultBranch,
WTT_Node * i_pDefaultBranchForAlphas )
: nValue(i_nValue),
eType(token_to_keep),
sReplaceString(sEmptyString),
// aBranches,
bIsOnDeleting(char(0))
{
int i = 0;
for ( ; i < C_BR_ALPHABASE; i++ )
{
aBranches[i] = i_pDefaultBranch;
} // end for
for ( ; i < C_NR_OF_BRANCHES; i++ )
{
aBranches[i] = i_pDefaultBranchForAlphas;
}
}
void
WTT_Node::SetBranch( UINT8 i_cBranch,
WTT_Node * i_pNode )
{
if (i_cBranch < C_NR_OF_BRANCHES)
{
aBranches[i_cBranch] = i_pNode;
}
}
void
WTT_Node::SetAsTokenToReplace(const ByteString & i_sReplaceString)
{
sReplaceString = i_sReplaceString;
eType = token_to_replace;
}
WTT_Node::~WTT_Node()
{
// Delete the tree hanging below this node:
bIsOnDeleting = sal_True; // Avoid double deleting of multiple used nodes.
for (int i = 0; i < C_NR_OF_BRANCHES; i++)
{
if (aBranches[i] != 0 ? ! aBranches[i]->IsOnDeleting() : sal_False)
{
delete aBranches[i];
}
} // end for
}