| /* |
| * Copyright 2003-2004 The Apache Software Foundation. |
| // (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved |
| * |
| * Licensed 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. |
| */ |
| |
| /* |
| * @file WhiteSpace.hpp |
| */ |
| |
| #if !defined(_WHITESPACE_HPP____OF_AXIS_INCLUDED_) |
| #define _WHITESPACE_HPP____OF_AXIS_INCLUDED_ |
| |
| #include "IConstrainingFacet.hpp" |
| #include <cctype> |
| |
| AXIS_CPP_NAMESPACE_START |
| |
| const AxisChar WHITE_SPACE_CHARS[] = "\t\r\n"; |
| |
| typedef enum |
| { |
| PRESERVE, REPLACE, COLLAPSE |
| } whiteSpaceValue; |
| |
| /** |
| * @class WhiteSpace |
| * |
| * @author Adrian Dick (adrian.dick@uk.ibm.com) |
| * |
| */ |
| class WhiteSpace : public IConstrainingFacet { |
| |
| public: |
| |
| |
| |
| |
| WhiteSpace(); |
| |
| ~WhiteSpace(); |
| |
| WhiteSpace(whiteSpaceValue whiteSpace); |
| |
| const AxisChar* processWhiteSpace(const AxisChar* valueToProcess); |
| |
| |
| private: |
| const AxisString& replaceWhiteSpace(AxisString& value); |
| |
| const AxisString& collapseWhiteSpace(AxisString& value); |
| |
| const AxisString& stripLeadingWhiteSpace(AxisString& value); |
| |
| const AxisString& stripTrailingWhiteSpace(AxisString& value); |
| |
| enum |
| { |
| TAB_CHARACTER = '\t', |
| LINE_FEED_CHARACTER = '\r', |
| CARRIAGE_RETURN_CHARACTER = '\n' |
| }; |
| |
| whiteSpaceValue m_WhiteSpace; |
| |
| AxisChar* m_Buf; |
| |
| AxisString m_strReturnVal; |
| }; |
| |
| AXIS_CPP_NAMESPACE_END |
| |
| #endif |