From 08a39731a202cd36f71e635fc299ea2d984f6435 Mon Sep 17 00:00:00 2001
From: David Maus <maus@hab.de>
Date: Mon, 6 Aug 2012 13:25:20 +0200
Subject: [PATCH] New functions: Check if concrete nested records contain a
 record

* php/HAB/Pica/Record/LocalRecord.php (containsCopyRecord): New
function. Return true if local record contains a copy record.
* php/HAB/Pica/Record/TitleRecord.php (containsLocalRecord): New
function. Return true if title record contains a local record.
---
 src/php/HAB/Pica/Record/LocalRecord.php               | 10 ++++++++++
 src/php/HAB/Pica/Record/TitleRecord.php               | 11 +++++++++++
 .../php/HAB/Pica/Record/LocalRecordTest.php           |  8 ++++++++
 .../php/HAB/Pica/Record/TitleRecordTest.php           |  8 ++++++++
 4 files changed, 37 insertions(+)

diff --git a/src/php/HAB/Pica/Record/LocalRecord.php b/src/php/HAB/Pica/Record/LocalRecord.php
index 43ff535..c959c99 100644
--- a/src/php/HAB/Pica/Record/LocalRecord.php
+++ b/src/php/HAB/Pica/Record/LocalRecord.php
@@ -121,6 +121,16 @@ class LocalRecord extends NestedRecord {
     return null;
   }
 
+  /**
+   * Return true if local record contains the copy record.
+   *
+   * @param  \HAB\Pica\Record\CopyRecord $record Copy record
+   * @return boolean
+   */
+  public function containsCopyRecord (\HAB\Pica\Record\CopyRecord $record) {
+    return $this->containsRecord($record);
+  }
+
   /**
    * Compare two copy records.
    *
diff --git a/src/php/HAB/Pica/Record/TitleRecord.php b/src/php/HAB/Pica/Record/TitleRecord.php
index 236d26c..6ec2c76 100644
--- a/src/php/HAB/Pica/Record/TitleRecord.php
+++ b/src/php/HAB/Pica/Record/TitleRecord.php
@@ -178,6 +178,16 @@ class TitleRecord extends NestedRecord {
     }
   }
 
+  /**
+   * Return true if title record contains the local record.
+   *
+   * @param  \HAB\Pica\Record\LocalRecord $record Local record
+   * @return boolean
+   */
+  public function containsLocalRecord (\HAB\Pica\Record\LocalRecord $record) {
+      return $this->containsRecord($record);
+  }
+
   /**
    * Compare two local records.
    *
@@ -192,4 +202,5 @@ class TitleRecord extends NestedRecord {
   protected function compareRecords (\HAB\Pica\Record\Record $a, \HAB\Pica\Record\Record $b) {
     return $a->getILN() - $b->getILN();
   }
+
 }
\ No newline at end of file
diff --git a/src/tests/unit-tests/php/HAB/Pica/Record/LocalRecordTest.php b/src/tests/unit-tests/php/HAB/Pica/Record/LocalRecordTest.php
index b7e0b15..98536af 100644
--- a/src/tests/unit-tests/php/HAB/Pica/Record/LocalRecordTest.php
+++ b/src/tests/unit-tests/php/HAB/Pica/Record/LocalRecordTest.php
@@ -103,6 +103,14 @@ class LocalRecordTest extends \PHPUnit_FrameWork_TestCase {
     $this->assertEquals(10, $r->getMaximumOccurrenceOf('144Z'));
   }
 
+  public function testContainsCopyRecord () {
+    $r = new LocalRecord();
+    $c = new CopyRecord();
+    $this->assertFalse($r->containsCopyRecord($c));
+    $r->addCopyRecord($c);
+    $this->assertTrue($r->containsCopyRecord($c));
+  }
+
   ///
 
   /**
diff --git a/src/tests/unit-tests/php/HAB/Pica/Record/TitleRecordTest.php b/src/tests/unit-tests/php/HAB/Pica/Record/TitleRecordTest.php
index 8b418c3..10159be 100644
--- a/src/tests/unit-tests/php/HAB/Pica/Record/TitleRecordTest.php
+++ b/src/tests/unit-tests/php/HAB/Pica/Record/TitleRecordTest.php
@@ -101,4 +101,12 @@ class TitleRecordTest extends \PHPUnit_FrameWork_TestCase {
     $r->setPPN('something else');
     $this->assertEquals('something else', $r->getPPN());
   }
+
+  public function testContainsLocalRecord () {
+      $r = new TitleRecord();
+      $l = new LocalRecord();
+      $this->assertFalse($r->containsLocalRecord($l));
+      $r->addLocalRecord($l);
+      $this->assertTrue($r->containsLocalRecord($l));
+  }
 }
-- 
GitLab