class Dashboard extends BaseNameableObject implements MetadataObject {

    public boolean moveItem( String uid, int position )
    {
        if ( items == null || position < 0 || position > items.size() )
        {
            return false; // No items or position out of bounds
        }

        int index = items.indexOf( new DashboardItem( uid ) );

        if ( index == -1 || index == position || (index + 1) == position )
        {
            return false; // Not found, already at position or pointless move
        }

        DashboardItem item = items.get( index );

        index = position < index ? (index + 1) : index; // New index after move

        items.add( position, item ); // Add item at position
        items.remove( index ); // Remove item at previous index

        return true;
    }

    public  Dashboard();
    public  Dashboard( String name );

}