Overview

Namespaces

  • None
  • PHP
  • picon

Classes

  • AbstractAjaxBehaviour
  • AbstractAssociatedMarkupSource
  • AbstractBehaviour
  • AbstractCallableOption
  • AbstractChoice
  • AbstractColumn
  • AbstractContextLoader
  • AbstractDatabaseDriver
  • AbstractInjectedDataProvider
  • AbstractJQueryBehaviour
  • AbstractJQueryUIBehaviour
  • AbstractLink
  • AbstractMarkupSource
  • AbstractMultipleChoice
  • AbstractOption
  • AbstractPageClassAuthorisationStrategy
  • AbstractRepeater
  • AbstractSingleChoice
  • AbstractTextComponent
  • AbstractToolbar
  • AbstractValidator
  • AjaxButton
  • AjaxEventBehaviour
  • AjaxFormComponentUpdateBehavior
  • AjaxFormSubmitBehavior
  • AjaxLink
  • AjaxRequestTarget
  • AllowAllAuthorisationStrategy
  • AnnotationRule
  • ApplicationConfigLoadListener
  • ApplicationContext
  • ApplicationContextLoadListener
  • ApplicationInitializer
  • ApplicationInitializerConfigLoadListenerCollection
  • ApplicationInitializerContextLoadListenerCollection
  • ApplicationProfile
  • Args
  • ArrayModel
  • ArrayOption
  • AttributeAppender
  • AttributeModifier
  • AutoContextLoader
  • AutoLoader
  • BasicModel
  • BooleanModel
  • BooleanOption
  • Border
  • BorderMarkupSourcingStratagy
  • BorderResolver
  • Button
  • CacheManager
  • CallbackAjaxCallDecorator
  • CallbackColumn
  • CallbackFunctionOption
  • CallbackOption
  • CallbackRowMapper
  • Check
  • CheckBox
  • CheckBoxGroup
  • CheckChoice
  • ChoiceRenderer
  • ClassNameRule
  • ClassNamespaceRule
  • ClassScanner
  • Comment
  • ComonDomainBase
  • Component
  • ComponentAfterRenderListenerCollection
  • ComponentAuthorisationListener
  • ComponentBeforeRenderListenerCollection
  • ComponentInitializationListenerCollection
  • ComponentInjector
  • ComponentInstantiationListenerCollection
  • ComponentRenderHeadListenerCollection
  • ComponentResolverHelper
  • ComponentTag
  • CompoundPropertyModel
  • Config
  • ConfigLoader
  • ContextLoaderFactory
  • DaoSupport
  • DataBaseTemplate
  • DataGridView
  • DataSource
  • DataSourceConfig
  • DataSourceFactory
  • DataSourceType
  • DataTable
  • DateField
  • DatePickerBehaviour
  • DefaultDataTable
  • DefaultJQueryUIBehaviour
  • DefaultMarkupSource
  • DefaultNotAuthorisedListener
  • DialogBehavior
  • DirectToPageComponentNotAuthorisedListener
  • DraggableBehaviour
  • DropDown
  • EmailAddressValidator
  • EmptyPanel
  • Enum
  • ExceptionPageRequestTarget
  • ExtendResolver
  • FeedbackMessage
  • FeedbackModel
  • FeedbackPanel
  • FileModel
  • FileUploadField
  • Form
  • FormComponent
  • FormComponentLabel
  • FormComponentPanel
  • FunctionOption
  • GridItem
  • GridView
  • HeaderContainer
  • HeaderPartContainer
  • HeaderResolver
  • HeaderResponse
  • HeaderToolbar
  • IdenticalValueValidator
  • Identifier
  • Injector
  • JQueryRenderHeadListener
  • JQueryUIRenderHeadListener
  • Label
  • LabeledMarkupContainer
  • Link
  • ListenerCollection
  • ListenerRequestResolver
  • ListenerRequestTarget
  • ListItem
  • ListMultiple
  • ListView
  • Localizer
  • ManualContextLoader
  • MarkupContainer
  • MarkupElement
  • MarkupLoader
  • MarkupParser
  • MarkupUtils
  • MaximumLengthValidator
  • MaximumValidator
  • MinimumLengthValidator
  • MinimumValidator
  • ModalWindow
  • MySqlDriver
  • MySqliDriver
  • NavigationLink
  • NavigationToolbar
  • Navigator
  • NumbericOption
  • NumericValidator
  • Objects
  • Options
  • PageInstanceRequestResolver
  • PageInstanceRequestTarget
  • PageMap
  • PageMapInitializationListenerCollection
  • PageNotFoundPage
  • PageNotFoundRequestTarget
  • PageRequestResolver
  • PageRequestTarget
  • PageRequestWithListenerTarget
  • PaginatingGridView
  • Panel
  • PanelMarkupSource
  • PanelResolver
  • PasswordField
  • PatternValidator
  • PiconApplication
  • PiconErrorHandler
  • PiconSerializer
  • PiconTag
  • PopupSettings
  • PropertyColumn
  • PropertyModel
  • PropertyOption
  • PropertyResolver
  • Radio
  • RadioChoice
  • RadioGroup
  • RangeLengthValidator
  • RangeValidator
  • RedirectRequestTarget
  • RepeatingView
  • RequestCycle
  • RequestResolverCollection
  • RequiredTextField
  • ResourceReference
  • ResourceRequestResolver
  • ResourceRequestTarget
  • SerializableClosure
  • SortableBehavior
  • StaticTabPanel
  • StringValidator
  • SubClassRule
  • Tab
  • TabCollection
  • TabPanel
  • TextArea
  • TextElement
  • TextField
  • TransparentMarkupContainer
  • ValidatableFormComponentWrapper
  • ValidationResponse
  • WebApplicationSecuritySettings
  • WebComponent
  • WebPage
  • WebRequest
  • WebResponse
  • WrappedCompoundModel
  • XMLDocument
  • XMLParser
  • XMLTag
  • XmlTagType

Interfaces

  • AjaxCallDecorator
  • ApplicationInitializerConfigLoadListener
  • ApplicationInitializerContextLoadListener
  • AuthorisationStrategy
  • Behaviour
  • BehaviourListener
  • CallDecoratorWrapper
  • ChoiceGroup
  • ClassScannerRule
  • Column
  • ComponentAfterRenderListener
  • ComponentAwareModel
  • ComponentBeforeRenderListener
  • ComponentInheritedModel
  • ComponentInitializationListener
  • ComponentInstantiationListener
  • ComponentNotAuthorisedListener
  • ComponentRenderHeadListener
  • ComponentResolver
  • CompoundModel
  • DatabaseDriver
  • DataBaseOperations
  • DataProvider
  • Detachable
  • Equalable
  • FormSubmitListener
  • FormSubmitter
  • Identifiable
  • InitializingBean
  • InjectOnWakeup
  • LinkListener
  • Listener
  • MarkupSource
  • Model
  • Pageable
  • PageMapInitializationListener
  • Request
  • RequestablePage
  • RequestResolver
  • RequestTarget
  • Response
  • RowMapper
  • Validatable
  • Validator
  • XmlElement

Exceptions

  • ConfigException
  • ConversionException
  • RestartRequestOnPageException
  • SQLException
  • UnAuthorisdeException
  • Overview
  • Namespace
  • Class
  • Tree
  • Deprecated
  • Todo
  1: <?php
  2: 
  3: /**
  4:  * Picon Framework
  5:  * http://code.google.com/p/picon-framework/
  6:  *
  7:  * Copyright (C) 2011-2012 Martin Cassidy <martin.cassidy@webquub.com>
  8: 
  9:  * Picon Framework is free software: you can redistribute it and/or modify
 10:  * it under the terms of the GNU General Public License as published by
 11:  * the Free Software Foundation, either version 3 of the License, or
 12:  * (at your option) any later version.
 13: 
 14:  * Picon Framework is distributed in the hope that it will be useful,
 15:  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 16:  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 17:  *  General Public License for more details.
 18: 
 19:  * You should have received a copy of the GNU General Public License
 20:  * along with Picon Framework.  If not, see <http://www.gnu.org/licenses/>.
 21:  * */
 22: 
 23: namespace picon;
 24: 
 25: /**
 26:  * Class representing an XML tag
 27:  *
 28:  * @author Martin Cassidy
 29:  * @package domain/xml
 30:  */
 31: class XMLTag extends ComonDomainBase implements XmlElement
 32: {
 33:     private $name;
 34:     private $tagType;
 35:     private $attributes = array();
 36:     private $children = array();
 37:     
 38:     /**
 39:      * Construct a new xml tag
 40:      * @param String $name the name of the tag
 41:      * @param Array $attributes optional, defaults to an empty array
 42:      */
 43:     public function __construct($name, $attributes = array())
 44:     {
 45:         $this->name = $name;
 46:         $this->attributes = $attributes;
 47:         
 48:         //Open by default
 49:         $this->tagType = new XmlTagType(XmlTagType::OPEN);
 50:     }
 51:     
 52:     /**
 53:      * Add a new XMLTag child
 54:      * @param XMLTag $child the child to add
 55:      */
 56:     public function addChild(XmlElement $child)
 57:     {
 58:         array_push($this->children, $child);
 59:     }
 60:     
 61:     /**
 62:      * Set the name of this tag
 63:      * @param String the name
 64:      */
 65:     public function setName($name)
 66:     {
 67:         $this->name = $name;
 68:     }
 69:     
 70:     /**
 71:      * Sets the attributes
 72:      * @param Array the attributes of this tag
 73:      */
 74:     public function setAttributes($attributes)
 75:     {
 76:         if(!is_array($attributes))
 77:         {
 78:             throw new \InvalidArgumentException(sprintf("Expected array, %s given.", gettype($attributes)));
 79:         }
 80:         $this->attributes = $attributes;
 81:     }
 82:     
 83:     public function getName()
 84:     {
 85:         return $this->name;
 86:     }
 87:     
 88:     public function getAttributes()
 89:     {
 90:         return $this->attributes;
 91:     }
 92:     
 93:     public function getChildren()
 94:     {
 95:         return $this->children;
 96:     }
 97:     
 98:     /**
 99:      * Does this tag have any children
100:      * @return boolean true if there are children 
101:      */
102:     public function hasChildren()
103:     {
104:         return count($this->children)>0;
105:     }
106:     
107:     /**
108:      * Set the type of tag this is: open, close, openclose
109:      * @param XmlTagType The type
110:      */
111:     public function setTagType(XmlTagType $type)
112:     {
113:         $this->tagType = $type;
114:     }
115:     
116:     public function isOpen()
117:     {
118:         return $this->tagType->equals(new XmlTagType(XmlTagType::OPEN));
119:     }
120:     
121:     public function isClose()
122:     {
123:         return $this->tagType->equals(new XmlTagType(XmlTagType::CLOSED));
124:     }
125:     
126:     public function isOpenClose()
127:     {
128:         return $this->tagType->equals(new XmlTagType(XmlTagType::OPENCLOSE));
129:     }
130:     
131:     public function put($name, $value)
132:     {
133:         $this->attributes[$name] = $value;
134:     }
135:     
136:     /**
137:      * Remove an attribute
138:      * @param type $name 
139:      */
140:     public function remove($name)
141:     {
142:         if(array_key_exists($name, $this->attributes))
143:         {
144:             unset($this->attributes[$name]);
145:         }
146:     }
147:     
148:     /**
149:      *
150:      * @param array $children 
151:      */
152:     public function setChildren($children)
153:     {
154:         Args::isArray($children, 'children');
155:         $this->children = $children;
156:     }
157:     
158:     public function getCharacterData()
159:     {
160:         $data = "";
161:         foreach($this->children as $child)
162:         {
163:             if($child instanceof TextElement)
164:             {
165:                 $data .= $child->getContent();
166:             }
167:         }
168:         return $data;
169:     }
170:     
171:     public function getChildByName($name)
172:     {
173:         foreach($this->children as $child)
174:         {
175:             if($child instanceof XMLTag)
176:             {
177:                 if($child->getName()==$name)
178:                 {
179:                     return $child;
180:                 }
181:                 if($child->hasChildren())
182:                 {
183:                     $found = $child->getChildByName($name);
184:                     if($found!=null)
185:                     {
186:                         return $found;
187:                     }
188:                 }
189:             }
190:         }
191:         return null;
192:     }
193: }
194: 
195: ?>
196: 
Picon Framework API documentation generated by ApiGen 2.7.0