OpenStudio:utilities
Loading...
Searching...
No Matches
openstudio::WorkspaceObjectOrder Class Reference

#include <WorkspaceObjectOrder.hpp>

Public Member Functions

boost::optional< std::vector< Handle > > directOrder () const
 returns the direct order. return value is false if not ordering this way.
 
bool erase (const Handle &handle)
 returns false if not ordering directly, or request is otherwise invalid
 
bool erase (IddObjectType type)
 returns false if not ordering by user-specified IddObjectType, or request is otherwise invalid.
 
boost::optional< std::vector< IddObjectType > > iddOrder () const
 returns the user-specified order of IddObjectTypes.
 
boost::optional< unsigned > indexInOrder (const Handle &handle) const
 Returns index of handle in order, if its order is directly specified.
 
bool inOrder (const Handle &handle) const
 Returns whether order of handle is directly specified.
 
bool insert (const Handle &handle, const Handle &insertBeforeHandle)
 returns false if not ordering directly
 
bool insert (const Handle &handle, unsigned index)
 returns false if not ordering directly
 
bool insert (IddObjectType type, IddObjectType insertBeforeType)
 returns false if not ordering by user-specified IddObjectType order.
 
bool insert (IddObjectType type, unsigned index)
 returns false if not ordering by user-specified IddObjectType order.
 
bool isDirectOrder () const
 Returns whether or not direct ordered. Otherwise, is ordered by IddObjectType.
 
bool move (const Handle &handle, const Handle &insertBeforeHandle)
 returns false if not ordering directly, or request is otherwise invalid
 
bool move (const Handle &handle, unsigned index)
 returns false if not ordering directly, or request is otherwise invalid
 
bool move (IddObjectType type, IddObjectType insertBeforeType)
 move type from current location and place before 'insertBeforeType'.
 
bool move (IddObjectType type, unsigned index)
 move type from current location to index.
 
bool orderByIddEnum () const
 returns whether or not currently ordering by IddObjectType
 
bool push_back (const Handle &handle)
 returns false if not ordering directly
 
bool push_back (IddObjectType type)
 returns false if not ordering by user-specified IddObjectType order, or request is otherwise invalid.
 
void setDirectOrder (const std::vector< Handle > &order)
 deletes other ordering options and sets direct order
 
void setIddOrder (const std::vector< IddObjectType > &order)
 deletes other ordering options and sets IddObjectType order
 
void setOrderByIddEnum ()
 deletes other ordering options and orders by IddObjectType
 
std::vector< Handlesort (const std::vector< Handle > &handles) const
 
std::vector< openstudio::WorkspaceObjectsort (const std::vector< openstudio::WorkspaceObject > &objects) const
 
bool swap (const Handle &handle1, const Handle &handle2)
 returns false if not ordering directly, or request is otherwise invalid
 
bool swap (IddObjectType type1, IddObjectType type2)
 returns false if not ordering by user-specified IddObjectType, or request is otherwise invalid.
 
virtual ~WorkspaceObjectOrder ()=default
 

Protected Member Functions

 WorkspaceObjectOrder (const std::shared_ptr< detail::WorkspaceObjectOrder_Impl > &impl)
 

Detailed Description

Public interface of WorkspaceObjectOrder.

Accessed through Workspace as in:

WorkspaceObjectOrder orderer = workspace.order();
Workspace holds a collection of interconnected WorkspaceObjects.
Definition Workspace.hpp:67
Public interface of WorkspaceObjectOrder.
Definition WorkspaceObjectOrder.hpp:144

This interface is provided to let users specify the order in which objects and handles are returned by Workspace. Sorting is accessed through the workspace itself. For instance,

ws.objects(true)
std::vector< WorkspaceObject > objects(bool sorted=false) const
Returns all the objects in this Workspace, excluding any version objects.

Constructor & Destructor Documentation

◆ ~WorkspaceObjectOrder()

virtual openstudio::WorkspaceObjectOrder::~WorkspaceObjectOrder ( )
virtualdefault

◆ WorkspaceObjectOrder()

openstudio::WorkspaceObjectOrder::WorkspaceObjectOrder ( const std::shared_ptr< detail::WorkspaceObjectOrder_Impl > & impl)
protected

Member Function Documentation

◆ directOrder()

boost::optional< std::vector< Handle > > openstudio::WorkspaceObjectOrder::directOrder ( ) const

returns the direct order. return value is false if not ordering this way.

◆ erase() [1/2]

bool openstudio::WorkspaceObjectOrder::erase ( const Handle & handle)

returns false if not ordering directly, or request is otherwise invalid

◆ erase() [2/2]

bool openstudio::WorkspaceObjectOrder::erase ( IddObjectType type)

returns false if not ordering by user-specified IddObjectType, or request is otherwise invalid.

◆ iddOrder()

boost::optional< std::vector< IddObjectType > > openstudio::WorkspaceObjectOrder::iddOrder ( ) const

returns the user-specified order of IddObjectTypes.

return value is false if not ordering this way.

◆ indexInOrder()

boost::optional< unsigned > openstudio::WorkspaceObjectOrder::indexInOrder ( const Handle & handle) const

Returns index of handle in order, if its order is directly specified.

◆ inOrder()

bool openstudio::WorkspaceObjectOrder::inOrder ( const Handle & handle) const

Returns whether order of handle is directly specified.

◆ insert() [1/4]

bool openstudio::WorkspaceObjectOrder::insert ( const Handle & handle,
const Handle & insertBeforeHandle )

returns false if not ordering directly

◆ insert() [2/4]

bool openstudio::WorkspaceObjectOrder::insert ( const Handle & handle,
unsigned index )

returns false if not ordering directly

◆ insert() [3/4]

bool openstudio::WorkspaceObjectOrder::insert ( IddObjectType type,
IddObjectType insertBeforeType )

returns false if not ordering by user-specified IddObjectType order.

◆ insert() [4/4]

bool openstudio::WorkspaceObjectOrder::insert ( IddObjectType type,
unsigned index )

returns false if not ordering by user-specified IddObjectType order.

◆ isDirectOrder()

bool openstudio::WorkspaceObjectOrder::isDirectOrder ( ) const

Returns whether or not direct ordered. Otherwise, is ordered by IddObjectType.

◆ move() [1/4]

bool openstudio::WorkspaceObjectOrder::move ( const Handle & handle,
const Handle & insertBeforeHandle )

returns false if not ordering directly, or request is otherwise invalid

◆ move() [2/4]

bool openstudio::WorkspaceObjectOrder::move ( const Handle & handle,
unsigned index )

returns false if not ordering directly, or request is otherwise invalid

◆ move() [3/4]

bool openstudio::WorkspaceObjectOrder::move ( IddObjectType type,
IddObjectType insertBeforeType )

move type from current location and place before 'insertBeforeType'.

returns false if not ordering by user-specified IddObjectType order, or request is otherwise invalid. type must already be in the order. if insertBeforeType is not in the ordering, places type at the end.

◆ move() [4/4]

bool openstudio::WorkspaceObjectOrder::move ( IddObjectType type,
unsigned index )

move type from current location to index.

returns false if not ordering by user-specified IddObjectType order, or request is otherwise invalid. type must already be in the order. if index is invalid, places type at the end.

◆ orderByIddEnum()

bool openstudio::WorkspaceObjectOrder::orderByIddEnum ( ) const

returns whether or not currently ordering by IddObjectType

◆ push_back() [1/2]

bool openstudio::WorkspaceObjectOrder::push_back ( const Handle & handle)

returns false if not ordering directly

◆ push_back() [2/2]

bool openstudio::WorkspaceObjectOrder::push_back ( IddObjectType type)

returns false if not ordering by user-specified IddObjectType order, or request is otherwise invalid.

◆ setDirectOrder()

void openstudio::WorkspaceObjectOrder::setDirectOrder ( const std::vector< Handle > & order)

deletes other ordering options and sets direct order

◆ setIddOrder()

void openstudio::WorkspaceObjectOrder::setIddOrder ( const std::vector< IddObjectType > & order)

deletes other ordering options and sets IddObjectType order

◆ setOrderByIddEnum()

void openstudio::WorkspaceObjectOrder::setOrderByIddEnum ( )

deletes other ordering options and orders by IddObjectType

◆ sort() [1/2]

std::vector< Handle > openstudio::WorkspaceObjectOrder::sort ( const std::vector< Handle > & handles) const

◆ sort() [2/2]

std::vector< openstudio::WorkspaceObject > openstudio::WorkspaceObjectOrder::sort ( const std::vector< openstudio::WorkspaceObject > & objects) const

◆ swap() [1/2]

bool openstudio::WorkspaceObjectOrder::swap ( const Handle & handle1,
const Handle & handle2 )

returns false if not ordering directly, or request is otherwise invalid

◆ swap() [2/2]

bool openstudio::WorkspaceObjectOrder::swap ( IddObjectType type1,
IddObjectType type2 )

returns false if not ordering by user-specified IddObjectType, or request is otherwise invalid.