'Get all configured JobToolConfigurations for a tool ID, or, if given
a list of IDs, the JobToolConfigurations for the first id in ``ids``
matching a tool definition.
.. note:: You should not mix tool shed tool IDs, versionless tool shed
IDs, and tool config tool IDs that refer to the same tool.
:param ids: Tool ID or IDs to fetch the JobToolConfiguration of.
:type ids: list or str.
:returns: list -- JobToolConfiguration Bunches representing <tool> elements matching the specified ID(s).
Example tool ID strings include:
* Full tool shed id: ``toolshed.example.org/repos/nate/filter_tool_repo/filter_tool/1.0.0``
* Tool shed id less version: ``toolshed.example.org/repos/nate/filter_tool_repo/filter_tool``
* Tool config tool id: ``filter_tool``'

def get_job_tool_configurations(self, ids):

    rval = []
    ids = util.listify(ids)
    for id in ids:
        if (id in self.tools):
            for job_tool_configuration in self.tools[id]:
                if (not job_tool_configuration.params):
                    break
            else:
                rval.append(self.default_job_tool_configuration)
            rval.extend(self.tools[id])
            break
    else:
        rval.append(self.default_job_tool_configuration)
    return rval
