FileDocCategorySizeDatePackage
VToDoSupport.javaAPI DocphoneME MR2 API (J2ME)4786Wed May 02 18:00:28 BST 2007com.sun.kvem.midp.pim.formats

VToDoSupport.java

/*
 *   
 *
 * Copyright  1990-2007 Sun Microsystems, Inc. All Rights Reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
 * 
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License version
 * 2 only, as published by the Free Software Foundation.
 * 
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License version 2 for more details (a copy is
 * included at /legal/license.txt).
 * 
 * You should have received a copy of the GNU General Public License
 * version 2 along with this work; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 * 02110-1301 USA
 * 
 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
 * Clara, CA 95054 or visit www.sun.com if you need additional
 * information or have any questions.
 */

package com.sun.kvem.midp.pim.formats;

import javax.microedition.pim.ToDo;

/**
 * Helper methods for vToDo implementations.
 *
 */
public class VToDoSupport {

    /**
     * Converts a JSR75 field code to a vToDo property name.
     * @param field identifier of requested field
     * @return label for requested field
     */
    public static String getFieldLabel(int field) {
        switch (field) {
            case ToDo.COMPLETED: return "STATUS";
            case ToDo.COMPLETION_DATE: return "COMPLETED";
            case ToDo.PRIORITY: return "PRIORITY";
            case ToDo.DUE: return "DUE";
            case ToDo.NOTE: return "DESCRIPTION";
            case ToDo.REVISION: return "LAST-MODIFIED";
            case ToDo.SUMMARY: return "SUMMARY";
            case ToDo.UID: return "UID";
            case ToDo.CLASS: return "CLASS";
            default:
                return null;
        }
    }


    /**
     * Converts a vToDo property name to a JSR75 field code.
     * @param fieldName label of requested field
     * @return identifier of requested field
     */
    public static int getFieldCode(String fieldName) {
        if (fieldName.equals("DESCRIPTION"))
            return ToDo.NOTE;
        else if (fieldName.equals("LAST-MODIFIED"))
            return ToDo.REVISION;
        else if (fieldName.equals("SUMMARY"))
            return ToDo.SUMMARY;
        else if (fieldName.equals("UID"))
            return ToDo.UID;
        else if (fieldName.equals("PRIORITY"))
            return ToDo.PRIORITY;
        else if (fieldName.equals("DESCRIPTION"))
            return ToDo.NOTE;
        else if (fieldName.equals("COMPLETED"))
            return ToDo.COMPLETION_DATE;
        else if (fieldName.equals("STATUS"))
            return ToDo.COMPLETED;
        else if (fieldName.equals("DUE"))
            return ToDo.DUE;
        else if (fieldName.equals("CLASS"))
            return ToDo.CLASS;
        else return -1;
    }

    /**
     * Gets the value of the vToDo CLASS field for the given
     * value of the ToDo.CLASS field.
     * This method encapsulates the following mapping:
     * ToDo.CLASS_PUBLIC -> "PUBLIC"
     * ToDo.CLASS_PRIVATE -> "PRIVATE"
     * ToDo.CLASS_CONFIDENTIAL -> "CONFIDENTIAL"
     *
     * @param fieldValue the value of the ToDo.CLASS field
     * @return a string describing the class for the field value, or null if
     *  fieldValue is out of range
     */
    public static String getClassType(int fieldValue) {
        switch (fieldValue) {
            case ToDo.CLASS_CONFIDENTIAL: return "CONFIDENTIAL";
            case ToDo.CLASS_PRIVATE: return "PRIVATE";
            case ToDo.CLASS_PUBLIC: return "PUBLIC";
        }
        return null;
    }

    /**
     * Gets the value of the ToDo.CLASS field for the given
     * value of the vToDo CLASS property.
     * This method encapsulates the following mapping:
     * ToDo.CLASS_PUBLIC <- "PUBLIC"
     * ToDo.CLASS_PRIVATE <- "PRIVATE"
     * ToDo.CLASS_CONFIDENTIAL <- "CONFIDENTIAL"
     *
     * @param s the value of the CLASS property
     * @return the corresponding field of ToDo, or -1 if s is not recognized
     */
    public static int getClassCode(String s) {
        switch (s.length()) {
            case 6:
                if (s.equals("PUBLIC")) {
                    return ToDo.CLASS_PUBLIC;
                }
                break;
            case 7:
                if (s.equals("PRIVATE")) {
                    return ToDo.CLASS_PRIVATE;
                }
                break;
            case 12:
                if (s.equals("CONFIDENTIAL")) {
                    return ToDo.CLASS_CONFIDENTIAL;
                }
                break;
        }
        return -1;
    }


}