|
What this is
Other links
The source code
/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is NetBeans. The Initial Developer of the Original
* Code is Sun Microsystems, Inc. Portions Copyright 1997-2004 Sun
* Microsystems, Inc. All Rights Reserved.
*/
package org.netbeans.lib.ddl.impl;
import java.util.*;
import java.sql.*;
import java.text.ParseException;
import org.openide.util.NbBundle;
import org.netbeans.lib.ddl.*;
import org.netbeans.lib.ddl.util.*;
/**
* Argument of procedure. Encapsulates name, type (in/out) and datatype.
*/
public class ProcedureArgument implements Argument {
/** Argument name */
private String name;
/** Argument type */
private int type;
/** Argument datatype */
private int dtype;
/** Format */
private String format;
/** Additional properties */
private Map addprops;
private static ResourceBundle bundle = NbBundle.getBundle("org.netbeans.lib.ddl.resources.Bundle"); // NOI18N
public static String getArgumentTypeName(int type)
{
String typename = null;
switch (type) {
case java.sql.DatabaseMetaData.procedureColumnIn: typename = "IN"; break; // NOI18N
case java.sql.DatabaseMetaData.procedureColumnOut: typename = "OUT"; break; // NOI18N
case java.sql.DatabaseMetaData.procedureColumnInOut: typename = "INOUT"; break; // NOI18N
}
return typename;
}
/** Returns name */
public String getName()
{
return name;
}
/** Sets name */
public void setName(String aname)
{
name = aname;
}
/** Returns name of column */
public String getFormat()
{
return format;
}
/** Sets name of column */
public void setFormat(String fmt)
{
format = fmt;
}
/** Returns general property */
public Object getProperty(String pname)
{
return addprops.get(pname);
}
/** Sets general property */
public void setProperty(String pname, Object pval)
{
if (addprops == null) addprops = new HashMap();
addprops.put(pname, pval);
}
/** Describes type of argument: in, out, in/out or return value
* of procedure. Particular values you can find in DatabaseMetadata;
*/
public int getType()
{
return type;
}
/** Translates numeric representation of type into IN/OUT/INOUT strings.
*/
public String getTypeName()
{
return getArgumentTypeName(type);
}
/** Sets type of argument */
public void setType(int atype)
{
type = atype;
}
/** Returns datatype of argument */
public int getDataType()
{
return dtype;
}
/** Sets datatype of argument */
public void setDataType(int atype)
{
dtype = atype;
}
/**
* Returns properties and it's values supported by this object.
* argument.name Name of argument
* argument.type Type of argument
* argument.datatype Datatype of argument
* Throws DDLException if object name is not specified.
*/
public Map getColumnProperties(AbstractCommand cmd) throws DDLException {
HashMap args = new HashMap();
DatabaseSpecification spec = cmd.getSpecification();
Map typemap = (Map)spec.getProperties().get("ProcedureArgumentMap"); // NOI18N
String typename = (String)typemap.get(getArgumentTypeName(type));
args.put("argument.name", cmd.quote(name)); // NOI18N
args.put("argument.type", typename); // NOI18N
args.put("argument.datatype", spec.getType(dtype)); // NOI18N
return args;
}
/**
* Returns full string representation of argument.
*/
public String getCommand(CreateProcedure cmd)
throws DDLException
{
Map cprops;
if (format == null) throw new DDLException(bundle.getString("EXC_NoFormatSpec")); // NOI18N
try {
cprops = getColumnProperties(cmd);
return CommandFormatter.format(format, cprops);
} catch (Exception e) {
throw new DDLException(e.getMessage());
}
}
}
|
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.