/** * ContactListener Override: Tutorial Handler - Availability. * <br /><br /> * Maps an availability property ENUM code to a text string, and writes that string to * the console. If it's <em>not</em> an availability change, ignore it. * <br /><br /> * The implementation here follows the C++ pattern - a switch statement with cases for each * defined code. For Java 5.0, the Enum class' <code>toString</code> method eliminates the * need for the entire switch statement. For example, you could code the printf as: * <pre> * MySession.myConsole.printf("%s: Availability of %s is now %s%n", * mySession.myTutorialTag, * affectedContact.getDisplayName(), * availability.toString()); * </pre> * Implementing this functionality as a switch statement, however, * enables you to perform additional processing for specific cases. * * @param affectedContact * The affected Contact. * @param prop * The Contact property that triggered this event. * @param value * Ignored. * * @since 1.0 * * @see com.skype.api.ContactListener#onPropertyChange(com.skype.api.Contact, com.skype.api.Contact.Property, int, String) */ public void onPropertyChange(com.skype.api.Contact affectedContact, com.skype.api.Contact.Property prop, int value, String svalue) { if (prop == Contact.Property.P_AVAILABILITY) { String statusAsText; Contact.Availability availability = affectedContact.getAvailability(); if (availability == Contact.Availability.UNKNOWN) statusAsText = "UNKNOWN"; else if (availability == Contact.Availability.PENDINGAUTH) statusAsText = "PENDINGAUTH"; else if (availability == Contact.Availability.BLOCKED) statusAsText = "BLOCKED"; else if (availability == Contact.Availability.BLOCKED_SKYPEOUT) statusAsText = "BLOCKED_SKYPEOUT"; else if (availability == Contact.Availability.SKYPEOUT) statusAsText = "SKYPEOUT"; else if (availability == Contact.Availability.OFFLINE) statusAsText = "OFFLINE"; else if (availability == Contact.Availability.OFFLINE_BUT_VM_ABLE) statusAsText = "OFFLINE_BUT_VM_ABLE"; else if (availability == Contact.Availability.OFFLINE_BUT_CF_ABLE) statusAsText = "OFFLINE_BUT_CF_ABLE"; else if (availability == Contact.Availability.ONLINE) statusAsText = "ONLINE"; else if (availability == Contact.Availability.AWAY) statusAsText = "AWAY"; else if (availability == Contact.Availability.NOT_AVAILABLE) statusAsText = "NOT_AVAILABLE"; else if (availability == Contact.Availability.DO_NOT_DISTURB) statusAsText = "DO_NOT_DISTURB"; else if (availability == Contact.Availability.SKYPE_ME) statusAsText = "SKYPE_ME"; else if (availability == Contact.Availability.INVISIBLE) statusAsText = "INVISIBLE"; else if (availability == Contact.Availability.CONNECTING) statusAsText = "CONNECTING"; else if (availability == Contact.Availability.ONLINE_FROM_MOBILE) statusAsText = "ONLINE_FROM_MOBILE"; else if (availability == Contact.Availability.AWAY_FROM_MOBILE) statusAsText = "AWAY_FROM_MOBILE"; else if (availability == Contact.Availability.NOT_AVAILABLE_FROM_MOBILE) statusAsText = "NOT_AVAILABLE_FROM_MOBILE"; else if (availability == Contact.Availability.DO_NOT_DISTURB_FROM_MOBILE) statusAsText = "DO_NOT_DISTURB_FROM_MOBILE"; else if (availability == Contact.Availability.SKYPE_ME_FROM_MOBILE) statusAsText = "SKYPE_ME_FROM_MOBILE"; else statusAsText = "UNKNOWN"; MySession.myConsole.printf("%s: Availability of %s is now %s (%s)%n", mySession.myTutorialTag, affectedContact.getDisplayName(), statusAsText, availability); } }
private static void processFolder(com.pff.PSTFolder folder) { depth++; if (depth > 0) { Console.Out.WriteLine(folder.getDisplayName()); } if (folder.hasSubfolders()) { java.util.Vector folders = folder.getSubFolders(); foreach (com.pff.PSTFolder childFolder in folders) { processFolder(childFolder); } } if (folder.getContentCount() > 0) { com.pff.PSTMessage email = (com.pff.PSTMessage)folder.getNextChild(); depth++; while (email != null) { email = (com.pff.PSTMessage) folder.getNextChild(); scanEmail(email); } depth--; } depth--; }