1 package olr.om;
2
3 import java.sql.Connection;
4 import java.sql.ResultSet;
5 import java.util.ArrayList;
6 import java.util.Date;
7 import java.util.List;
8
9 import org.apache.log4j.Logger;
10 import org.apache.torque.util.Criteria;
11
12 /***
13 * The skeleton for this class was autogenerated by Torque on:
14 *
15 * [Fri Jun 18 10:10:23 CEST 2004]
16 *
17 * You should add additional methods to this class to meet the application requirements. This class
18 * will only be generated as long as it does not already exist in the output directory.
19 */
20 public class ModelPeer extends olr.om.BaseModelPeer {
21
22 public static List getAllModels() {
23
24 List models = new ArrayList();
25
26 try {
27 final Criteria criteria = new Criteria();
28 criteria.addAscendingOrderByColumn(ModelPeer.ID);
29 models = ModelPeer.doSelect(criteria);
30 } catch (Exception e) {
31 Logger.getLogger(ModelPeer.class).error(e);
32 }
33 return models;
34 }
35
36 public static void delete(Model model, RdfUser user) throws Exception {
37 Connection connection = null;
38 try {
39 final int[] statementIds = model.getModelStatementIds();
40 connection = DBUtils.getConnection();
41 OmContext.setConnection(connection);
42
43 ModelStatementPeer.deleteAll(connection, ModelStatementPeer.TABLE_NAME,
44 ModelStatementPeer.MODEL_ID, model.getId());
45 ModelPeer.doDelete(model.getPrimaryKey(), connection);
46 RdfStatementPeer.delete(statementIds);
47
48 DBUtils.releaseConnection(connection);
49 } catch (Exception e) {
50 if (connection != null)
51 DBUtils.releaseConnection(connection, e);
52 throw e;
53 }
54 }
55
56 public static int addNewModel(String name, RdfUser user, boolean isCourse) throws Exception {
57 Connection connection = null;
58
59 try {
60 connection = DBUtils.getConnection();
61
62 final Model model = new Model(name, isCourse);
63 model.save(connection);
64
65 final RdfResource subject = RdfResourcePeer.createModelResource(model);
66 final RdfResource predicate = RdfResourcePeer.getTypeResource();
67 final RdfResource object = RdfResourcePeer.getModelRootResource();
68
69 final RdfStatement statement = new RdfStatement(subject, predicate, object);
70 statement.setModified(new Date());
71 statement.save(connection);
72
73 final ModelStatement modelStatement = new ModelStatement(model, statement);
74 modelStatement.setModified(new Date());
75 modelStatement.save(connection);
76
77 ModelPeer.createLabel(model, statement.getRdfResourceRelatedBySubject(), model
78 .getName());
79
80 if (isCourse)
81 createCourse(model, name);
82
83 DBUtils.releaseConnection(connection);
84
85 return model.getId();
86 } catch (Exception e) {
87 if (connection != null)
88 DBUtils.releaseConnection(connection, e);
89 throw e;
90 }
91 }
92
93 private static void createCourse(Model model, String name) throws Exception {
94 final RdfStatement hasCourseStatement = new Course(model);
95 hasCourseStatement.save();
96 }
97
98 static void createLabel(Model model, RdfResource subject, String label) throws Exception {
99 final RdfLiteral courseLabel = new RdfLiteral(label);
100 courseLabel.save(OmContext.getConnection());
101
102 final RdfStatement courseLabelStatement = new RdfStatement(subject, RdfResourcePeer
103 .getLabelResource(), courseLabel);
104
105 courseLabelStatement.save(OmContext.getConnection());
106 final ModelStatement modelStatement = new ModelStatement(model, courseLabelStatement);
107 modelStatement.save(OmContext.getConnection());
108 }
109
110 /***
111 * @deprecated @param modelID
112 * @return
113 */
114 public static int getModelOwner(int modelID) {
115 Connection dbConn = null;
116 int usr = 0;
117 try {
118 dbConn = DBUtils.getConnection();
119 String sql = String.valueOf(String.valueOf((new StringBuffer(
120 "SELECT usr FROM model_statement WHERE model_id=")).append(modelID)));
121 ResultSet rs = dbConn.createStatement().executeQuery(sql);
122 if (rs.next())
123 try {
124 usr = rs.getInt("USR");
125 } catch (Exception e) {
126 e.printStackTrace();
127 }
128 rs.close();
129 } catch (Exception e) {
130 e.printStackTrace();
131 }
132 DBUtils.releaseConnection(dbConn);
133 return usr;
134 }
135 }