Index: trunk/grails-app/domain/Address.groovy
===================================================================
--- trunk/grails-app/domain/Address.groovy	(revision 397)
+++ trunk/grails-app/domain/Address.groovy	(revision 397)
@@ -0,0 +1,38 @@
+class Address {
+
+    AddressType addressType
+
+    Manufacturer manufacturer
+    Supplier supplier
+    Person person
+    Site site
+
+    String street1 = ''
+    String street2 = ''
+    String city = ''
+    String state = ''
+    String postCode = ''
+    String country = ''
+
+//     hasMany = []
+
+    static belongsTo = [Manufacturer, Supplier, Person, Site]
+
+    static constraints = {
+        street1(blank:false,maxSize:50)
+        street2(maxSize:50)
+        city(blank:false,maxSize:50)
+        state(blank:false,maxSize:50)
+        postCode(blank:false,maxSize:50)
+        country(blank:false,maxSize:50)
+        manufacturer(nullable:true)
+        supplier(nullable:true)
+        person(nullable:true)
+        site(nullable:true)
+    }
+
+    String toString() {
+        "${this.addressType}: ${this.street1}, ${this.city}"
+    }
+
+}
Index: trunk/grails-app/domain/AddressType.groovy
===================================================================
--- trunk/grails-app/domain/AddressType.groovy	(revision 397)
+++ trunk/grails-app/domain/AddressType.groovy	(revision 397)
@@ -0,0 +1,16 @@
+class AddressType {
+    String name
+    String description = ""
+    boolean isActive = true
+
+//     static hasMany = [ : ]
+
+    static constraints = {
+        name(maxSize:50,unique:true,blank:false)
+        description(maxSize:100)
+    }
+
+    String toString() {
+        "${this.name}"
+    }
+}
Index: trunk/grails-app/domain/Manufacturer.groovy
===================================================================
--- trunk/grails-app/domain/Manufacturer.groovy	(revision 389)
+++ trunk/grails-app/domain/Manufacturer.groovy	(revision 397)
@@ -5,5 +5,5 @@
     boolean isActive = true
 
-    static hasMany = [inventoryItems: InventoryItem]
+    static hasMany = [inventoryItems: InventoryItem, addresses: Address]
 
     static belongsTo = [InventoryItem]
Index: trunk/grails-app/domain/Person.groovy
===================================================================
--- trunk/grails-app/domain/Person.groovy	(revision 389)
+++ trunk/grails-app/domain/Person.groovy	(revision 397)
@@ -5,5 +5,6 @@
                         taskModifications: TaskModification,
                         entries: Entry,
-                        tasks: Task]
+                        tasks: Task,
+                        addresses: Address]
 
     static belongsTo = [Authority]
Index: trunk/grails-app/domain/Site.groovy
===================================================================
--- trunk/grails-app/domain/Site.groovy	(revision 389)
+++ trunk/grails-app/domain/Site.groovy	(revision 397)
@@ -8,5 +8,6 @@
     static hasMany = [sections: Section,
                                 siteExtendedAttributes: SiteExtendedAttribute,
-                                inventoryStores: InventoryStore]
+                                inventoryStores: InventoryStore,
+                                addresses: Address]
 
 //     static belongsTo = []
Index: trunk/grails-app/domain/Supplier.groovy
===================================================================
--- trunk/grails-app/domain/Supplier.groovy	(revision 389)
+++ trunk/grails-app/domain/Supplier.groovy	(revision 397)
@@ -5,5 +5,5 @@
     boolean isActive = true
 
-    static hasMany = [inventoryItems: InventoryItem]
+    static hasMany = [inventoryItems: InventoryItem, addresses: Address]
 
     static belongsTo = [InventoryItem]
