package org.milipede.storage.layer.merapi.handlers; //package org.milipede.storage.layer.merapi.handlers; // //import java.util.ArrayList; // //import org.merapi.handlers.MessageHandler; //import org.merapi.internal.Bridge; //import org.merapi.internal.systemexecute.handlers.SystemExecuteMessageHandler; //import org.merapi.messages.IMessage; //import org.milipede.storage.layer.StorageConsole; //import org.milipede.storage.layer.domain.AccountVO; //import org.milipede.storage.layer.internal.AccountController; //import org.milipede.storage.layer.internal.AccountControllerEvent; //import org.milipede.storage.layer.internal.AccountControllerListener; //import org.milipede.storage.layer.internal.Assistant; //import org.milipede.storage.layer.internal.common.logging.Logger; //import org.milipede.storage.layer.merapi.messages.ProviderMessage; //import org.milipede.storage.layer.internal.Storage; //import com.sun.cloud.api.storage.webdav.WebDavClient; //import org.milipede.storage.layer.domain.Account; // //public class ProviderHandler extends MessageHandler { // implements AccountControllerListener { // // /** // * Logger for this class. // */ // private static final Logger logger = Logger.getLogger(ProviderHandler.class); //// private static ProviderHandler instance = new ProviderHandler(); // // /** // * Statische Methode, liefert die einzige Instanz dieser Klasse zurueck // */ //// public static ProviderHandler getInstance() { //// return instance; //// } // // /** // * Default-Konstruktor, der nicht ausserhalb dieser Klasse aufgerufen werden // * kann // */ // public ProviderHandler() { // super(ProviderMessage.PROVIDER_MESSAGE); //// works for systemexecutemessage //// this.addMessageType(ProviderMessage.PROVIDER_MESSAGE); //// super(ProviderMessage.PROVIDER_MESSAGE); //// service = new Main(); // } // //// @Override //// public void handleMessage(IMessage message) { //// if (message.getType() == "RefreshMessage") { //// System.out.println("RefreshMessage received"); //// } //// //// else if (message.getType() == "LoginMessage") { //// System.out.println("LoginMessage received"); //// } //// //// else if (message.getType() == "LogoutMessage") { //// System.out.println("LogoutMessage received"); //// } else { //// System.out.println("No defined message type received " + message.getType()); //// } //// } // //// @Override //// public void handleMessage(IMessage message) { //// System.out.println(message); //// if (message instanceof SystemExecuteMessage) { //// ProviderMessage providerMessage = (ProviderMessage) message; //// System.out.println("ProviderMessage received:"); //// System.out.println("Content: " + providerMessage.getData().toString()); //// } //// //// } // /** // * Handles an <code>IMessage</code> dispatched from the Bridge. // */ // @Override // public void handleMessage( IMessage message ) // { // // if ( message instanceof ProviderMessage ) // { // // // ProviderMessage sem = (ProviderMessage)message; // // // Use the args passed in the message to do a shell exec // try // { //// if(detectMultipleSendings(sem.getUid().concat())) { //// break; //// } else { //// //// } //// Object[] args = sem.getArgs(); //// System.out.println("Length: " + sem.getArgs().length); //// ProviderVO vo = (ProviderVO) args[0]; //// ProviderVO vo = (ProviderVO) sem.getData(); // System.out.println("Message Uid: " + sem.getUid() + " HashCode: " + sem.getType()); // } // catch ( Exception e ) // { // System.out.println( MessageHandler.class ); // e.printStackTrace(); // } // // //Respond in reaction to an ProviderMessage of processType ProviderMessage.INIT_PROVIDER_LIST_REQUEST // if(sem.processType.equals(ProviderMessage.INIT_PROVIDER_LIST_REQUEST)) { // logger.info(ProviderMessage.INIT_PROVIDER_LIST_REQUEST + " Message received"); // // AccountController.getInstance().getAllAccounts("test"); // // ProviderMessage respondMessage = new ProviderMessage(); // respondMessage.setType(ProviderMessage.PROVIDER_MESSAGE); // respondMessage.processType = ProviderMessage.INIT_PROVIDER_LIST_RESPOND; // // if(sem.providerType.equals("storage")) { // System.out.println("storage"); // respondMessage.providerType = "storage"; //// respondMessage.provider = (ArrayList<AccountVO>) Assistant.getInstance().getProviderList(); // respondMessage.convertToAccountVOAccount(AccountController.getInstance().getAllAccounts("storage")); // try { // Bridge.getInstance().sendMessage(respondMessage); // } catch (Exception e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // } // else if(sem.providerType.equals("mail")) { // respondMessage.providerType = "mail"; // System.out.println("mail"); //// respondMessage.provider = (ArrayList<AccountVO>) Assistant.getInstance().getProviderList(); // respondMessage.convertToAccountVOAccount(AccountController.getInstance().getAllAccounts("mail")); // try { // Bridge.getInstance().sendMessage(respondMessage); // } catch (Exception e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // } // else if(sem.providerType.equals("hoster")) { // respondMessage.providerType = "hoster"; // System.out.println("hoster"); //// respondMessage.provider = (ArrayList<AccountVO>) Assistant.getInstance().getProviderList(); // respondMessage.convertToAccountVOAccount(AccountController.getInstance().getAllAccounts("hoster")); // try { // Bridge.getInstance().sendMessage(respondMessage); // } catch (Exception e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // } // } // // else if(sem.processType.equals(ProviderMessage.LOGIN_PROVIDER_REQUEST)) { // // ArrayList<Account> accounts = sem.convertToAccount(); // // if(sem.providerType.equals("storage")) { // for (Account a: accounts) { // //webdav login // Storage storage = new Storage(); // storage.setWebDavClient(new WebDavClient(null, a.getUser(), a.getPass(), null)); // a.setEnabled(true); // AccountController.getInstance().updateAccountInfo(a.getHoster(), a, true); // } // } // else if(sem.providerType.equals("mail")) { // for (Account a: accounts) { //// a.setEnabled(true); //// AccountController.getInstance().updateAccountInfo(a.getHoster(), a, true); // } // } // else if(sem.providerType.equals("hoster")) { // for (Account a: accounts) { //// a.setEnabled(true); //// AccountController.getInstance().updateAccountInfo(a.getHoster(), a, true); // } // } // // //test if login parameter was correct // logger.info(ProviderMessage.LOGIN_PROVIDER_REQUEST + " Message received"); //// AccountController.getInstance().addAccount(null, sem.provider); // // // ProviderMessage respondMessage = new ProviderMessage(); // respondMessage.setType(ProviderMessage.PROVIDER_MESSAGE); // respondMessage.processType = ProviderMessage.LOGIN_PROVIDER_RESPOND; // // try { // Bridge.getInstance().sendMessage(respondMessage); // } catch (Exception e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // } // // else if(sem.processType.equals(ProviderMessage.LOGOUT_PROVIDER_REQUEST)){ // //// backend system has to be logged out from selected provider // logger.info(ProviderMessage.LOGOUT_PROVIDER_REQUEST + " Message received"); // // ProviderMessage respondMessage = new ProviderMessage(); //// respondMessage.setUid(sem.getUid()); // respondMessage.processType = ProviderMessage.LOGOUT_PROVIDER_RESPOND; // respondMessage.setType(ProviderMessage.PROVIDER_MESSAGE); // //Provider id //// respondMessage.setData(Assistant.getInstance().getProviderList()); // try { // Bridge.getInstance().sendMessage(respondMessage); // } catch (Exception e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // } // else { // logger.info("no such processType received"); // } // } // } // // //this handler receives unpredictatable (more than one messages from the as3 bridge, // //this is a known problem, // //workaround // public static String lastUidTime = null; // public boolean detectMultipleSendings(String uIdTime) { // if (lastUidTime != uIdTime) { // lastUidTime = uIdTime; // return false; // } // else // return true; // // } // //// @Override //// public void onAccountControllerEvent(AccountControllerEvent event) { //// // TODO Auto-generated method stub //// } //}