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:
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)); 		
  } 	
}
sulla classe RegisteredUsers è:
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
}
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...
E poi cos'è un singleton????

Grazie a tutti

Alessio