Gets names of all properties implemented in specified object.

        :param obj: an objec to introspect.

        :return: a list with property names.

def get_property_names(obj):
        """
        Gets names of all properties implemented in specified object.

        :param obj: an objec to introspect.

        :return: a list with property names.
        """
        property_names = []
        
        for property_name in dir(obj):

            property = getattr(obj, property_name)

            if PropertyReflector._is_property(property, property_name):
                property_names.append(property_name)

        return property_names