View Javadoc

1   /*
2    * Copyright 2006 - 2012 Christina Bohk and Roland Ewald
3    *  
4    * Licensed under the Apache 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.apache.org/licenses/LICENSE-2.0
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 p3j.pppm;
17  
18  import java.util.List;
19  import java.util.Map;
20  
21  import org.jamesii.core.model.IModel;
22  
23  import p3j.pppm.parameters.ParameterInstance;
24  import p3j.pppm.sets.SetType;
25  
26  /**
27   * Currently this is a simple marker interface.
28   * 
29   * 
30   * @author Christina Bohk
31   * @author Roland Ewald
32   * 
33   */
34  public interface IProjectionModel extends IModel {
35  
36    /**
37     * Gets the number of projected years.
38     * 
39     * @return the number of years
40     */
41    int getYears();
42  
43    /**
44     * Gets the number of projected generations.
45     * 
46     * @return the number of generations
47     */
48    int getGenerations();
49  
50    /**
51     * Gets the map parameter instance => Settype.
52     * 
53     * @return the map from parameter instance to Settypes
54     */
55    Map<ParameterInstance, SetType> getInstanceSetTypes();
56  
57    /**
58     * Gets the maximum age.
59     * 
60     * @return the maximum age
61     */
62    int getMaximumAge();
63  
64    /**
65     * Returns list of all {@link SetType} objects, the custom ones and the
66     * default one.
67     * 
68     * @return list of all {@link SetType} objects defined in this scenario (at
69     *         least the default {@link SetType} is defined)
70     */
71    List<SetType> getAllSetTypes();
72  
73    /**
74     * Returns the {@link SubPopulationModel} this projection assumes.
75     * 
76     * @return the {@link SubPopulationModel} of the projection
77     */
78    SubPopulationModel getSubPopulationModel();
79  
80  }