[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

MimeDir and VCard Java Interfaces



Hi.

I am writing to ask for feedback on the attached Java interfaces which I
have created for exposing MimeDir and vCard data.

As part of my work for my employer, Athabasca University, I have created
a Java interface for exposing IEEE LTSC Learning Object Metadata (LOM). 
The LOM standard makes use of vCards for storing information about
metadata contributors.  I have thus desired a pure Java interface for
exposing associated vCard data through my LOM API, which is independent
of any particular vCard or MimeDir parser implementation.

Feedback appreciated, thanks.

-- 
Chris Hubick
mailto:chrish@xxxxxxxxxxxxx
mailto:chris@xxxxxxxxxx
http://adlib.athabascau.ca/~hubick/
http://www.hubick.com/

__ 
    This communication is intended for the use of the recipient to whom it
    is addressed, and may contain confidential, personal, and or privileged
    information. Please contact us immediately if you are not the intended
    recipient of this communication, and do not copy, distribute, or take
    action relying on it. Any communications received in error, or
    subsequent reply, should be deleted or destroyed.
---
/* Licensed under the Free Software Foundation (FSF.org) GNU Lesser General Public License (LGPL). */
package org.ietf.mimedir;

import java.util.Date;
import java.net.URI;

/**
 * This is a Java interface for exposing (read-only) RFC 2425 Mime-Directory information.
 */
public interface MimeDir {

  public ContentLine[] getContent();

  public interface ContentLine {

    public String getGroup();
    public String getName();
    public Parameter[] getParameters();
    public ValueType getValue();

    public interface Parameter {
      public String getName();
      public String getValue();
    } // MimeDir.ContentLine.Parameter

  } // MimeDir.ContentLine

  public interface ValueType {
    public byte[] getValue();
  } // MimeDir.ValueType

  public interface TextValueType extends ValueType {
    public String[] getTextValues();
  } // MimeDir.TextValueType

  public interface IntegerValueType extends ValueType {
    public Integer[] getIntegerValues();
  } // MimeDir.IntegerValueType

  public interface FloatValueType extends ValueType {
    public Float[] getFloatValues();
  } // MimeDir.FloatValueType

  public interface BooleanValueType extends ValueType {
    public Boolean getBooleanValue();
  } // MimeDir.BooleanValueType

  public interface DateValueType extends ValueType {
    public Date[] getDateValues();
  } // MimeDir.DateValueType

  public interface TimeValueType extends ValueType {
    public Date[] getTimeValues();
  } // MimeDir.TimeValueType

  public interface DateTimeValueType extends ValueType {
    public Date[] getDateTimeValues();
  } // MimeDir.DateTimeValueType

  public interface URIValueType extends ValueType {
    public URI getURIValue();
  } // MimeDir.URIValueType

} // MimeDir
/* Licensed under the Free Software Foundation (FSF.org) GNU Lesser General Public License (LGPL). */
package org.ietf.mimedir.vcard;

import org.ietf.mimedir.MimeDir;

/**
 * This is a Java interface for exposing (read-only) RFC 2426 vCard information.
 */
public interface VCard extends MimeDir {

  public interface BinaryValueType extends ValueType {
    public byte[] getBinaryValue();
  } // VCard.BinaryValueType

  public interface VCardValueType extends TextValueType {
    public VCard getVCardValue();
  } // VCard.VCardValueType

  public interface PhoneNumberValueType extends TextValueType {
    public String getPhoneNumberValue();
  } // VCard.PhoneNumberValueType

} // VCard