Downloads Documentation Community Contribute Demo






Show Sidebar
Login | Register
Show
Ignore:
Timestamp:
05/24/08 14:37:02 (6 months ago)
Author:
bwolfe
Message:

Merging api-refactoring to trunk [3595]:[4355]

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • openmrs/trunk/src/api/org/openmrs/Program.java

    r4158 r4358  
    1515 
    1616import java.util.Date; 
     17import java.util.HashSet; 
     18import java.util.Locale; 
    1719import java.util.Set; 
    1820 
     21import org.apache.commons.logging.Log; 
     22import org.apache.commons.logging.LogFactory; 
    1923import org.simpleframework.xml.Attribute; 
    2024import org.simpleframework.xml.Root; 
    2125 
     26/** 
     27 * Program 
     28 */ 
    2229@Root 
    2330public class Program implements java.io.Serializable { 
    2431         
    25         private static final long serialVersionUID = 0L; 
    26  
     32        public static final long serialVersionUID = 3214567L; 
     33        protected final Log log = LogFactory.getLog(getClass()); 
     34 
     35        // ****************** 
     36        // Properties 
     37        // ****************** 
     38         
    2739        private Integer programId; 
     40        private String name; 
     41        private String description; 
    2842        private Concept concept; 
    2943        private User creator;  
     
    3145        private User changedBy; 
    3246        private Date dateChanged; 
    33         private Boolean voided = false;  
    34         private User voidedBy; 
    35         private Date dateVoided;  
    36         private String voidReason; 
    37         private Set<ProgramWorkflow> workflows; 
    38          
     47        private Boolean retired = false;  
     48        private Set<ProgramWorkflow> workflows = new HashSet<ProgramWorkflow>(); 
     49         
     50        // ****************** 
     51        // Constructors 
     52        // ****************** 
     53         
     54        /** Default Constructor */ 
    3955        public Program() { } 
    4056         
    41         /** 
    42          * Convenience method to get a workflow by name. 
    43          * @param name the workflow's name, in any locale 
    44          * @return a workflow which has that name in any locale 
     57        /** Constructor with id */ 
     58        public Program(Integer programId) { 
     59                setProgramId(programId); 
     60        } 
     61         
     62        // ****************** 
     63        // Instance methods 
     64        // ****************** 
     65         
     66        /** 
     67         * Adds a new {@link ProgramWorkflow} to this Program 
     68         * @param workflow - the {@link ProgramWorkflow} to add 
     69         */ 
     70        public void addWorkflow(ProgramWorkflow workflow) { 
     71                workflow.setProgram(this); 
     72                getWorkflows().add(workflow); 
     73        } 
     74 
     75        /** 
     76         * Removes a {@link ProgramWorkflow} from this Program 
     77         * @param workflow - the {@link ProgramWorkflow} to remove 
     78         */ 
     79        public void removeWorkflow(ProgramWorkflow workflow) { 
     80                if (getWorkflows().contains(workflow)) { 
     81                        getWorkflows().remove(workflow); 
     82                        workflow.setProgram(null); 
     83                } 
     84        } 
     85         
     86        /** 
     87         * Retires a {@link ProgramWorkflow} 
     88         * @param workflow - the {@link ProgramWorkflow} to retire 
     89         */ 
     90        public void retireWorkflow(ProgramWorkflow workflow) { 
     91                workflow.setRetired(true); 
     92        } 
     93 
     94        /** 
     95         * Returns a {@link ProgramWorkflow} whose {@link Concept} has any {@link ConceptName} that matches the given <code>name</name> 
     96         * @param name the {@link ProgramWorkflow} name, in any {@link Locale} 
     97         * @return a {@link ProgramWorkflow} which has the passed <code>name</code> in any {@link Locale} 
    4598         */ 
    4699        public ProgramWorkflow getWorkflowByName(String name) { 
    47                 for (ProgramWorkflow pw : workflows) 
    48                         if (pw.getConcept().isNamed(name)) 
     100                for (ProgramWorkflow pw : getWorkflows()) { 
     101                        if (pw.getConcept().isNamed(name)) { 
    49102                                return pw; 
     103                        } 
     104                } 
    50105                return null; 
    51106        } 
     107         
     108        /** @see Object#equals(Object) */ 
     109        public boolean equals(Object obj) { 
     110                if (obj != null && obj instanceof Program) { 
     111                        Program p = (Program)obj; 
     112                        if (this.getProgramId() == null) { 
     113                                return p.getProgramId() == null; 
     114                        } 
     115                        return (this.getProgramId().equals(p.getProgramId())); 
     116                } 
     117                return false; 
     118        } 
     119 
     120        /** @see Object#toString() */ 
     121        public String toString() { 
     122                return "Program(id=" + getProgramId() + ", concept=" + getConcept() + ", workflows=" + getWorkflows() + ")"; 
     123        } 
     124         
     125        // ****************** 
     126        // Property Access 
     127        // ****************** 
     128 
     129    public String getName() { 
     130        return name; 
     131    } 
     132 
     133    public void setName(String name) { 
     134        this.name = name; 
     135    } 
     136 
     137    public String getDescription() { 
     138        return description; 
     139    } 
     140     
     141    public void setDescription(String description) { 
     142        this.description = description; 
     143    } 
    52144 
    53145        public Concept getConcept() { 
     
    89181        public void setDateChanged(Date dateChanged) { 
    90182                this.dateChanged = dateChanged; 
    91         } 
    92  
    93         public Date getDateVoided() { 
    94                 return dateVoided; 
    95         } 
    96  
    97         public void setDateVoided(Date dateVoided) { 
    98                 this.dateVoided = dateVoided; 
    99         } 
    100  
    101         public Boolean getVoided() { 
    102                 return isVoided(); 
    103         } 
    104          
    105         public Boolean isVoided() { 
    106                 return voided; 
    107         } 
    108  
    109         public void setVoided(Boolean voided) { 
    110                 this.voided = voided; 
    111         } 
    112  
    113         public User getVoidedBy() { 
    114                 return voidedBy; 
    115         } 
    116  
    117         public void setVoidedBy(User voidedBy) { 
    118                 this.voidedBy = voidedBy; 
    119         } 
    120  
    121         public String getVoidReason() { 
    122                 return voidReason; 
    123         } 
    124  
    125         public void setVoidReason(String voidReason) { 
    126                 this.voidReason = voidReason; 
    127183        } 
    128184 
     
    137193        } 
    138194 
    139         public String toString() { 
    140                 return "Program(id=" + programId + ", concept=" + concept + ", workflows=" + workflows + ")"; 
    141         } 
     195    public Boolean getRetired() { 
     196        return retired; 
     197    } 
     198     
     199    public Boolean isRetired() { 
     200        return getRetired(); 
     201    } 
     202 
     203    public void setRetired(Boolean retired) { 
     204        this.retired = retired; 
     205    } 
    142206 
    143207        public Set<ProgramWorkflow> getWorkflows() { 
     
    148212                this.workflows = workflows; 
    149213        } 
    150          
    151214}