01: /*
02: * Copyright (c) 1998-2008 Caucho Technology -- all rights reserved
03: *
04: * This file is part of Resin(R) Open Source
05: *
06: * Each copy or derived work must preserve the copyright notice and this
07: * notice unmodified.
08: *
09: * Resin Open Source is free software; you can redistribute it and/or modify
10: * it under the terms of the GNU General Public License as published by
11: * the Free Software Foundation; either version 2 of the License, or
12: * (at your option) any later version.
13: *
14: * Resin Open Source is distributed in the hope that it will be useful,
15: * but WITHOUT ANY WARRANTY; without even the implied warranty of
16: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty
17: * of NON-INFRINGEMENT. See the GNU General Public License for more
18: * details.
19: *
20: * You should have received a copy of the GNU General Public License
21: * along with Resin Open Source; if not, write to the
22: *
23: * Free Software Foundation, Inc.
24: * 59 Temple Place, Suite 330
25: * Boston, MA 02111-1307 USA
26: *
27: * @author Scott Ferguson
28: */
29:
30: package com.caucho.amber.cfg;
31:
32: import com.caucho.config.*;
33: import com.caucho.vfs.*;
34:
35: import java.net.*;
36: import java.util.ArrayList;
37:
38: /**
39: * Top <persistence> tag for the persistence.xml
40: */
41: public class PersistenceConfig {
42: private Path _root;
43:
44: private ArrayList<PersistenceUnitConfig> _unitList = new ArrayList<PersistenceUnitConfig>();
45:
46: public void setRoot(Path root) {
47: _root = root;
48: }
49:
50: public Path getRoot() {
51: return _root;
52: }
53:
54: public void setVersion(String version) {
55: }
56:
57: public void setSchemaLocation(String location) {
58: }
59:
60: /**
61: * Adds a new <persistence-unit>.
62: */
63: public PersistenceUnitConfig createPersistenceUnit() {
64: try {
65: URL rootUrl;
66:
67: // need to return the base url
68: if (_root instanceof JarPath)
69: rootUrl = new URL(((JarPath) _root).getContainer()
70: .getURL());
71: else
72: rootUrl = new URL(_root.getURL());
73:
74: PersistenceUnitConfig unit = new PersistenceUnitConfig(
75: rootUrl);
76:
77: _unitList.add(unit);
78:
79: return unit;
80: } catch (Exception e) {
81: throw ConfigException.create(e);
82: }
83: }
84:
85: /**
86: * Returns the unit list.
87: */
88: public ArrayList<PersistenceUnitConfig> getUnitList() {
89: return _unitList;
90: }
91: }
|