daodefinition.java
来自「Java Pattern Oriented Framework (Jt) 是为了」· Java 代码 · 共 1,619 行 · 第 1/4 页
JAVA
1,619 行
list.add (attrMapping);
}
while (list.size() < DAODefinition.MAX_ENTRIES) {
attrMapping = new DAOMapping ();
list.add(attrMapping);
}
daoDefinitionForm.setDbmappings((DAOMapping[]) list.toArray(new DAOMapping[0]));
initializeForm (daoDefinitionForm);
return (daoDefinitionForm);
}
private String generateDescriptor (DAODefinitionForm form) {
//List list;
if (form == null) {
return (null);
}
className = (String) form.getName();
table = (String) form.getTable();
if (className == null || className.equals ("")) {
handleUIError ("Please enter a class name.");
//return (null);
}
/*
if (table == null || table.equals("")) {
handleUIError ("Please enter a table name");
return (null);
}
*/
daoForm = form;
keys = retrieveKeys (form);
if (keys == null || keys.isEmpty()) {
handleUIError ("Please select the key attributes (at least one).");
}
if (this.getObjErrors() != null)
return (null);
return (generateXMLDescriptor ());
}
private String generateXMLDescriptor () {
//JtFactory factory = new JtFactory ();
Element element;
JtMessage msg = new JtMessage (JDOMAdapter.ADD_ELEMENT);
DocType docType;
if (className == null) {
handleError ("The className attribute needs to be set.");
return null;
}
/*
if (table == null) {
handleError ("The table attribute needs to be set.");
return null;
}
*/
element = new Element ("hibernate-mapping");
msg.setMsgContent (element);
factory.sendMessage(adapter, msg);
element = new Element ("class");
element.setAttribute("name", className);
if (table != null && !table.equals(""))
element.setAttribute("table", table);
msg.setMsgContent (element);
msg.setMsgData ("hibernate-mapping");
factory.sendMessage(adapter, msg);
docType = new DocType ("hibernate-mapping",
"-//Hibernate/Hibernate Mapping DTD 3.0//EN",
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd");
adapter.setDocType(docType);
if (!ngenerateIds ())
return null;
if (!ngenerateProperties ())
return null;
return (adapter.getContent());
}
private void updateDAODefinition (DAODefinitionForm form) {
String xmlString;
JtMessage msg = new JtMessage (JtFile.JtSAVE_STRING);
JtFile file = new JtFile ();
if (form == null)
return;
daoForm = form;
table = form.getTable();
if (table == null || table.equals ("")) {
handleUIError ("Please enter a table name.");
}
className = form.getName();
if (className == null || className.equals ("")) {
handleUIError ("Please enter a class name.");
}
if (getObjErrors() != null) {
return;
}
fileName = form.getFileName();
if (fileName == null || className.equals("")) {
handleError ("Invalid filename");
return;
}
xmlString = generateXMLDescriptor ();
if (xmlString == null)
return;
file.setName(fileName);
msg.setMsgContent (xmlString);
factory.sendMessage (file, msg);
if (file.getObjException() != null)
propagateException (file);
}
/*
private DAODefinitionForm generateForm (DynaActionForm dform) {
DAODefinitionForm form = new DAODefinitionForm ();
if (dform == null) {
return (null);
}
className = (String) dform.get ("className");
if (className == null || className.equals ("")) {
handleUIError ("Please enter a class name");
return (null);
}
form.setName(className);
initializeForm (form);
initializeFormMapping (form);
return (form);
}
*/
private boolean checkExtension (String name)
{
if (name == null)
return false;
return (name.endsWith(".java"));
}
private DAODefinitionForm parseJavaFile (FileForm dform) {
DAODefinitionForm form = new DAODefinitionForm ();
FormFile theFile;
InputStream inputStream = null;
//JtInputStream iStream = new JtInputStream ();
if (dform == null) {
return (null);
}
theFile = dform.getTheFile();
handleTrace ("parseJavaFile:" + theFile.getFileName());
if (theFile == null || !checkExtension (theFile.getFileName())) {
handleUIError ("File must be a java class file (.java)");
return null;
}
try {
inputStream = theFile.getInputStream();
} catch (Exception e) {
handleException (e);
}
if (inputStream == null) {
return null;
}
/*
iStream.setInputStream(inputStream);
factory.sendMessage (iStream, new JtMessage (JtInputStream.JtREAD_STREAM));
*/
/*
className = (String) dform.get ("className");
if (className == null || className.equals ("")) {
handleUIError ("Please enter a class name");
return (null);
}
*/
//form.setName(className);
initializeFormFromFile (form, inputStream);
initializeFormMapping (form);
return (form);
}
/*
private void updateSessionForm (HttpServletRequest request, ActionForm form) {
HttpSession session;
if (request == null || form == null)
return;
session = request.getSession();
if (session != null) {
session.setAttribute ("daoForm", form);
}
}
*/
// Process object messages
public Object processMessage (Object message) {
String msgid = null;
JtMessage msg = (JtMessage) message;
Object data;
HttpServletRequest request;
String xmlString;
JtContext context;
ActionForm form = null;
if (msg == null)
return null;
msgid = (String) msg.getMsgId ();
if (msgid == null)
return null;
factory.setStopClass(JtObject.class);
context = (JtContext) msg.getMsgContext();
if (context != null)
form = (ActionForm) context.getActionForm();
// Generate descriptor
if (msgid.equals(DAODefinition.GENERATE_DESCRIPTOR)) {
// pass the form information
//data = msg.getMsgData ();
xmlString = generateDescriptor ((DAODefinitionForm) form);
return (xmlString);
}
if (msgid.equals(DAODefinition.READ)) {
//data = msg.getMsgData ();
return ( readDAODefinition ((FileForm) form));
}
if (msgid.equals(DAODefinition.READ_STREAM)) {
data = msg.getMsgData ();
return ( readDAODefinitionStream ((InputStream) data));
}
if (msgid.equals(DAODefinition.READ_MAPPING_STREAM)) {
data = msg.getMsgData ();
return ( readDAOMappingStream ((InputStream) data));
}
if (msgid.equals(DAODefinition.UPDATE)) {
//content = (String) e.getMsgContent ();
//data = msg.getMsgData ();
updateDAODefinition ((DAODefinitionForm) form);
return (null);
}
/*
if (msgid.equals (DAODefinition.GENERATE_FORM)) {
data = msg.getMsgData ();
return ( generateForm ((DynaActionForm) data));
}
*/
if (msgid.equals (DAODefinition.PARSE_FILE)) {
//data = msg.getMsgData ();
return ( parseJavaFile ((FileForm) form));
}
// Let the superclass handle all other messages
return (super.processMessage (message));
}
/**
* Demonstrates the messages processed by this class.
*/
public static void main(String[] args) {
JtFactory factory = new JtFactory (); // Jt Factory
String reply;
DAODefinition daoDef;
DAODefinitionForm daoForm = new DAODefinitionForm ();
JtMessage msg = new JtMessage (DAODefinition.READ_STREAM);
InputStream istream = null;
try {
istream =
new FileInputStream ("/home/projects/Jt1/src/java/Jt/examples/hibernate/History.hbm.xml");
} catch (Exception e) {
e.printStackTrace ();
System.exit (1);
}
msg.setMsgData(istream);
daoDef = (DAODefinition) factory.createObject (DAODefinition.JtCLASS_NAME);
factory.sendMessage (daoDef, msg);
//factory.setLogging(true);
/*
daoDef.processMessage(new JtMessage (DAODefinition.READ));
if (args.length < 1) {
System.err.println ("Usage: java Jt.DAO.DAODefinition classname");
return;
}
daoForm.setName(args[0]);
daoForm.setTable("TOBJECT");
msg = new JtMessage (DAODefinition.GENERATE_DESCRIPTOR);
msg.setMsgData(daoForm);
reply = (String) factory.sendMessage (daoDef, msg);
System.out.println (reply);
factory.removeObject (daoDef);
*/
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?