head	1.2;
access;
symbols;
locks; strict;
comment	@# @;


1.2
date	2000.12.01.18.01.49;	author edk;	state dead;
branches;
next	1.1;

1.1
date	2000.12.01.16.25.01;	author edk;	state Exp;
branches;
next	;


desc
@@


1.2
log
@rename HelmAnzuTask to AnzuTigrisTask; remove an unused function from
TigrisUpdate ; and add functions (thanks to leonardr) for storing
arguments via serialization/deserialization in TigrisTask
@
text
@/* ================================================================
 * Copyright (c) 2000 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.tool;

import java.sql.*;
import java.util.*;

import org.webmacro.util.Log;

import org.tigris.helm.tool.mail.MailingList;
import org.tigris.helm.project.Project;
import org.tigris.helm.domain.User;

import com.workingdogs.village.*;
import org.joist.database.*;
import org.joist.util.JoistProperties;
import org.tigris.helm.DoesNotExist;
import org.tigris.helm.database.TaskManager;
import org.tigris.helm.domain.BusinessObject;

public class HelmAnzuTask extends TigrisTask
{
    public HelmAnzuTask (Connection conn, DataManager dMgr, String onBehalfOf, 
                 String component, String affectedObjectID, String command,
                 String arguments)
        throws SQLException, DataSetException
    {
        super(conn, dMgr, onBehalfOf, component, affectedObjectID, 
                command, arguments);
    }

    public HelmAnzuTask (Connection conn, DataManager dMgr, String taskID)
        throws SQLException, DataSetException, DoesNotExist
    {
        super(conn, dMgr, taskID);
    }

    public HelmAnzuTask (Connection conn, DataManager dMgr, Record r)
        throws SQLException, DataSetException
    {
        super(conn, dMgr, r);
    }

    public void runTask() throws UpdateException
    {
        String command = null;
        String args = null;
        String objectID = null;
        String userID = null;
        try {
            command = getCommand();
            args = getArguments();
            objectID = getAffectedObjectID();
            userID = getOnBehalfOf();
        } catch (Exception e) {
            log.exception(e);
        }

        if (command != null && args != null && objectID != null &&
                userID != null)
        {
            UpdateException ue = null;
            try {
                if (command.equals("addlist")) {
                    // object is a project
                    Project project = new Project(conn, dMgr, objectID);
                    User user = new User(conn, dMgr, userID);
                    MailingList ml =
                        new MailingList(conn, dMgr, project.getID());
//                    ml.setOwner(user);
                    ml.create();
                } else {
                    ue = new UpdateException("invalid command for " +
                            "HelmAnzuTask: " + command);
                }
            } catch (Exception e) {
                log.exception(e);
                if (debug) log.info("exception in HelmAnzuTask: " +
                        e.getMessage());
                ue = new UpdateException("exception in HelmAnzuTask: " +
                        e.getMessage());
            }
            try 
            { 
                setAsDone();
            } catch (Exception e) {
                log.exception(e);
            }

            if (ue != null) { throw ue; }
        }
    }
}

@


1.1
log
@steps towards providing for different kinds of tasks.  if this pattern
is used, TigrisTask should probably be broken down into an abstract base
class and a HelmCommandTask (or somesuch) -- but this involves lots
of changes elsewhere.  HelmAnzuTask will be used for anzu mailing
list creation during project creation, though it's not being used
that way yet.
@
text
@@

