@startuml package "net.micode.notes" { package data { class Notes { +TYPE_NOTE +TYPE_WIDGET_2X +TYPE_WIDGET_4X } class NoteItemData { +id +snippet +widgetId +bgColorId } } package widget { abstract class NoteWidgetProvider { #update() #getLayoutId() #getBgResourceId() #getWidgetType() } class NoteWidgetProvider_2x class NoteWidgetProvider_4x } package ui { class NotesListActivity { +onCreate() +onListItemClick() } class NotesListItem } package tool { class ResourceParser { +WidgetBgResources } } } NoteWidgetProvider_2x --|> NoteWidgetProvider NoteWidgetProvider_4x --|> NoteWidgetProvider NoteWidgetProvider ..> ResourceParser NoteWidgetProvider ..> Notes NoteItemData ..> Notes DataUtils ..> Notes NotesListActivity ..> NoteItemData NotesListActivity ..> NotesListItem class DataUtils { +batchDeleteNotes() +moveNoteToFoler() +batchMoveToFolder() +getUserFolderCount() } class ContentResolver class ContentProviderOperation DataUtils --> ContentResolver DataUtils --> ContentProviderOperation @enduml