Ejemplo n.º 1
0
 /**
  * {@inheritdoc}
  */
 public function match(ModelInterface $model = null, PropertyValueBag $input = null, PropertyInterface $property = null, LegendInterface $legend = null)
 {
     if ($property === null) {
         return false;
     }
     /** @var $model \MetaModels\DcGeneral\Data\Model */
     $nativeItem = $model->getItem();
     $metaModel = $nativeItem->getMetaModel();
     if ($metaModel->hasVariants() && !$nativeItem->isVariantBase()) {
         return !in_array($property->getName(), array_keys($metaModel->getInVariantAttributes()));
     }
     return true;
 }
Ejemplo n.º 2
0
 /**
  * Check if two models have the same values in all properties.
  *
  * @param ModelInterface $objModel1 The first model to compare.
  *
  * @param ModelInterface $objModel2 The second model to compare.
  *
  * @return boolean True - If both models are same, false if not.
  *
  * @throws \InvalidArgumentException If not both models are compatible with this data provider.
  */
 public function sameModels($objModel1, $objModel2)
 {
     if (!($objModel1 instanceof Model && $objModel2 instanceof Model)) {
         throw new \InvalidArgumentException('Passed models are not valid.');
     }
     $objNative1 = $objModel1->getItem();
     $objNative2 = $objModel2->getItem();
     if ($objNative1->getMetaModel() != $objNative2->getMetaModel()) {
         return false;
     }
     foreach ($objNative1->getMetaModel()->getAttributes() as $objAttribute) {
         if ($objNative1->get($objAttribute->getColName()) != $objNative2->get($objAttribute->getColName())) {
             return false;
         }
     }
     return true;
 }