/** * @inheritDoc */ public function shouldSkipProperty(PropertyMetadata $property, Context $context) { if ($property->reflection && $property->reflection->getDeclaringClass()->isSubclassOf('Gravity\\CmsBundle\\Entity\\FieldableEntity')) { return false; } return $this->otherStrategy->shouldSkipProperty($property, $context); }
public function addExclusionStrategy(ExclusionStrategyInterface $strategy) { $this->assertMutable(); if (null === $this->exclusionStrategy) { $this->exclusionStrategy = $strategy; return $this; } if ($this->exclusionStrategy instanceof DisjunctExclusionStrategy) { $this->exclusionStrategy->addStrategy($strategy); return $this; } $this->exclusionStrategy = new DisjunctExclusionStrategy(array($this->exclusionStrategy, $strategy)); return $this; }
/** * @param array|string $groups */ public function setGroups($groups) { if (empty($groups)) { throw new \LogicException('The groups must not be empty.'); } $this->attributes->set('groups', (array) $groups); $strat = $this->exclusionStrategy->findStrategy(function ($strategy) { return $strategy instanceof GroupsExclusionStrategy; }); if ($strat instanceof GroupsExclusionStrategy) { $strat->setGroups((array) $groups); } else { $this->addExclusionStrategy(new GroupsExclusionStrategy((array) $groups)); } return $this; }