AbstractTaskFactory::LegalPointVector AbstractTaskFactory::getValidFinishTypes() const { LegalPointVector v; v.insert(v.end(), m_finish_types.begin(), m_finish_types.end()); return v; }
AbstractTaskFactory::LegalPointVector AbstractTaskFactory::getValidIntermediateTypes() const { LegalPointVector v; v.insert(v.end(), m_intermediate_types.begin(), m_intermediate_types.end()); return v; }
AbstractTaskFactory::LegalPointVector AbstractTaskFactory::getValidStartTypes() const { LegalPointVector v; v.insert(v.end(), m_start_types.begin(), m_start_types.end()); return v; }
AbstractTaskFactory::LegalPointVector AbstractTaskFactory::getValidIntermediateTypes(unsigned position) const { LegalPointVector v; if (!is_position_intermediate(position)) return v; if (get_ordered_task_behaviour().homogeneous_tps && (position>1) && (m_task.task_size()>1)) { LegalPointType_t type = getType(*m_task.get_tp(1)); if (validIntermediateType(type)) { v.push_back(type); return v; } } if (validAbstractType(POINT_AAT, position) || validAbstractType(POINT_AST, position)) v.insert(v.end(), m_intermediate_types.begin(), m_intermediate_types.end()); return v; }
AbstractTaskFactory::LegalPointVector AbstractTaskFactory::getValidTypes(unsigned position) const { LegalPointVector v; if (validAbstractType(POINT_START, position)) v.insert(v.end(), m_start_types.begin(), m_start_types.end()); LegalPointVector i = getValidIntermediateTypes(position); if (!i.empty()) v.insert(v.end(), i.begin(), i.end()); if (validAbstractType(POINT_FINISH, position)) v.insert(v.end(), m_finish_types.begin(), m_finish_types.end()); return v; }