head	1.3;
access;
symbols
	TIGRIS_1_1_0RC2:1.1.6.2
	TIGRIS_1_1_0RC1:1.1.6.2
	TIGRIS_1_1:1.1.6.2.0.2
	TIGRIS_1_0_8:1.1.6.2
	TIGRIS_1_0_8RC3:1.1.6.2
	TIGRIS_1_0_8RC2:1.1.6.1
	TIGRIS_1_0_8RC1:1.1.6.1
	TIGRIS_1_0_7:1.1.6.1
	TIGRIS_1_0_7RC3:1.1.6.1
	TIGRIS_1_0_7RC2:1.1.6.1
	TIGRIS_1_0_7RC1:1.1.6.1
	TIGRIS_1_0_6:1.1.6.1
	TIGRIS_1_0_6RC5:1.1.6.1
	TIGRIS_1_0_6RC4:1.1.6.1
	TIGRIS_1_0_6RC3:1.1.6.1
	TIGRIS_1_0_6RC2:1.1.6.1
	TIGRIS_1_0_6RC1:1.1.6.1
	TIGRIS_1_0_5:1.1.6.1
	TIGRIS_1_0_5RC6:1.1.6.1
	TIGRIS_1_0_5RC5:1.1.6.1
	TIGRIS_1_0_5RC4:1.1.6.1
	TIGRIS_1_0_5RC3:1.1.6.1
	TIGRIS_1_0_5RC2:1.1.6.1
	TIGRIS_1_0_5RC1:1.1.6.1
	TIGRIS_1_0_4:1.1.6.1
	TIGRIS_1_0_3:1.1.6.1
	TIGRIS_1_0_2:1.1.6.1
	TIGRIS_1_0_1:1.1.6.1
	TIGRIS_1_0:1.1.0.6
	TIGRIS_1_0_0:1.1
	TIGRIS_1_0_0_RC1:1.1.0.2;
locks; strict;
comment	@# @;


1.3
date	2001.08.11.09.08.03;	author dlr;	state Exp;
branches;
next	1.2;

1.2
date	2001.07.31.21.29.42;	author edk;	state Exp;
branches;
next	1.1;

1.1
date	2001.03.07.01.13.15;	author lucas;	state Exp;
branches
	1.1.6.1;
next	;

1.1.6.1
date	2001.04.17.22.36.28;	author edk;	state Exp;
branches;
next	1.1.6.2;

1.1.6.2
date	2001.07.14.21.58.15;	author edk;	state Exp;
branches;
next	;


desc
@@


1.3
log
@Upgrading to Turbine 3.0-dev, Fulcrum 1.0, and Torque 1.0.
@
text
@/* ================================================================
 * Copyright (c) 2000-2001 CollabNet.  All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
 * met:
 * 
 * 1. Redistributions of source code must retain the above copyright
 * notice, this list of conditions and the following disclaimer.
 * 
 * 2. Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * 
 * 3. The end-user documentation included with the redistribution, if
 * any, must include the following acknowlegement: "This product includes
 * software developed by CollabNet (http://www.collab.net/)."
 * Alternately, this acknowlegement may appear in the software itself, if
 * and wherever such third-party acknowlegements normally appear.
 * 
 * 4. The hosted project names must not be used to endorse or promote
 * products derived from this software without prior written
 * permission. For written permission, please contact info@@collab.net.
 * 
 * 5. Products derived from this software may not use the "Tigris" name
 * nor may "Tigris" appear in their names without prior written
 * permission of CollabNet.
 * 
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL COLLABNET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
 * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * ====================================================================
 * 
 * This software consists of voluntary contributions made by many
 * individuals on behalf of CollabNet.
 */

package org.tigris.helm.om;

import java.util.List;

import org.apache.torque.util.Criteria;

import org.apache.turbine.util.Log;

import org.tigris.helm.om.*;
import org.tigris.helm.tool.PeerTool;
import org.tigris.helm.DoesNotExist;
import com.workingdogs.village.*;

/**
 * Extension of generated Peer BaseMailinglistPeer.
 *
 * @@author <a href="mailto:dlr@@collab.net">Daniel Rall</a>
 */
public class MailingListPeer extends BaseMailingListPeer
{
    /**
     * Gets an instance of the list specified by the database key and project..
     *
     * @@param project Assures that the list belongs a specific project.
     * @@param listID  The database key of the desired mailing list.
     */
    public static MailingList getInstance(Project project, String listID)
        throws DoesNotExist, Exception
    {
        Criteria c = new Criteria()
            .add(MAILINGLIST_ID, listID)
            .add(PROJECT_ID, project.getProjectId());
        return (MailingList)PeerTool.getFirstBO(doSelect(c),
                                                "List with id " + listID,
                                                "project named " +
                                                project.getName());
    }

    public static MailingList getInstanceByName(Project project, String name)
        throws DoesNotExist, Exception
    {
        Criteria c = new Criteria()
            .add(LIST_NAME, name)
            .add(PROJECT_ID, project.getProjectId());
        return (MailingList)PeerTool.getFirstBO(doSelect(c),
                                                "List with name " + name,
                                                "project named " +
                                                project.getName());
    }

    /** 
     * Create a new object of type cls from a resultset row starting
     * from a specified offset.  This is done so that you can select
     * other rows than just those needed for this object.  You may
     * for example want to create two objects from the same row.
     */
    public static MailingList row2Object (Record row, int offset, Class cls ) 
        throws Exception
    {
        if (!cls.equals(MailingList.class)) {
            return BaseMailingListPeer.row2Object(row, offset, cls);
        }

        return new MailingList(
                    row.getValue(offset+0).asBigDecimal(), //MailingListId
                    row.getValue(offset+1).asBigDecimal(), //ProjectId
                    row.getValue(offset+2).asString(),     //ListName
                    row.getValue(offset+3).asString(),     //Type
                    row.getValue(offset+4).asString(),     //IsPrivate
                    row.getValue(offset+5).asString());    //Description
    }

    /**
     * Get all the mailing lists in a specific project.
     *
     * @@param project The project in which to look for mailing lists
     */
    protected static List getMailingListsByProject(Project project)
        throws Exception
    {
        Criteria c = new Criteria().add(PROJECT_ID, project.getProjectId());
        return doSelect(c);
    }
}
@


1.2
log
@* support a more efficient (and correct) way to retrieve mailing lists
  than the default row2Object -- port this from the branch
* remove some cruft from MailingList
@
text
@d51 1
a51 1
import org.apache.turbine.util.db.Criteria;
@


1.1
log
@Moved in from peer package to handle Torque changes. -dlr
@
text
@d49 2
d53 2
d58 1
d95 34
@


1.1.6.1
log
@change so that it's possible to use a more efficient row2Object when you
select a list of mailing lists: now we avoid calling methods which would
cause unnecessary RMI connections when viewing a list of mailing lists.
@
text
@a53 1
import com.workingdogs.village.*;
a89 22
    }

    /** 
     * Create a new object of type cls from a resultset row starting
     * from a specified offset.  This is done so that you can select
     * other rows than just those needed for this object.  You may
     * for example want to create two objects from the same row.
     */
    public static MailingList row2Object (Record row, int offset, Class cls ) 
        throws Exception
    {
        if (!cls.equals(MailingList.class)) {
            return BaseMailingListPeer.row2Object(row, offset, cls);
        }

        return new MailingList(
                    row.getValue(offset+0).asBigDecimal(), //MailingListId
                    row.getValue(offset+1).asBigDecimal(), //ProjectId
                    row.getValue(offset+2).asString(),     //ListName
                    row.getValue(offset+3).asString(),     //Type
                    row.getValue(offset+4).asString(),     //IsPrivate
                    row.getValue(offset+5).asString());    //Description
@


1.1.6.2
log
@avoid the broken internal cache maintained by BaseProject
(which keeps a list of maliing lists)
@
text
@a48 2
import java.util.List;

a112 12
    }

    /**
     * Get all the mailing lists in a specific project.
     *
     * @@param project The project in which to look for mailing lists
     */
    protected static List getMailingListsByProject(Project project)
        throws Exception
    {
        Criteria c = new Criteria().add(PROJECT_ID, project.getProjectId());
        return doSelect(c);
@


