summaryrefslogtreecommitdiff
path: root/projects/net.wotonomy.persistence/src/main/java/net/wotonomy/access/EOStoredProcedure.java
diff options
context:
space:
mode:
Diffstat (limited to 'projects/net.wotonomy.persistence/src/main/java/net/wotonomy/access/EOStoredProcedure.java')
-rw-r--r--projects/net.wotonomy.persistence/src/main/java/net/wotonomy/access/EOStoredProcedure.java141
1 files changed, 141 insertions, 0 deletions
diff --git a/projects/net.wotonomy.persistence/src/main/java/net/wotonomy/access/EOStoredProcedure.java b/projects/net.wotonomy.persistence/src/main/java/net/wotonomy/access/EOStoredProcedure.java
new file mode 100644
index 0000000..f38ec2a
--- /dev/null
+++ b/projects/net.wotonomy.persistence/src/main/java/net/wotonomy/access/EOStoredProcedure.java
@@ -0,0 +1,141 @@
+/*
+ Wotonomy: OpenStep design patterns for pure Java applications.
+ Copyright (C) 2001 Michael Powers
+
+ 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, see http://www.gnu.org
+ */
+
+package net.wotonomy.access;
+
+import net.wotonomy.foundation.NSArray;
+import net.wotonomy.foundation.NSDictionary;
+import net.wotonomy.foundation.NSMutableArray;
+import net.wotonomy.foundation.NSMutableDictionary;
+/**
+* Represents a stored procedure in a database.
+*
+* @author ezamudio@nasoft.com
+* @author $Author: cgruber $
+* @version $Revision: 894 $
+*/
+public class EOStoredProcedure implements EOPropertyListEncoding {
+
+ protected String _name;
+ protected String _externalName;
+ protected EOModel _model;
+ protected NSArray _arguments = NSArray.EmptyArray;
+ protected NSDictionary _userInfo = NSDictionary.EmptyDictionary;
+ protected NSDictionary _internalInfo = NSDictionary.EmptyDictionary;
+
+ /** Creates a stored procedure from a property list. */
+ public EOStoredProcedure(NSDictionary dict, Object obj) {
+ super();
+ if (obj instanceof EOModel)
+ _model = (EOModel)obj;
+ NSArray a = (NSArray)dict.objectForKey("arguments");
+ if (a != null) {
+ NSMutableArray args = new NSMutableArray(a.count());
+ for (int i = 0; i < a.count(); i++) {
+ NSDictionary ad = (NSDictionary)a.objectAtIndex(i);
+ EOAttribute arg = new EOAttribute(ad, this);
+ args.addObject(arg);
+ }
+ _arguments = args;
+ }
+ setName((String)dict.objectForKey("name"));
+ setExternalName((String)dict.objectForKey("externalName"));
+ if (dict.objectForKey("userInfo") != null)
+ setUserInfo((NSDictionary)dict.objectForKey("userInfo"));
+ if (dict.objectForKey("internalInfo") != null)
+ _internalInfo = (NSDictionary)dict.objectForKey("internalInfo");
+ }
+
+ public EOStoredProcedure(String withName) {
+ super();
+ setName(withName);
+ }
+
+ public void setName(String value) {
+ _name = value;
+ }
+ public String name() {
+ return _name;
+ }
+
+ public void setExternalName(String value) {
+ _externalName = value;
+ }
+ public String externalName() {
+ return _externalName;
+ }
+
+ public void setArguments(NSArray value) {
+ _arguments = value;
+ }
+ public NSArray arguments() {
+ return _arguments;
+ }
+
+ public EOModel model() {
+ return _model;
+ }
+
+ public void setUserInfo(NSDictionary info) {
+ _userInfo = info;
+ }
+ public NSDictionary userInfo() {
+ return _userInfo;
+ }
+
+ public void awakeWithPropertyList(NSDictionary plist) {
+ }
+
+ public void encodeIntoPropertyList(NSMutableDictionary plist) {
+ plist.setObjectForKey(name(), "name");
+ plist.setObjectForKey(externalName(), "externalName");
+ NSMutableArray arr = new NSMutableArray(_arguments.count());
+ NSMutableDictionary d = null;
+ for (int i = 0; i < _arguments.count(); i++) {
+ EOAttribute a = (EOAttribute)_arguments.objectAtIndex(i);
+ d = new NSMutableDictionary();
+ a.encodeIntoPropertyList(d);
+ arr.addObject(d);
+ }
+ plist.setObjectForKey(arr, "arguments");
+ }
+
+}
+/*
+ * $Log$
+ * Revision 1.2 2006/02/16 16:47:14 cgruber
+ * Move some classes in to "internal" packages and re-work imports, etc.
+ *
+ * Also use UnsupportedOperationExceptions where appropriate, instead of WotonomyExceptions.
+ *
+ * Revision 1.1 2006/02/16 13:19:57 cgruber
+ * Check in all sources in eclipse-friendly maven-enabled packages.
+ *
+ * Revision 1.4 2003/08/11 19:38:27 chochos
+ * Can now read from a file and re-write to another file.
+ *
+ * Revision 1.3 2003/08/09 01:36:32 chochos
+ * implement EOPropertyListEncoding
+ *
+ * Revision 1.2 2003/08/08 02:14:43 chochos
+ * can create a stored procedure from a property list. main accessors are in place.
+ *
+ * Revision 1.1 2003/08/07 02:41:04 chochos
+ * these don't do much for now.
+ *
+*/ \ No newline at end of file