Wtx ~ Wt Extension Library
WtxLib
FieldVar.cpp
1 /**************************************************************************
2 ###########################################################################
3 ##
4 ## $SHOWOFFDB_BEGIN_LICENSE$
5 ## Copyright (C) 2011 Lorimark Solutions, LLC and/or its subsidiary(-ies).
6 ## All rights reserved.
7 ## Contact: Lorimark Solutions, LLC (info@showoff-db.org)
8 ##
9 ## This file is part of the Showoff Database Application Framework.
10 ##
11 ## Commercial Usage
12 ## Licensees holding valid ShowoffDB Commercial licenses may use this file in
13 ## accordance with the ShowoffDB Commercial License Agreement provided with the
14 ## Software or, alternatively, in accordance with the terms contained in
15 ## a written agreement between you and Lorimark Solutions, LLC.
16 ##
17 ## GNU Lesser General Public License Usage
18 ## Alternatively, this file may be used under the terms of the GNU Lesser
19 ## General Public License version 2.1 as published by the Free Software
20 ## Foundation and appearing in the file LICENSE.LGPL included in the
21 ## packaging of this file. Please review the following information to
22 ## ensure the GNU Lesser General Public License version 2.1 requirements
23 ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 ##
25 ## In addition, as a special exception, Lorimark Solutions, LLC gives
26 ## you certain additional rights. These rights are described in the
27 ## Lorimark Solutions, LLC ShowoffDB LGPL Exception version 1.0, included in
28 ## the file LGPL_EXCEPTION.txt in this package.
29 ##
30 ## GNU General Public License Usage
31 ## Alternatively, this file may be used under the terms of the GNU
32 ## General Public License version 3.0 as published by the Free Software
33 ## Foundation and appearing in the file LICENSE.GPL included in the
34 ## packaging of this file. Please review the following information to
35 ## ensure the GNU General Public License version 3.0 requirements will be
36 ## met: http://www.gnu.org/copyleft/gpl.html.
37 ##
38 ## If you have questions regarding the use of this file, please contact
39 ## Lorimark Solutions, LLC at info@showoff-db.org.
40 ## $SHOWOFFDB_END_LICENSE$
41 ##
42 #############################################################################
43 ****************************************************************************/
44 
45 #include <Wt/Json/Object.h>
46 #include <Wt/Json/Value.h>
47 #include <Wt/Json/Parser.h>
48 #include <Wt/Json/Serializer.h>
49 
50 #include "FieldVar.h"
51 
52 std::string Wtx::Dbo::FieldVar::value( const std::string & field ) const
53 {
54  std::string retVal;
55 
56  if( Field::value() != "" )
57  {
58  Wt::Json::Object jobj;
59  try {
60  Wt::Json::parse( Field::value(), jobj );
61  }
62  catch( std::exception & e )
63  {
64 // std::cout << __FILE__ << ":" << __LINE__ << " " << e.what() << std::endl;
65  }
66 
67  retVal = jobj.get(field).orIfNull("");
68 
69  }
70 
71  return retVal;
72 }
73 
74 void Wtx::Dbo::FieldVar::setValue( const std::string & value )
75 {
76  Field<std::string>::setValue( value );
77 }
78 
79 void Wtx::Dbo::FieldVar::setValue( const std::string & field, const std::string & val )
80 {
81  Wt::Json::Object jobj;
82  try {
83  Wt::Json::parse( Field::value(), jobj );
84  }
85  catch( std::exception & e )
86  {
87 // std::cout << __FILE__ << ":" << __LINE__ << " " << e.what() << std::endl;
88  }
89 
90  jobj[field] = Wt::WString(val);
91 
92  setValue( Wt::Json::serialize(jobj) );
93 
94 } // endvoid Wtx::Dbo::FieldVar::setValue( const std::string & field, const std::string & val )
95 
96 void Wtx::Dbo::FieldVar::setValue( const std::string & field, int val )
97 {
98  Wt::Json::Object jobj;
99  try {
100  Wt::Json::parse( Field::value(), jobj );
101  }
102  catch( std::exception & e )
103  {
104 // std::cout << __FILE__ << ":" << __LINE__ << " " << e.what() << std::endl;
105  }
106 
107  jobj[field] = Wt::WString("{1}").arg(val);
108 
109  setValue( Wt::Json::serialize(jobj) );
110 
111 } // endvoid Wtx::Dbo::FieldVar::setValue( const std::string & field, const std::string & val )
112 
113