Ignore:
Timestamp:
Feb 16, 2011, 8:10:39 PM (13 years ago)
Author:
gav
Message:

Domain change, first draft of TaskProcedureRevisions.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/domain/TaskProcedure.groovy

    r798 r809  
    55
    66    Task linkedTask
    7     Person createdBy
    8     Person lastUpdatedBy
    9     Date dateCreated = new Date() // autoTimestamp
    10     Date lastUpdated = new Date() // autoTimestamp
    117
    128    def getDescription() { linkedTask.description }
     
    1511    List maintenanceActions = new ArrayList()
    1612    List documentReferences = new ArrayList()
     13    List revisions = new ArrayList()
    1714
    18     static hasMany = [tasks: Task,
    19                                     maintenanceActions: MaintenanceAction,
    20                                     documentReferences: DocumentReference]
     15    static hasMany = [maintenanceActions: MaintenanceAction,
     16                                    documentReferences: DocumentReference,
     17                                    revisions: TaskProcedureRevision]
    2118
    2219    def getMaintenanceActionLazyList() {
     
    2825    }
    2926
    30     static mappedBy = [tasks:"taskProcedure"]
     27    // The current revision number is equal to the count of the revisions created.
     28    // More efficient than loading the entire revisions list and using size().
     29    // WithTransaction is used to allow calling in a transaction however objects
     30    // in the current transaction must not trigger DataIntegrityViolationException.
     31    def getRevision() {
     32        def revision
     33        TaskProcedure.withTransaction {
     34            revision = TaskProcedureRevision.countByTaskProcedure(this)
     35        }
     36        return revision
     37    }
     38
     39    // Get a specific revision.
     40    def getRevision(revision) {
     41        def taskProcedureRevision
     42        TaskProcedure.withTransaction {
     43            taskProcedureRevision = TaskProcedureRevision.findByTaskProcedureAndRevision(this, revision)
     44        }
     45        return taskProcedureRevision
     46    }
     47
     48    // Get the latest revision of this procedure.
     49    def getLatestRevision() {
     50        def taskProcedureRevision
     51        TaskProcedure.withTransaction {
     52            taskProcedureRevision = TaskProcedureRevision.findByTaskProcedureAndRevision(this, this.revision)
     53        }
     54        return taskProcedureRevision
     55    }
    3156
    3257    static mapping = {
     58        linkedTask lazy:false
     59        revisions batchSize: 10
    3360        maintenanceActions cascade:"all-delete-orphan"
    3461        documentReferences cascade:"all-delete-orphan"
     62        revisions cascade:"all-delete-orphan"
    3563    }
    3664
Note: See TracChangeset for help on using the changeset viewer.