def add_LeadingLowerProperties ( cls ):
    new_props = []
    existing_names = []
    for prop in cls.properties:
        existing_names.append( prop.name)
    for prop in cls.properties:
        name = prop.name[0].lower() + prop.name[1:]
        if name not in existing_names:  # lets make sure it's different
            existing_names.append ( name )
            new_props.append( property_t( name, prop.fget, prop.fset, prop.doc, prop.is_static ) )
    cls.properties.extend( new_props )
    def create_read_only_property( self, fget ):
        found = self.find_out_ro_prefixes( fget.name )
#         print "Prop Check", fget.name, ' ',
        if found in ( None, '' ):
#             print "NO"
            return None
#         print "YES"            
        ## Now we need to look for overlapping function declarations
        pure_names = []
        pure_names.append( fget.name[len( found ):].lower())
        funcs =  self.class_accessors( fget.parent )[1] 
        funcs.extend( self.inherited_accessors( fget.parent )[1] )
        for f in funcs:
            if f.name.lower() in pure_names:
#                 print"Overloaded Read Only Property", fget.name, f.name
                return None
        return decl_wrappers.property_t( self.find_out_property_name( fget, found ), fget )
    def create_property( self, fget, fset ):
#        print "**** IN Create Property"
        if not self.check_type_compatibility( fget, fset ):
            return None
        found = self.find_out_prefixes( fget.name, fset.name )
        if not found:
            return None
        ## Now we need to look for overlapping function declarations
        pure_names = []
        pure_names.append( fget.name[len( found[0] ):].lower())
        pure_names.append( fset.name[len( found[1] ):].lower())
        funcs =  self.class_accessors( fget.parent )[1] 
        funcs.extend( self.inherited_accessors( fget.parent )[1] )
        for f in funcs:
            if f.name.lower() in pure_names:
#                 print"Overloaded Property", fget.name, fset.name, f.name
                return None
        return decl_wrappers.property_t( self.find_out_property_name( fget, found[0] ), fget, fset )