Bravo3\Orm\Mappers\Annotation\AnnotationMetadataParser::getSortables PHP Method

getSortables() public method

Get table sortables
public getSortables ( ) : Sortable[]
return Bravo3\Orm\Mappers\Metadata\Sortable[]
    public function getSortables()
    {
        $sortables = [];
        $annotation_sortables = $this->getEntityAnnotation()->sortable_by;
        foreach ($annotation_sortables as $sortable) {
            $conditions = [];
            if ($sortable instanceof SortableAnnotation) {
                if ($sortable->conditions) {
                    foreach ($sortable->conditions as $condition) {
                        if ($condition instanceof ConditionAnnotation) {
                            $this->testConditionAnnotation($condition);
                            $conditions[] = new Condition($condition->column, $condition->method, $condition->value, $condition->comparison);
                        } else {
                            throw new UnexpectedValueException(self::ERR_UNKNOWN_CONDITION);
                        }
                    }
                }
                $sortables[] = new Sortable($sortable->column, $conditions, $sortable->name);
            } elseif (is_string($sortable)) {
                $sortables[] = new Sortable($sortable);
            } else {
                throw new UnexpectedValueException(self::ERR_UNKNOWN_SORTABLE);
            }
        }
        return $sortables;
    }