Coverage Report - org.kuali.rice.krms.impl.repository.AgendaItemBoFoo
 
Classes in this File Line Coverage Branch Coverage Complexity
AgendaItemBoFoo
0%
0/40
0%
0/28
0
 
 1  
 /**
 2  
  * Copyright 2005-2011 The Kuali Foundation
 3  
  *
 4  
  * Licensed under the Educational Community License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  * http://www.opensource.org/licenses/ecl2.php
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 package org.kuali.rice.krms.impl.repository
 17  
 
 18  
 import org.kuali.rice.krad.bo.PersistableBusinessObjectBase
 19  
 import org.kuali.rice.krms.api.repository.agenda.AgendaItem
 20  
 
 21  
 // NOTE: this class is temporarily renamed to get it out of the way.  See AgendaItemBo.java
 22  
 public class AgendaItemBoFoo extends PersistableBusinessObjectBase {
 23  
 
 24  
 //        public MetaClass getMetaClass() {
 25  
 //                return super.getMetaClass();
 26  
 //        }
 27  
         
 28  
         def String id
 29  
         def String agendaId
 30  
         def String ruleId
 31  
         def String subAgendaId
 32  
         def String whenTrueId
 33  
         def String whenFalseId
 34  
         def String alwaysId 
 35  
         
 36  
         def AgendaItemBo whenTrue;
 37  
         def AgendaItemBo whenFalse;
 38  
         def AgendaItemBo always;
 39  
         
 40  
         public String getUl(AgendaItemBo firstItem) {
 41  0
                 return ("<ul>" + getUlHelper(firstItem) + "</ul>");
 42  
         }
 43  
         
 44  
         public String getUlHelper(AgendaItemBo item) {
 45  0
                 StringBuilder sb = new StringBuilder();
 46  0
                 sb.append("<li>" + ruleId + "</li>");
 47  0
                 if (whenTrue != null) {
 48  0
                         sb.append("<ul><li>when true</li><ul>");
 49  0
                         sb.append(getUlHelper(whenTrue));
 50  0
                         sb.append("</ul></ul>");
 51  
                 }
 52  0
                 if (whenFalse != null) {
 53  0
                         sb.append("<ul><li>when false</li><ul>");
 54  0
                         sb.append(getUlHelper(whenFalse));
 55  0
                         sb.append("</ul></ul>");
 56  
                 }
 57  0
                 if (always != null) {
 58  0
                         sb.append(getUlHelper(always));
 59  
                 }
 60  0
                 return sb.toString();
 61  
         }
 62  
         
 63  
 //        def List<AgendaItemBo> alwaysList
 64  
 //        def List<AgendaItemBo> whenTrueList
 65  
 //        def List<AgendaItemBo> whenFalseList
 66  
         
 67  
         public List<AgendaItemBo> getAlwaysList() {
 68  0
                 List<AgendaItemBo> results = new ArrayList<AgendaItemBo>();
 69  
                 
 70  0
                 AgendaItemBo currentNode = this;
 71  0
                 while (currentNode.always != null) {
 72  0
                         results.add(currentNode.always);
 73  0
                         currentNode = currentNode.always;
 74  
                 }
 75  
                 
 76  0
                 return results;
 77  
         }
 78  
         
 79  
 //        public List<AgendaItemBo> getWhenTrueList() {
 80  
 //                List<AgendaItemBo> results = new ArrayList<AgendaItemBo>();
 81  
 //                
 82  
 //                AgendaItemBo currentNode = this;
 83  
 //                if (currentNode.whenTrue != null) {
 84  
 //                        results.add(currentNode.whenTrue);
 85  
 //                        currentNode = currentNode.whenTrue;
 86  
 //                }
 87  
 //                while (currentNode.always != null) {
 88  
 //                        results.add(currentNode.always);
 89  
 //                        currentNode = currentNode.always;
 90  
 //                }
 91  
 //                
 92  
 //                return results;
 93  
 //        }
 94  
 //        
 95  
 //        public List<AgendaItemBo> getWhenFalseList() {
 96  
 //                List<AgendaItemBo> results = new ArrayList<AgendaItemBo>();
 97  
 //                
 98  
 //                AgendaItemBo currentNode = this;
 99  
 //                if (currentNode.whenFalse != null) {
 100  
 //                        results.add(currentNode.whenFalse);
 101  
 //                        currentNode = currentNode.whenFalse;
 102  
 //                }
 103  
 //                while (currentNode.always != null) {
 104  
 //                        results.add(currentNode.always);
 105  
 //                        currentNode = currentNode.always;
 106  
 //                }
 107  
 //                
 108  
 //                return results;
 109  
 //        }
 110  
         
 111  
         // Would make life in KNS easier to map to related AgendaItemBos, and RuleBos
 112  
 
 113  
         
 114  
         /**
 115  
         * Converts a mutable bo to it's immutable counterpart
 116  
         * @param bo the mutable business object
 117  
         * @return the immutable object
 118  
         */
 119  
         static AgendaItem to(AgendaItemBo bo) {
 120  0
                 if (bo == null) { return null }
 121  0
                 AgendaItem.Builder builder = AgendaItem.Builder.create(bo.getId(), bo.getAgendaId())
 122  0
                 builder.setRuleId( bo.getRuleId() )
 123  0
                 builder.setSubAgendaId( bo.getSubAgendaId() )
 124  0
                 builder.setWhenTrueId( bo.getWhenTrueId() )
 125  0
                 builder.setWhenFalseId( bo.getWhenFalseId() )
 126  0
                 builder.setAlwaysId( bo.getAlwaysId() )
 127  0
                 builder.setVersionNumber( bo.getVersionNumber() );
 128  0
                 return builder.build()        
 129  
                 // NOTE: should we create tree nodes (whenTrue, whenFalse, always) ??
 130  
                 //   If so, we would end up creating the entire sub-tree.
 131  
                 //   If we do want to create the entire tree, having AgendaItem implement AgendaItemContract would be easier
 132  
                 //   so we could recursively build it out.
 133  
                 
 134  
 //                return org.kuali.rice.krms.api.repository.agenda.AgendaItem.Builder.create(bo).build()
 135  
         }
 136  
 
 137  
    /**
 138  
         * Converts a immutable object to it's mutable bo counterpart
 139  
         * @param im immutable object
 140  
         * @return the mutable bo
 141  
         */
 142  
    static AgendaItemBo from(AgendaItem im) {
 143  0
            if (im == null) { return null }
 144  
 
 145  0
            AgendaItemBo bo = new AgendaItemBo()
 146  0
            bo.id = im.id
 147  0
            bo.agendaId = im.agendaId
 148  0
            bo.ruleId = im.ruleId
 149  0
            bo.subAgendaId = im.subAgendaId
 150  0
            bo.whenTrueId = im.whenTrueId
 151  0
            bo.whenFalseId = im.whenFalseId
 152  0
            bo.alwaysId = im.alwaysId
 153  0
            bo.versionNumber = im.versionNumber
 154  
            
 155  0
            return bo
 156  
    }
 157  
 
 158  
 }