|
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.text.MessageFormat;
import org.openide.util.NbBundle;
import org.netbeans.lib.ddl.*;
import org.netbeans.lib.ddl.impl.*;
/**
* Interface of database action command. Instances should remember connection
* information of DatabaseSpecification and use it in execute() method. This is a base interface
* used heavily for sub-interfacing (it is not subclassing :)
*/
public class CreateTrigger extends AbstractCommand implements CreateTriggerCommand {
public static final int BEFORE = 1;
public static final int AFTER = 2;
/** Arguments */
private Vector events;
/** for each row */
boolean eachrow;
/** Condition */
private String cond;
/** Table */
private String table;
/** Timing */
int timing;
/** Body of the procedure */
private String body;
public static String getTimingName(int code)
{
switch (code) {
case BEFORE: return "BEFORE"; // NOI18N
case AFTER: return "AFTER"; // NOI18N
}
return null;
}
private static ResourceBundle bundle = NbBundle.getBundle("org.netbeans.lib.ddl.resources.Bundle"); // NOI18N
static final long serialVersionUID =-2217362040968396712L;
public CreateTrigger()
{
events = new Vector();
}
public String getTableName()
{
return table;
}
public void setTableName(String tab)
{
table = tab;
}
public boolean getForEachRow()
{
return eachrow;
}
public void setForEachRow(boolean flag)
{
eachrow = flag;
}
/** Returns text of procedure */
public String getText()
{
return body;
}
/** Sets name of table */
public void setText(String text)
{
body = text;
}
public String getCondition()
{
return cond;
}
public void setCondition(String con)
{
cond = con;
}
public int getTiming()
{
return timing;
}
public void setTiming(int time)
{
timing = time;
}
/** Returns arguments */
public Vector getEvents()
{
return events;
}
public TriggerEvent getEvent(int index)
{
return (TriggerEvent)events.get(index);
}
/** Sets argument array */
public void setEvents(Vector argarr)
{
events = argarr;
}
public void setEvent(int index, TriggerEvent arg)
{
events.set(index, arg);
}
public TriggerEvent createTriggerEvent(int when, String columnname)
throws DDLException
{
try {
Map gprops = (Map)getSpecification().getProperties();
Map props = (Map)getSpecification().getCommandProperties(Specification.CREATE_TRIGGER);
Map bindmap = (Map)props.get("Binding"); // NOI18N
String tname = (String)bindmap.get("EVENT"); // NOI18N
if (tname != null) {
Map typemap = (Map)gprops.get(tname);
if (typemap == null) throw new InstantiationException(
MessageFormat.format(
bundle.getString("EXC_UnableLocateObject"), // NOI18N
new String[] {tname}));
Class typeclass = Class.forName((String)typemap.get("Class")); // NOI18N
String format = (String)typemap.get("Format"); // NOI18N
TriggerEvent evt = (TriggerEvent)typeclass.newInstance();
Map temap = (Map)props.get("TriggerEventMap"); // NOI18N
evt.setName(TriggerEvent.getName(when));
evt.setColumn(columnname);
evt.setFormat(format);
return (TriggerEvent)evt;
} else throw new InstantiationException(
MessageFormat.format(
bundle.getString("EXC_UnableLocateType"), // NOI18N
new String[] {"EVENT", bindmap.toString() })); // NOI18N
} catch (Exception e) {
throw new DDLException(e.getMessage());
}
}
public void addTriggerEvent(int when)
throws DDLException
{
addTriggerEvent(when, null);
}
public void addTriggerEvent(int when, String columnname)
throws DDLException
{
TriggerEvent te = createTriggerEvent(when, columnname);
if (te != null) events.add(te);
}
public Map getCommandProperties() throws DDLException {
Map props = (Map)getSpecification().getProperties();
String evs = "", argdelim = (String)props.get("TriggerEventListDelimiter"); // NOI18N
Map cmdprops = super.getCommandProperties();
Enumeration col_e = events.elements();
while (col_e.hasMoreElements()) {
TriggerEvent evt = (TriggerEvent)col_e.nextElement();
boolean inscomma = col_e.hasMoreElements();
evs = evs + evt.getCommand(this)+(inscomma ? argdelim : "");
}
cmdprops.put("trigger.events", evs); // NOI18N
cmdprops.put("trigger.condition", cond); // NOI18N
cmdprops.put("trigger.timing", getTimingName(timing)); // NOI18N
cmdprops.put("table.name", quote(table)); // NOI18N
cmdprops.put("trigger.body", body); // NOI18N
if (eachrow)
cmdprops.put("each.row", ""); // NOI18N
return cmdprops;
}
}
|
| ... 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.