/**
  * Overrides \NegawattEntityBaseNode::publicFieldsInfo().
  */
 public function publicFieldsInfo()
 {
     $public_fields = parent::publicFieldsInfo();
     $public_fields['meter_type'] = array('property' => 'field_meter_type');
     $public_fields['ip_address'] = array('property' => 'field_meter_ip_address');
     $public_fields['ip_port'] = array('property' => 'field_meter_port');
     $public_fields['meter_id'] = array('property' => 'field_meter_id');
     $public_fields['meter_mac_address'] = array('property' => 'field_mac_address');
     return $public_fields;
 }
 /**
  * {@inheritdoc}
  *
  * Override RestfulEntityBase::createEntity() to test if meter already exists,
  * to allow update existing nodes in stead of creating a copy.
  */
 public function createEntity()
 {
     $query = new EntityFieldQuery();
     $result = $query->entityCondition('entity_type', 'node')->propertyCondition('type', 'iec_meter')->fieldCondition('field_contract_id', 'value', $this->request['contract'])->fieldCondition('field_meter_code', 'value', $this->request['meter_code'])->fieldCondition('field_meter_serial', 'value', $this->request['meter_serial'])->range(0, 1)->execute();
     if (!empty($result['node'])) {
         // Node exists, update it.
         $id = key($result['node']);
         return parent::updateEntity($id);
     }
     // New node.
     return parent::createEntity();
 }