2012-06-21 3 views
0

저는 클래스의 각 객체에 대해 클로저를 호출 한 다음 클로저에 의해 반환 된 객체를 표시하려고합니다. 폐쇄입니다 : 내가 만든클래스의 각 객체에 대한 클로저

def activitiesPlanned={ 
     cal.set(this.plannedStartDate) 
     def planDateMonth=cal.get(Calendar.MONTH) 
     def planDateYear=cal.get(Calendar.YEAR) 
    } 

호출은 다음과 같습니다

def getActivitiesPlanned(int month,int year){ 
     countActivitiesPlanned=ProgressData.each{it.activitiesPlanned.findAllWhere(planDateMonth:month,planDateYear:year).count()} 
    println countActivitiesPlanned 
} 

도메인 클래스 // 나는 점점하지 오전

package main 
class ProgressData { 
//String milestoneName 
String taskId //Added later 
String taskDescription 
String taskCategory 
Integer plannedHours 
Integer actualHours  
Date plannedStartDate  
Date actualStartDate  
Date plannedEndDate  
Date actualEndDate  
Integer stepsCreated=0  
Integer stepsExecuted=0 
String status //Originally Completed 
String assignedTo 
//String unplanned 
String accepted //Added later 
def ProgressData(){} 

static constraints = { 
    //milestoneName(blank:false) 
    taskDescription(blank:false) 
    taskCategory(blank:false) 
    plannedHours(blank:false) 
    actualHours(blank:false) 
    id generator:"assigned",name:"taskId" 
} 

Calendar cal=Calendar.getInstance() 
def activitiesPlanned={ 
     cal.set(this.plannedStartDate) 
     def planDateMonth=cal.get(Calendar.MONTH) 
     def planDateYear=cal.get(Calendar.YEAR) 
    } 
static hasMany=[defects:DefectData] 

}

편집 : "그런 속성을 : 클래스의 activitiesPlanned : main.ProgressData 가능한 해결책 : activitiesPlanned ". 어떤 문제가있을 수 있습니까?

+0

Progressdata가 도메인 클래스입니까? 전체 코드 예제를 게시 할 수 있습니다. – matcauthon

+0

예. ProgressData는 제 도메인 클래스입니다. 나는 도메인 클래스 코드를 게시 할 것이다. –

답변

0

난 당신이 .each를 {} 싶지 않은 생각이 아니라 .sum {}

예 : 당신이 그것에 .each{}을 사용할 수 있도록

def listThing = [1,2,3] 
def sumOfList = listThing.sum{it} 
assert sumOfList == 6 

는 또한 ProgressData은 도메인 클래스입니다. 당신은 ProgressData.list().each{을해야하고 그걸로 나는 정말로 당신이하려고하는 것에 대해 ProgressData.list().sum{을 의미합니다.

또한 해당 활동은 폐업으로 인해 어떠한 활동도 반환하지 않습니다.

관련 문제