XpressEngine Core  1.11.2
 All Classes Namespaces Files Functions Variables Pages
QueryArgumentValidator.class.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) NAVER <http://www.navercorp.com> */
3 
11 {
12 
18 
24 
29  var $notnull;
30 
35  var $filter;
36 
42 
49 
54  var $argument;
55 
62  function __construct($tag, $argument)
63  {
64  $this->argument = $argument;
65  $this->argument_name = $this->argument->getArgumentName();
66 
67  $this->default_value = $tag->attrs->default;
68  $this->notnull = $tag->attrs->notnull;
69  $this->filter = $tag->attrs->filter;
70  $this->min_length = $tag->attrs->min_length;
71  $this->max_length = $tag->attrs->max_length;
72  }
73 
74  function isIgnorable()
75  {
76  if(isset($this->default_value) || isset($this->notnull))
77  {
78  return FALSE;
79  }
80  return TRUE;
81  }
82 
83  function toString()
84  {
85  $validator = '';
86  if($this->filter)
87  {
88  $validator .= sprintf('${\'%s_argument\'}->checkFilter(\'%s\');' . "\n"
89  , $this->argument_name
90  , $this->filter
91  );
92  }
93  if($this->min_length)
94  {
95  $validator .= sprintf('${\'%s_argument\'}->checkMinLength(%s);' . "\n"
96  , $this->argument_name
97  , $this->min_length
98  );
99  }
100  if($this->max_length)
101  {
102  $validator .= sprintf('${\'%s_argument\'}->checkMaxLength(%s);' . "\n"
103  , $this->argument_name
104  , $this->max_length
105  );
106  }
107  if(isset($this->default_value))
108  {
109  $this->default_value = new DefaultValue($this->argument_name, $this->default_value);
110  if($this->default_value->isSequence())
111  $validator .= '$db = DB::getInstance(); $sequence = $db->getNextSequence(); ';
112  if($this->default_value->isOperation())
113  {
114  $validator .= sprintf('${\'%s_argument\'}->setColumnOperation(\'%s\');' . "\n"
115  , $this->argument_name
116  , $this->default_value->getOperation()
117  );
118  }
119  $validator .= sprintf('${\'%s_argument\'}->ensureDefaultValue(%s);' . "\n"
120  , $this->argument_name
121  , $this->default_value->toString()
122  );
123  }
124  if($this->notnull)
125  {
126  $validator .= sprintf('${\'%s_argument\'}->checkNotNull();' . "\n"
127  , $this->argument_name
128  );
129  }
130  return $validator;
131  }
132 
133 }
134 /* End of file QueryArgumentValidator.class.php */
135 /* Location: ./classes/xml/xmlquery/queryargument/validator/QueryArgumentValidator.class.php */