LCOV - code coverage report
Current view: top level - reportdesign/inc - conditionalexpression.hxx (source / functions) Hit Total Coverage
Test: commit e02a6cb2c3e2b23b203b422e4e0680877f232636 Lines: 0 1 0.0 %
Date: 2014-04-14 Functions: 0 1 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  *
       9             :  * This file incorporates work covered by the following license notice:
      10             :  *
      11             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12             :  *   contributor license agreements. See the NOTICE file distributed
      13             :  *   with this work for additional information regarding copyright
      14             :  *   ownership. The ASF licenses this file to you under the Apache
      15             :  *   License, Version 2.0 (the "License"); you may not use this file
      16             :  *   except in compliance with the License. You may obtain a copy of
      17             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18             :  */
      19             : 
      20             : #ifndef CONDITIONALEXPRESSION_HXX
      21             : #define CONDITIONALEXPRESSION_HXX
      22             : 
      23             : #include "dllapi.h"
      24             : 
      25             : #include <rtl/ustring.hxx>
      26             : #include <boost/shared_ptr.hpp>
      27             : 
      28             : #include <map>
      29             : 
      30             : 
      31             : namespace rptui
      32             : {
      33             : 
      34             : 
      35             : 
      36             :     // = ConditionalExpression
      37             : 
      38           0 :     class REPORTDESIGN_DLLPUBLIC ConditionalExpression
      39             :     {
      40             :     private:
      41             :         const OUString       m_sPattern;
      42             : 
      43             :     public:
      44             :         ConditionalExpression( const sal_Char* _pAsciiPattern );
      45             : 
      46             :         /** assembles an expression string from a field data source, and one or two operands
      47             :         */
      48             :         OUString     assembleExpression( const OUString& _rFieldDataSource, const OUString& _rLHS, const OUString& _rRHS ) const;
      49             : 
      50             :         /** matches the given expression string to the expression pattern represented by the object
      51             :             @param  _rExpression
      52             :                 the expression to match
      53             :             @param  _rFieldDataSource
      54             :                 the field data source
      55             :             @param  _out_rLHS
      56             :                 output parameter taking the left hand side operand, if successful
      57             :             @param  _out_rRHS
      58             :                 output parameter taking the right hand side operand, if successful
      59             :             @return
      60             :                 <TRUE/> if and only if the expression string could be successfully matched to
      61             :                 the pattern.
      62             :         */
      63             :         bool                matchExpression( const OUString& _rExpression, const OUString& _rFieldDataSource, OUString& _out_rLHS, OUString& _out_rRHS ) const;
      64             :     };
      65             : 
      66             : 
      67             :     //= ConditionType
      68             : 
      69             :     enum ConditionType
      70             :     {
      71             :         eFieldValueComparison   = 0,
      72             :         eExpression             = 1
      73             :     };
      74             : 
      75             : 
      76             :     //= ComparisonOperation
      77             : 
      78             :     enum ComparisonOperation
      79             :     {
      80             :         eBetween        = 0,
      81             :         eNotBetween     = 1,
      82             :         eEqualTo        = 2,
      83             :         eNotEqualTo     = 3,
      84             :         eGreaterThan    = 4,
      85             :         eLessThan       = 5,
      86             :         eGreaterOrEqual = 6,
      87             :         eLessOrEqual    = 7
      88             :     };
      89             : 
      90             :     typedef ::boost::shared_ptr< ConditionalExpression >                PConditionalExpression;
      91             :     typedef ::std::map< ComparisonOperation, PConditionalExpression >   ConditionalExpressions;
      92             : 
      93             : 
      94             :     // = ConditionalExpressionFactory
      95             : 
      96             :     class REPORTDESIGN_DLLPUBLIC ConditionalExpressionFactory
      97             :     {
      98             :     public:
      99             :         /// fills the given map with all ConditionalExpressions which we know
     100             :         static size_t  getKnownConditionalExpressions( ConditionalExpressions& _out_rCondExp );
     101             : 
     102             :     private:
     103             :         ConditionalExpressionFactory();                                                 // never implemented
     104             :         ConditionalExpressionFactory( const ConditionalExpressionFactory& );            // never implemented
     105             :         ConditionalExpressionFactory& operator=( const ConditionalExpressionFactory& ); // never implemented
     106             :     };
     107             : 
     108             : } // namespace rptui
     109             : 
     110             : 
     111             : #endif // CONDITIONALEXPRESSION_HXX
     112             : 
     113             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10