001: package org.tigris.scarab.om;
002:
003: /* ================================================================
004: * Copyright (c) 2000-2005 CollabNet. All rights reserved.
005: *
006: * Redistribution and use in source and binary forms, with or without
007: * modification, are permitted provided that the following conditions are
008: * met:
009: *
010: * 1. Redistributions of source code must retain the above copyright
011: * notice, this list of conditions and the following disclaimer.
012: *
013: * 2. Redistributions in binary form must reproduce the above copyright
014: * notice, this list of conditions and the following disclaimer in the
015: * documentation and/or other materials provided with the distribution.
016: *
017: * 3. The end-user documentation included with the redistribution, if
018: * any, must include the following acknowlegement: "This product includes
019: * software developed by Collab.Net <http://www.Collab.Net/>."
020: * Alternately, this acknowlegement may appear in the software itself, if
021: * and wherever such third-party acknowlegements normally appear.
022: *
023: * 4. The hosted project names must not be used to endorse or promote
024: * products derived from this software without prior written
025: * permission. For written permission, please contact info@collab.net.
026: *
027: * 5. Products derived from this software may not use the "Tigris" or
028: * "Scarab" names nor may "Tigris" or "Scarab" appear in their names without
029: * prior written permission of Collab.Net.
030: *
031: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
032: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
033: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
034: * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
035: * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
036: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
037: * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
038: * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
039: * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
040: * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
041: * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
042: *
043: * ====================================================================
044: *
045: * This software consists of voluntary contributions made by many
046: * individuals on behalf of Collab.Net.
047: */
048:
049: // JDK classes
050: import java.util.List;
051:
052: // Turbine classes
053: import org.apache.fulcrum.security.entity.Group;
054: import org.apache.torque.TorqueException;
055: import org.apache.torque.util.BasePeer;
056: import org.apache.torque.util.Criteria;
057: import org.apache.fulcrum.security.util.DataBackendException;
058:
059: // Local classes
060: import org.tigris.scarab.om.Module;
061:
062: /**
063: * The skeleton for this class was autogenerated by Torque on:
064: *
065: * [Wed Feb 28 16:36:26 PST 2001]
066: *
067: * You should add additional methods to this class to meet the
068: * application requirements. This class will only be generated as
069: * long as it does not already exist in the output directory.
070: */
071: public class ScarabModulePeer extends BaseScarabModulePeer {
072: /*
073: public static Class getOMClass()
074: throws TorqueException
075: {
076: return ModuleManager.getOMClass();
077: }
078: */
079:
080: /**
081: * Gets a List of all of the ScarabModule objects
082: * in the system.
083: */
084: public static List getAllModules() throws TorqueException {
085: return doSelect(new Criteria());
086: }
087:
088: /**
089: * Checks if a Group is defined in the system. The name
090: * is used as query criteria.
091: *
092: * @param group The Group to be checked.
093: * @return <code>true</code> if given Group exists in the system.
094: * @throws DataBackendException when more than one Group with
095: * the same name exists.
096: * @throws TorqueException a generic exception.
097: */
098: public static boolean checkExists(Group group)
099: throws DataBackendException, Exception {
100: Criteria criteria = new Criteria();
101: criteria.addSelectColumn(MODULE_ID);
102: String name = ((Module) group).getRealName();
103: criteria.add(MODULE_NAME, name);
104: criteria.add(PARENT_ID, ((Module) group).getParentId());
105: List results = BasePeer.doSelect(criteria);
106: if (results.size() > 1) {
107: throw new DataBackendException("Multiple groups named '"
108: + name + "' exist!"); //EXCEPTION
109: }
110: return (results.size() == 1);
111: }
112:
113: }
|