001: /* ====================================================================
002: * The Jcorporate Apache Style Software License, Version 1.2 05-07-2002
003: *
004: * Copyright (c) 1995-2003 Jcorporate Ltd. 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
008: * are 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
015: * the documentation and/or other materials provided with the
016: * distribution.
017: *
018: * 3. The end-user documentation included with the redistribution,
019: * if any, must include the following acknowledgment:
020: * "This product includes software developed by Jcorporate Ltd.
021: * (http://www.jcorporate.com/)."
022: * Alternately, this acknowledgment may appear in the software itself,
023: * if and wherever such third-party acknowledgments normally appear.
024: *
025: * 4. "Jcorporate" and product names such as "Expresso" must
026: * not be used to endorse or promote products derived from this
027: * software without prior written permission. For written permission,
028: * please contact info@jcorporate.com.
029: *
030: * 5. Products derived from this software may not be called "Expresso",
031: * or other Jcorporate product names; nor may "Expresso" or other
032: * Jcorporate product names appear in their name, without prior
033: * written permission of Jcorporate Ltd.
034: *
035: * 6. No product derived from this software may compete in the same
036: * market space, i.e. framework, without prior written permission
037: * of Jcorporate Ltd. For written permission, please contact
038: * partners@jcorporate.com.
039: *
040: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
041: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
042: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
043: * DISCLAIMED. IN NO EVENT SHALL JCORPORATE LTD OR ITS CONTRIBUTORS
044: * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
045: * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
046: * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
047: * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
048: * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
049: * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
050: * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
051: * SUCH DAMAGE.
052: * ====================================================================
053: *
054: * This software consists of voluntary contributions made by many
055: * individuals on behalf of the Jcorporate Ltd. Contributions back
056: * to the project(s) are encouraged when you make modifications.
057: * Please send them to support@jcorporate.com. For more information
058: * on Jcorporate Ltd. and its products, please see
059: * <http://www.jcorporate.com/>.
060: *
061: * Portions of this software are based upon other open source
062: * products and are subject to their respective licenses.
063: */
064: package com.jcorporate.expresso.kernel.metadata;
065:
066: import java.util.ArrayList;
067: import java.util.Collections;
068: import java.util.List;
069:
070: /**
071: * Bean class that represents the metadata for a Schema. This object is normally
072: * populated by the contents of an xml file, but it can be populated as needed
073: * manually if so desired.
074: *
075: * @author Michael Rimov
076: * @version $Revision: 1.5 $ on $Date: 2004/11/17 20:48:17 $
077: */
078:
079: public class SchemaData {
080:
081: /**
082: * A list of DBObjects contained in this schema.
083: */
084: List dbobjects;
085:
086: /**
087: * A list of reports contained by this schema
088: */
089: List reports;
090:
091: /**
092: * A list of controllers contained by this schema
093: */
094: List controllers;
095:
096: /**
097: * A list of jobs contained by this schema
098: */
099: List jobs;
100:
101: /**
102: * Default constructor
103: */
104: public SchemaData() {
105:
106: }
107:
108: /**
109: * A DataObject metadata to this schem
110: *
111: * @param newObj the new object to add
112: */
113: public void addDataObject(DBObjectData newObj) {
114: if (dbobjects == null) {
115: dbobjects = new ArrayList();
116: }
117: dbobjects.add(newObj);
118: }
119:
120: /**
121: * A DataObject metadata to this schema
122: *
123: * @param newObj the new object to add
124: */
125: public void addReportObject(ReportData newObj) {
126: if (reports == null) {
127: reports = new ArrayList();
128: }
129: reports.add(newObj);
130: }
131:
132: /**
133: * A ControllerData metadata to this schema
134: *
135: * @param newObj the new object to add
136: */
137: public void addController(ControllerData newObj) {
138: if (controllers == null) {
139: controllers = new ArrayList();
140: }
141: controllers.add(newObj);
142: }
143:
144: /**
145: * A JobData metadata to this schema
146: *
147: * @param newObj the new object to add
148: */
149: public void addJob(JobData newObj) {
150: if (jobs == null) {
151: jobs = new ArrayList();
152: }
153: jobs.add(newObj);
154: }
155:
156: /**
157: * Retrieve a readonly list of controllers for this schema
158: *
159: * @return Unmodifiable java.util.List
160: */
161: public List getControllers() {
162: return Collections.unmodifiableList(controllers);
163: }
164:
165: /**
166: * Retrieve a readonly list of DBObjects for this schema
167: *
168: * @return Unmodifiable java.util.List
169: */
170: public List getDataObjects() {
171: return Collections.unmodifiableList(dbobjects);
172: }
173:
174: /**
175: * Retrieve a readonly list of Jobs for this schema
176: *
177: * @return Unmodifiable java.util.List
178: */
179: public List getJobs() {
180: return Collections.unmodifiableList(jobs);
181: }
182:
183: /**
184: * Retrieve a readonly list of Reports for this schema
185: *
186: * @return Unmodifiable java.util.List
187: */
188: public List getReports() {
189: return Collections.unmodifiableList(reports);
190: }
191: }
|