/** * Checks if the schema address of the given address * is equal to the schema address of this. * * @param UcAddressesSchemaAddress $address * The address to compare against. * * @access public * @return boolean * TRUE if the addresses are considered equal. * FALSE otherwise. */ public function compareAddress(UcAddressesSchemaAddress $address) { $fields_to_compare =& drupal_static('UcAddressesSchemaAddress::compareAddress', array()); if ($address === $this) { // No comparison needed. Given address object is exactly the same. return TRUE; } $fieldsDataThisAddress = $this->getRawFieldData(); $fieldsDataOtherAddress = $address->getRawFieldData(); // Find out which field to compare. if (count($fields_to_compare) < 1) { $fields_data = self::getDefinedFields(); foreach ($fields_data as $fieldName => $field_data) { if ($field_data['compare']) { $fields_to_compare[] = $fieldName; } } } foreach ($fields_to_compare as $fieldName) { if ($fieldsDataThisAddress[$fieldName] != $fieldsDataOtherAddress[$fieldName]) { return FALSE; } } return TRUE; }