private function getCollection(DataProviderInterface $dataProvider, EnvironmentInterface $environment)
    {
        $collection = $dataProvider->getEmptyCollection();

        foreach ($environment->getDataDefinition()->getPropertiesDefinition() as $property) {
            if (!$this->isPropertyAllowed($property, $environment)) {
                continue;
            }

            $model = $dataProvider->getEmptyModel();
            $model->setID($property->getName());
            $model->setProperty(
                'name',
                $property->getLabel() ?: $property->getName()
            );
            $model->setProperty(
                'description',
                $property->getDescription() ?: $property->getName()
            );

            $this->handlePropertyFileTree($property);
            $this->handlePropertyFileTreeOrder($property, $model);

            $collection->offsetSet($collection->count(), $model);
        }

        return $collection;
    }