public void parsePropertyElement ( Element ele , BeanDefinition bd ) { String propertyName = ele . getAttribute ( NAME_ATTRIBUTE ) ; if ( ! StringUtils . hasLength ( propertyName ) ) { error ( "Tag 'property' must have a 'name' attribute" , ele ) ; return ; } this . parseState . push ( new PropertyEntry ( propertyName ) ) ; try { if ( bd . getPropertyValues ( ) . contains ( propertyName ) ) { error ( "Multiple 'property' definitions for property '" + propertyName + "'" , ele ) ; return ; } Object val = parsePropertyValue ( ele , bd , propertyName ) ; PropertyValue pv = new PropertyValue ( propertyName , val ) ; parseMetaElements ( ele , pv ) ; pv . setSource ( extractSource ( ele ) ) ; bd . getPropertyValues ( ) . addPropertyValue ( pv ) ; } finally { this . parseState . pop ( ) ; } }
Parse a property element .