Permalink
Browse files

aggiunta interfaccia Comparable a Session e utilizzato TreeMap in Ses…

…sionsManager
  • Loading branch information...
1 parent 2e1a3e8 commit 5c4dbebe297226f318f89976f56f225be35fd9f6 Davide Valsecchi committed Jul 19, 2012
@@ -144,10 +144,12 @@ public static String generateID() {
}
/**
- * Metodo che confronta due Calendar. Restituisce true solo se essi rappresentano lo stesso giorno.
+ * Metodo che confronta l'eguaglianza di due Calendar. Restituisce true solo
+ * se essi rappresentano lo stesso giorno.
+ *
* @param d1
* @param d2
- * @return Restituisce true solo se essi rappresentano lo stesso giorno.
+ * @return Restituisce true solo se essi rappresentano lo stesso giorno.
*/
public static boolean equalsDate(Calendar d1, Calendar d2) {
if (d1.get(Calendar.YEAR) == d2.get(Calendar.YEAR)) {
@@ -162,29 +164,66 @@ public static boolean equalsDate(Calendar d1, Calendar d2) {
}
/**
+ * Metodo che confronta due calendar. Restituisce 0 se sono uguali, 1 se la
+ * prima è maggiore, -1 se la prima è minore.
+ *
+ * @param d1
+ * @param d2
+ * @return
+ */
+ public static int compareDate(Calendar d1, Calendar d2) {
+ int y1, y2;
+ y1 = d1.get(Calendar.YEAR);
+ y2 = d2.get(Calendar.YEAR);
+ if (y1 < y2) {
+ return -1;
+ } else if (y1 == y2) {
+ int g1, g2;
+ g1 = d1.get(Calendar.DAY_OF_YEAR);
+ g2 = d2.get(Calendar.DAY_OF_YEAR);
+ if (g1 < g2) {
+ return -1;
+ } else if (g1 == g2) {
+ return 0;
+ } else if (g1 > g2) {
+ return 1;
+ }
+ } else {
+ return 1;
+ }
+ return 0;
+ }
+
+ /**
* Metodo che formatta un Calendar in una stringa nel formato "dd/MM/yy".
- * @param c Calendar da formattare
+ *
+ * @param c
+ * Calendar da formattare
* @return restituisce una stringa nel formato "dd/MM/yy"
*/
- public static String formatCalendarToString(Calendar c){
+ public static String formatCalendarToString(Calendar c) {
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yy");
return formatter.format(c.getTime());
}
-
+
/**
* Metodo che formatta una String nel formato "dd/MM/yy" in un Calendar
- * @param string_data Stringa da formattare
+ *
+ * @param string_data
+ * Stringa da formattare
* @return restituisce il Calendar corrispondente
- * @throws ParseException eccezione lanciata se la String non è nel formato "dd/MM/yy"
+ * @throws ParseException
+ * eccezione lanciata se la String non è nel formato "dd/MM/yy"
*/
- public static Calendar parseStringToCalendar(String string_data) throws ParseException{
+ public static Calendar parseStringToCalendar(String string_data)
+ throws ParseException {
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yy");
Date d = formatter.parse(string_data);
Calendar c = Calendar.getInstance();
c.setTime(d);
return c;
}
-
+
/**
* Classe che fornisce i metodi per creare un log utile per il test e il
* debug
@@ -11,7 +11,7 @@
* @author Davide Valsecchi
* @version 1.0
*/
-public class Session {
+public class Session implements Comparable{
/** Codice di 8 cifre */
private String ID;
@@ -147,4 +147,9 @@ public String getNote() {
public void setNote(String note) {
this.note = note;
}
+
+ @Override
+ public int compareTo(Object arg) {
+ return Utility.compareDate(this.sessionData,(Calendar) arg);
+ }
}
@@ -11,6 +11,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.TreeMap;
public class SessionsManager {
@@ -21,7 +22,7 @@
/** Costruttore in cui si inizializzano le Map */
public SessionsManager() {
- sessionsMap = new HashMap<>();
+ sessionsMap = new TreeMap<>();
hashMap = new HashMap<>();
}

0 comments on commit 5c4dbeb

Please sign in to comment.