OpenWalnut  1.5.0dev
WPropertyHelper.cpp
1 //---------------------------------------------------------------------------
2 //
3 // Project: OpenWalnut ( http://www.openwalnut.org )
4 //
5 // Copyright 2009 OpenWalnut Community, BSV@Uni-Leipzig and CNCF@MPI-CBS
6 // For more information see http://www.openwalnut.org/copying
7 //
8 // This file is part of OpenWalnut.
9 //
10 // OpenWalnut is free software: you can redistribute it and/or modify
11 // it under the terms of the GNU Lesser General Public License as published by
12 // the Free Software Foundation, either version 3 of the License, or
13 // (at your option) any later version.
14 //
15 // OpenWalnut is distributed in the hope that it will be useful,
16 // but WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 // GNU Lesser General Public License for more details.
19 //
20 // You should have received a copy of the GNU Lesser General Public License
21 // along with OpenWalnut. If not, see <http://www.gnu.org/licenses/>.
22 //
23 //---------------------------------------------------------------------------
24 
25 #include <memory>
26 
27 #include "WPropertyHelper.h"
28 
29 namespace WPropertyHelper
30 {
31  namespace PC_SELECTONLYONE
32  {
33  void addTo( WPropSelection prop )
34  {
35  prop->addConstraint( std::shared_ptr< WPropertyConstraintSelectOnlyOne< WPVBaseTypes::PV_SELECTION > >(
37  ) );
38  }
39  }
40 
41  namespace PC_NOTEMPTY
42  {
43  void addTo( WPropSelection prop )
44  {
45  prop->addConstraint( std::shared_ptr< WPropertyConstraintNotEmpty< WPVBaseTypes::PV_SELECTION > >(
47  ) );
48  }
49 
50  void addTo( WPropString prop )
51  {
52  prop->addConstraint( std::shared_ptr< WPropertyConstraintNotEmpty< WPVBaseTypes::PV_STRING > >(
54  ) );
55  }
56 
57  void addTo( WPropFilename prop )
58  {
59  prop->addConstraint( std::shared_ptr< WPropertyConstraintNotEmpty< WPVBaseTypes::PV_PATH > >(
61  ) );
62  }
63  }
64 
65  namespace PC_PATHEXISTS
66  {
67  void addTo( WPropFilename prop )
68  {
69  prop->addConstraint( std::shared_ptr< WPropertyConstraintPathExists< WPVBaseTypes::PV_PATH > >(
71  ) );
72  }
73  }
74 
75  namespace PC_ISDIRECTORY
76  {
77  void addTo( WPropFilename prop )
78  {
79  prop->addConstraint( std::shared_ptr< WPropertyConstraintIsDirectory< WPVBaseTypes::PV_PATH > >(
81  ) );
82  }
83  }
84 
85  namespace PC_CONFIRMOVERWRITE
86  {
87  void addTo( WPropFilename prop )
88  {
89  prop->addConstraint( std::shared_ptr< WPropertyConstraintConfirmOverwrite< WPVBaseTypes::PV_PATH > >(
91  ) );
92  }
93  }
94 
95  namespace PC_ISVALID
96  {
97  void addTo( WPropSelection prop )
98  {
99  prop->addConstraint( std::shared_ptr< WPropertyConstraintIsValid< WPVBaseTypes::PV_SELECTION > >(
101  ) );
102  }
103  }
104 }
This class allows constraining properties to be existing filenames.
This class allows constraining properties to be existing filenames.
This class allows constraining properties to only be set if a isValid method returns true.
This class allows constraining properties to be not empty.
This class allows constraining properties to be existing filenames.
This class allows constraining selection properties to not allow selection of multiple items.
void addTo(WPropFilename prop)
Add the PC_CONFIRMOVERWRITE constraint to the property.
void addTo(WPropFilename prop)
Add the PC_PATHEXISTS constraint to the property.
void addTo(WPropSelection prop)
Add the PC_ISVALID constraint to the property.
void addTo(WPropSelection prop)
Add the PC_NOTEMPTY constraint to the property.
void addTo(WPropFilename prop)
Add the PC_PATHEXISTS constraint to the property.
void addTo(WPropSelection prop)
Add the PC_SELECTONLYONE constraint to the property.
This namespace contains several utility functions to handle properties.