Esempio n. 1
0
 public function visitStructureElementEnter(PiBX_AST_Tree $tree)
 {
     $name = $tree->getName();
     $parentName = $tree->getParent()->getName();
     $attributeName = $parentName . $name;
     $selectName = ucfirst($parentName) . 'Select';
     $this->currentClassAttributes .= "\tprivate \$" . $attributeName . ";\n";
     $choiceConstant = $parentName . '_' . $name . '_CHOICE';
     $choiceConstant = strtoupper($choiceConstant);
     $setter = PiBX_Binding_Names::createSetterNameFor($tree);
     $getter = PiBX_Binding_Names::createGetterNameFor($tree);
     $methodName = ucfirst($attributeName);
     $methods = "\tpublic function if{$methodName}() {\n" . "\t\treturn \$this->{$parentName}Select == \$this->{$choiceConstant};\n" . "\t}\n";
     $methods .= "\tpublic function {$setter}(\${$attributeName}) {\n" . "\t\t\$this->set{$selectName}(\$this->{$choiceConstant});\n";
     if ($this->doTypeChecks) {
         $methods .= $this->typeChecks->getTypeCheckFor($tree->getType(), $attributeName);
     }
     $methods .= "\t\t\$this->{$attributeName} = \${$attributeName};\n" . "\t}\n";
     $methods .= "\tpublic function {$getter}() {\n" . "\t\treturn \$this->{$attributeName};\n" . "\t}\n";
     $this->currentClassMethods .= $methods;
     return true;
 }
Esempio n. 2
0
 public function visitTypeAttributeEnter(PiBX_AST_Tree $tree)
 {
     if ($tree->countChildren() == 0) {
         if (PiBX_ParseTree_BaseType::isBaseType($tree->getType())) {
             $this->xml .= '<value style="' . $tree->getStyle() . '"';
             $this->xml .= ' name="' . $tree->getName() . '"';
             $getter = PiBX_Binding_Names::createGetterNameFor($tree);
             $setter = PiBX_Binding_Names::createSetterNameFor($tree);
             $this->xml .= ' get-method="' . $getter . '"';
             $this->xml .= ' set-method="' . $setter . '"';
             $this->xml .= '/>';
         } else {
             $this->xml .= '<structure map-as="' . $tree->getType() . '"';
             $getter = PiBX_Binding_Names::createGetterNameFor($tree);
             $setter = PiBX_Binding_Names::createSetterNameFor($tree);
             $this->xml .= ' get-method="' . $getter . '"';
             $this->xml .= ' set-method="' . $setter . '"';
             $this->xml .= ' name="' . $tree->getName() . '"';
             $this->xml .= '/>';
         }
         return false;
     } else {
         return true;
     }
 }