Ciao a tutti. Mi sto imbattendo in un progetto per la tesi di laurea. Ho un applicativo che realizza un webservice in Java e si interfaccia ad un terminale Android.
Viene utilizzato un database db4o. Non riesco a capire cosa sia instance. Vi posto del codice, vediamo se riesco a farmi capire:
classe di login che restituisce un oggetto di tipo LoginReply con status=1 se login corretto, =0 se sbagliato, poi contiene anche session, che rappresenta UUID della sessione:
sulla classe RegisteredUsers è:codice:public static LoginReply login(String username, String password) { // put code to check in database here log.info("Check for match in database for username ="+username+" password = "+password); String ID = RegisteredUsers.instance.checkMatch(username, password); if (ID == null) { log.info("Username or password is wrong"); return new LoginReply(0, "-1"); } else { //it would be better, instead of bluntly creating new session token, //to check for session token validity in the database first //if there's no valid token, then create new token. log.info("Found matching record, create new session key for user"); return new LoginReply(1, SessionData.instance.createSessionforUser(ID)); } }
Cosa può essere instance? E' definita nella classe RegisteredUsers, ma non ho mai visto variabili definitie in quel modo! Qualcuno sa aiutarmi? Non ho proprio idea di cosa possa essere e me la ritrovo in motissimi punti del codice...codice:public enum RegisteredUsers { instance; //singleton instance private static final String DATABASE_NAME = Configuration.getInstance().constants.getProperty("DATABASE_FOLDER")+"/RegisteredUsers"; private static final Logger log = LoggerFactory.getLogger(RegisteredUsers.class); private static ObjectServer server ; //db4o server private static boolean databaseOpen = false; // true means database server is initialized private static final Object lock = new Object(); // mutex lock public static String checkMatch(final String username, final String password){ ObjectContainer db = openDatabase(); try { Query query = db.query(); query.constrain(Users.class); Constraint constr=query.descend("password").constrain(password); query.descend("username").constrain(username).and(constr); ObjectSet<Users> result = query.execute(); if (!result.isEmpty()){ result.get(0).activateRead(); return result.get(0).ID; } else return null; } finally { db.close(); } } //altri metodi }![]()
![]()
E poi cos'è un singleton????
Grazie a tutti
Alessio

Rispondi quotando

