|
1 /****************************************************************** |
|
2 * @author Alois Kirchsteiger member of the isac team |
|
3 * Copyright (c) 2004 by Alois Kirchsteiger |
|
4 * create 02.09.2004, 09:25:44 |
|
5 * Insitute for Softwaretechnology, Graz University of Technology, Austria. |
|
6 * |
|
7 * Use is subject to license terms. |
|
8 ******************************************************************/ |
|
9 |
|
10 //TODO: implement!!! |
|
11 package isac.util.users; |
|
12 |
|
13 import isac.session.SuccessInfo; |
|
14 import isac.util.formulae.CalcElement; |
|
15 |
|
16 import java.io.Serializable; |
|
17 import java.util.Iterator; |
|
18 import java.util.Map; |
|
19 import java.util.Set; |
|
20 import java.util.TreeMap; |
|
21 import java.util.Vector; |
|
22 |
|
23 /** |
|
24 * @author Alois Kirchsteiger 02.09.2004 09:25:44 |
|
25 */ |
|
26 public class UserModel_AK implements Serializable { |
|
27 |
|
28 /** |
|
29 * successInfos stores the successInfos for CalcElements. that means the key |
|
30 * for this TreeMap is a calcElement, the value is the relating SuccessInfo |
|
31 */ |
|
32 private TreeMap success_infos_; |
|
33 |
|
34 public UserModel_AK() { |
|
35 } |
|
36 |
|
37 /** |
|
38 * gets the info for each CalcElement of the parameter calcElements |
|
39 * |
|
40 * @param calcElements |
|
41 * this Vector must not contain anything else than CalcElements |
|
42 * @return a TreeMap with the SuccessInfo for each CalcElement in the |
|
43 * calcElements Vector. Those CalcElements are the index in the |
|
44 * HashMap, the relating SuccessInfos are the values |
|
45 */ |
|
46 public Map getSuccessInfoFor(Vector calcElements) { |
|
47 TreeMap result = new TreeMap(); |
|
48 Iterator iterator = calcElements.iterator(); |
|
49 while (iterator.hasNext()) { |
|
50 CalcElement calcElement = (CalcElement) iterator.next(); |
|
51 if (success_infos_.containsKey(calcElement)) { |
|
52 result.put(calcElement, success_infos_.get(calcElement)); |
|
53 } else { |
|
54 // no successInfo available |
|
55 result.put(calcElement, null); |
|
56 } |
|
57 } |
|
58 //TODO |
|
59 return result; |
|
60 } |
|
61 |
|
62 /** |
|
63 * @param calcElement |
|
64 * @return SuccessInfo or null if no SuccessInfo available |
|
65 */ |
|
66 public SuccessInfo getSuccessInfoFor(CalcElement calcElement) { |
|
67 return (SuccessInfo) success_infos_.get(calcElement); |
|
68 } |
|
69 |
|
70 /** |
|
71 * @param calcElementsSuccesses, |
|
72 * a TreeMap with a CalcElement as key and the relating success |
|
73 * (Float between 0 and 1) as value |
|
74 */ |
|
75 public void addSuccessInfoFor(Map calcElementsSuccesses) |
|
76 throws ClassCastException { |
|
77 Set set = calcElementsSuccesses.keySet(); |
|
78 Iterator iterator = set.iterator(); |
|
79 while (iterator.hasNext()) { |
|
80 try { |
|
81 CalcElement calcElement = (CalcElement) iterator.next(); |
|
82 Float success = (Float) calcElementsSuccesses.get(calcElement); |
|
83 addSuccessInfoFor(calcElement, success.floatValue()); |
|
84 } catch (ClassCastException e) { |
|
85 throw new ClassCastException( |
|
86 "the parameter for the method " |
|
87 + "void addSuccessInfoFor(TreeMap calcElementsSuccesses) " |
|
88 + "must have CalcElements as keys and Floats as value!!"); |
|
89 } |
|
90 } |
|
91 } |
|
92 |
|
93 public void addSuccessInfoFor(CalcElement calcElement, float success) { |
|
94 SuccessInfo successInfo; |
|
95 if (success_infos_.containsKey(calcElement)) { |
|
96 successInfo = (SuccessInfo) success_infos_.get(calcElement); |
|
97 successInfo.addSuccess(success); |
|
98 success_infos_.put(calcElement, successInfo); |
|
99 } else { |
|
100 successInfo = new SuccessInfo(success); |
|
101 success_infos_.put(calcElement, successInfo); |
|
102 } |
|
103 } |
|
104 |
|
105 } |