// // Copyright (C) 2002-2004 Red Hat Inc. All Rights Reserved. // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public License // as published by the Free Software Foundation; either version 2.1 of // the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // $Id: Resource.pdl 287 2005-02-22 00:29:02Z sskracic $ // $DateTime: 2004/08/16 18:10:38 $ model com.arsdigita.kernel; import com.arsdigita.portal.Portlet; // @author Jim Parsons (jparsons@redhat.com) object type ResourceType { BigDecimal id = application_types.application_type_id INTEGER; unique String[1..1] objectType = application_types.object_type VARCHAR(100); String title = application_types.title VARCHAR(200); String description = application_types.description VARCHAR(4000); Boolean isWorkspaceApplication = application_types.workspace_application_p BIT; Boolean hasFullPageView = application_types.has_full_page_view_p BIT; Boolean hasEmbeddedView = application_types.has_embedded_view_p BIT; Boolean isSingleton = application_types.singleton_p BIT; object key (id); } object type Resource extends ACSObject { String title = applications.title VARCHAR(200); String description = applications.description VARCHAR(4000); Date[1..1] timestamp = applications.timestamp TIMESTAMP; ResourceType[1..1] resourceType = join applications.application_type_id to application_types.application_type_id; Resource[0..n] childResource = join applications.application_id to applications.parent_application_id; Resource[0..1] parentResource = join applications.parent_application_id to applications.application_id; reference key (applications.application_id); aggressive load (resourceType.id, resourceType.isWorkspaceApplication, resourceType.hasFullPageView, resourceType.hasEmbeddedView, resourceType.isSingleton, resourceType.title, parentResource.id, parentResource.objectType, parentResource.defaultDomainClass, parentResource.title); }