I.Giới thiệu

PIM API là một gói tùy chỉnh javax.micriedition.pim.*; thuộc JSR 75; cho phép bạn truy cập và sửa đổi cơ sở dữ liệu PIM tồn tại trong thiết bị MIDP. Mục đích của PIM API là cung cấp một giao diện chuẩn hóa cho các database đó mà chúng có thể được sử dụng thông qua các kiểu khác nhau của thiết bị.

Hiện tại, PIM API hỗ trợ 3 kiểu khác nhau của database, đó là:

  • Contact Lists
  • Events List
  • To-Do Lists

Ba kiểu database này không phải lúc nào cũng tồn tại trong một thiết bị. Khi thiết bị hỗ trợ PIM, nó có tối thiểu một database tương ứng một kiểu. Phần thực thi cũng có thể chứa nhiều hơn một list của cùng một kiểu database trên thiết bị. Ví dụ, một thiết bị có thể có một contact list được lưu trong bộ nhớ thiết bị và một contact list khác được lưu trong SIM card.

II.Tổng quan

PIM API được đóng gói trong một gói riêng javax.microedition.pim.*; bao gồm các interface, class và exception sau đây:

Interface Description
Contact Đại diện cho một thức thể Contact đơn trong một databae PIM Contact. Danh sách các trường(field) của một Contact đơn cũng tương tự như một subset của các trường được định nghĩa trong đặc tả vCard. Nó cũng đáp ứng một UnsupportedFieldException.
ContactList Đại diện cho một danh sách các Contact chứa các item Contact. Một ContactList chịu trách nhiệm xác định các trường từ một Contact được lưu lại khi một Contact được lưu vào List. Nó cũng đáp ứng một IllegalArgumentException.
Event Đại diện cho một thực thể Event đơn trong database PIM Event. Các trường của nó là một subset của các trường trong đối tượng vEvent được định nghĩa bởi đặc tả vCalendar 1.0. Nó cũng đáp ứng một UnsupportedFieldException.
EventList Đại diện cho một danh sách các Event chứa đựng các item Event. Một EventList chịu trách nhiệm xác định các trường từ một Event được lưu lại trong khi một Event được lưu trữ trong List. Nó cũng đáp ứng một UnsupportedFieldException.
PIMItem Đại diện cho các giao diện chung của một item của một PIM list. Một PIMItem tương ứng với một tập dữ liệu của một thực thể PIM.
PIMList Đại diện cho các hoạt động chung của một PIM list. PIMList có thể chứa 0 hoặc nhiều PIMItem.
ToDo Đại diện cho một item ToDo đơn trong database PIM ToDo. Các trường của nó là một subset của các trường trong VTODO được định nghĩa trong đặc tả vCalendar. Nó cũng đáp ứng một UnsupportedFieldException.
ToDoList Đại diện cho một ToDo list chứa đựng các item ToDo. Một ToDoList chịu trách nhiệm xác định các trường từ một ToDo được lưu lại khi ToDo được lưu trữ trong List. Nó cũng đáp ứng một IllegalArgumentException.
Class Description
PIM Lớp này dùng để truy cập PIM lists trên thiết bị và thực hiện việc mở lists, chuyển đổi stream dữ liệu thô đến PIM items hoặc từ PIM items để import hoặc export các list đó.
RepeatRule Đại diện cho một mô tả trên một pattern lặp lại của một item Event. Các trường của nó là một subset các khả năng của trường RRULE trong định nghĩa VEVENT trong đặc tả của vCard 1.0.
Exception Description
FieldEmptyException Ngoại lệ này được ném khi cố gắng truy cập vào một trường không có dữ liệu kết hợp với nó.
FieldFullException Ngoại lệ này được ném khi cố gắng thêm dữ liệu vào một trường mà dữ liệu của trường này đã full.
PIMException Ngoại lệ này được ném bởi các lớp PIM.
UnsupportedFieldException Ngoại lệ này được ném khi một trường được tham chiếu không được hỗ trợ trong PIM List.

Dữ liệu PIM được tổ chức thành các database hay lists. Có thể có nhiều list tồn tại trong calendar events, address-book contacts, và to-do items. PIM lists chứa đựng các item mà chúng được nhóm lại thành các trường có quan hệ với nhau. Một trường bao gồm: nhãn (label), kiểu dữ liệu (data type), giá trị (values) và thuộc tính (attribute).

Trong mô hình dữ liệu này, PIM lists hay databases được đại diện bởi giao diện PIMList và các giao diện của của nó. PIM items được đại diện bởi giao diện PIMItem và các giao diện con của nó. Các trường được dại diện bởi các kiểu dữ liệu Java phù hợp như: String, Date, int, boolean, mảng byte và mảng String.

III.Tìm hiểu các API trong PIM:

3.1. PIM class

Lớp ảo PIM cung cấp cách thức truy cập vào PIM implementation. Lớp PIM đưa ra một phương thức static để nhận một instance của chính PIM và các phương thức ảo để quản lý PIM lists/Database, và để import và export dữ liệu PIM. Bây giờ, chúng ta cùng tìm hiểu các phương thức của nó:

  • getInstance(): phương thức static sử dụng để nhận một instance PIM mà nó cho phép quản lý PIM cục bộ.
  • listPIMList(int pimListType): phương thức ảo dùng để nhận tên của của các database PIM đang tồn tại.
  • openPIMList(int pimListType, int mode): phương thức ảo dùng để mở một database mặc định.
  • openPimList(int pimListType, int mode, String name): phương thức ảo dùng để mở một database cung cấp bởi tên.
  • fromSerialFormat(…): phương thức ảo dùng để import PIM data.
  • toSerialFormat(…): phương thức ảo dùng đển export PIM data.
  • supportedSerialFormats(….): phương thức ảo để nhận định dạng trao đổi dữ liệu PIM được hỗ trợ như vCard 2.1 và vCalendar 1.0.

3.2.Giao diện PIMList và các giao diện con(sub-interface) của nó

Lớp PIM cung cấp cách thức truy cập vào PIM lists để truy cập vào database. PIM lists được đại diện bởi giao diện PIMList và các giao diện con của nó được mô tả sau đây:

  • PIMList đại diện cho một PIM database chung chung.
  • ContactList đại diện cho một database contact list.
  • EventList đại diện cho một database calendar events.
  • TodoList đại diện cho một database to-do list.

3.3.Giao diện PIMItem và các giao diện con(sub-interface) của nó

PIM lists là một tập các PIM items. PIM items như các hàng(rows) hay các bản ghi(records) của database. PIM items được dại diện bởi PIMItem(super-interface) và các sub-interface của nó được mô tả dưới đây:

  • PIMItem là một sự tổng quát hóa của PIM data, chẳng hạn như contact, calendar hay to-do item.
  • Contact đại diện cho một item contact trong database address book.
  • Event đại diện cho một event trong database calendar.
  • ToDo đại diện cho một item to-do trong database To-Do.

Các bài liên quan:
Managing Personal Information(PIM) – JSR 75-Phan2