*
*/
public class DatabaseLinksImcs extends Database
- implements StorageObject {
- private static DatabaseLinksImcs instance;
+ implements StorageObject {
+ private static DatabaseLinksImcs instance;
- /**
- * put your documentation comment here
- * @return
- * @exception StorageObjectException
- */
- public static DatabaseLinksImcs getInstance () throws StorageObjectException {
- if (instance == null) {
- instance = new DatabaseLinksImcs();
- instance.myselfDatabase = instance;
- }
- return instance;
- }
+ /**
+ * put your documentation comment here
+ * @return
+ * @exception StorageObjectException
+ */
+ public static DatabaseLinksImcs getInstance () throws StorageObjectException {
+ if (instance == null) {
+ instance = new DatabaseLinksImcs();
+ instance.myselfDatabase = instance;
+ }
+ return instance;
+ }
+
+ /**
+ * put your documentation comment here
+ */
+ private DatabaseLinksImcs () throws StorageObjectException
+ {
+ super();
+ ////this.cache = new HashMap();
+ this.hasTimestamp = false;
+ this.theTable = "links_imcs";
+ try {
+ this.theEntityClass = Class.forName("mircoders.entity.EntityLinksImcs");
+ } catch (Exception e) {
+ throw new StorageObjectException(e.toString());
+ }
+ }
- /**
- * put your documentation comment here
- */
- private DatabaseLinksImcs () throws StorageObjectException
- {
- super();
- //this.cache = new HashMap();
- this.hasTimestamp = false;
- this.theTable = "links_imcs";
- try {
- this.theEntityClass = Class.forName("mircoders.entity.EntityLinksImcs");
- } catch (Exception e) {
- throw new StorageObjectException(e.toString());
- }
- }
+ /** @todo toooo much copy/paste in this class //rk */
- public String insert (Entity theEntity) throws StorageObjectException {
+ public String insert (Entity theEntity) throws StorageObjectException {
String returnId = "0";
Connection con = null;
PreparedStatement pstmt = null;
//cache
invalidatePopupCache();
try {
+ HashMap theEntityValues = theEntity.getValues();
ArrayList streamedInput = theEntity.streamedInput();
StringBuffer f = new StringBuffer();
StringBuffer v = new StringBuffer();
aValue = "?";
}
else {
- if (theEntity.hasValueForField(aField)) {
- if (aField.equals("to_parent_id")) {
- aValue = StringUtil.quote((String)theEntity.getValue(aField));
- } else {
- aValue = "'" + StringUtil.quote((String)theEntity.getValue(aField)) + "'";
- }
+ if (theEntityValues.containsKey(aField)) {
+ if (aField.equals("to_parent_id")) {
+ aValue = StringUtil.quote((String)theEntityValues.get(aField));
+ } else {
+ aValue = "'" + StringUtil.quote((String)theEntityValues.get(aField)) + "'";
+ }
}
}
}
pstmt = con.prepareStatement(sql);
if (streamedInput != null) {
for (int i = 0; i < streamedInput.size(); i++) {
- String inputString = (String)theEntity.getValue((String)streamedInput.get(i));
+ String inputString = (String)theEntityValues.get(streamedInput.get(i));
pstmt.setBytes(i + 1, inputString.getBytes());
}
}
return returnId;
}
- public void update (Entity theEntity) throws StorageObjectException {
- Connection con = null;
- PreparedStatement pstmt = null;
- ArrayList streamedInput = theEntity.streamedInput();
- String id = theEntity.getId();
- String aField;
- StringBuffer fv = new StringBuffer();
- boolean firstField = true;
- //cache
- invalidatePopupCache();
- // build sql statement
- for (int i = 0; i < getFields().size(); i++) {
- aField = (String)metadataFields.get(i);
- // only normal cases
- if (!(aField.equals(thePKeyName) || aField.equals("webdb_create") ||
- aField.equals("webdb_lastchange") || (streamedInput != null && streamedInput.contains(aField)))) {
- if (theEntity.hasValueForField(aField)) {
- if (firstField == false) {
- fv.append(", ");
- }
- else {
- firstField = false;
- }
- if (aField.equals("to_parent_id")) {
- fv.append(aField).append("=").append(StringUtil.quote(theEntity.getValue(aField)));
- } else {
- fv.append(aField).append("='").append(StringUtil.quote((String)theEntity.getValue(aField))).append("'");
- }
- }
- }
- }
- StringBuffer sql = new StringBuffer("update ").append(theTable).append(" set ").append(fv);
- // exceptions
- if (metadataFields.contains("webdb_lastchange")) {
- sql.append(",webdb_lastchange=NOW()");
- }
- if (streamedInput != null) {
- for (int i = 0; i < streamedInput.size(); i++) {
- sql.append(",").append(streamedInput.get(i)).append("=?");
- }
- }
- sql.append(" where id=").append(id);
- theLog.printInfo("UPDATE: " + sql);
- // execute sql
- try {
- con = getPooledCon();
- con.setAutoCommit(false);
- pstmt = con.prepareStatement(sql.toString());
- if (streamedInput != null) {
- for (int i = 0; i < streamedInput.size(); i++) {
- String inputString = (String)theEntity.getValue((String)streamedInput.get(i));
- pstmt.setBytes(i + 1, inputString.getBytes());
- }
- }
- pstmt.executeUpdate();
- } catch (SQLException sqe) {
- throwSQLException(sqe, "update");
- } finally {
- try {
- con.setAutoCommit(true);
- } catch (Exception e) {
- ;
- }
- freeConnection(con, pstmt);
- }
- }
-
- /**
- * put your documentation comment here
- * @return
- */
- public SimpleHash getHashData () {
- return getHashData();
- }
+ public void update (Entity theEntity) throws StorageObjectException {
+ Connection con = null;
+ PreparedStatement pstmt = null;
+ ArrayList streamedInput = theEntity.streamedInput();
+ HashMap theEntityValues = theEntity.getValues();
+ String id = theEntity.getId();
+ String aField;
+ StringBuffer fv = new StringBuffer();
+ boolean firstField = true;
+ //cache
+ invalidatePopupCache();
+ // build sql statement
+ for (int i = 0; i < getFields().size(); i++) {
+ aField = (String)metadataFields.get(i);
+ // only normal cases
+ if (!(aField.equals(thePKeyName) || aField.equals("webdb_create") ||
+ aField.equals("webdb_lastchange") || (streamedInput != null && streamedInput.contains(aField)))) {
+ if (theEntityValues.containsKey(aField)) {
+ if (firstField == false) {
+ fv.append(", ");
+ }
+ else {
+ firstField = false;
+ }
+ if (aField.equals("to_parent_id")) {
+ fv.append(aField).append("=").append(StringUtil.quote((String)theEntityValues.get(aField)));
+ } else {
+ fv.append(aField).append("='").append(StringUtil.quote((String)theEntityValues.get(aField))).append("'");
+ }
+ }
+ }
+ }
+ StringBuffer sql = new StringBuffer("update ").append(theTable).append(" set ").append(fv);
+ // exceptions
+ if (metadataFields.contains("webdb_lastchange")) {
+ sql.append(",webdb_lastchange=NOW()");
+ }
+ if (streamedInput != null) {
+ for (int i = 0; i < streamedInput.size(); i++) {
+ sql.append(",").append(streamedInput.get(i)).append("=?");
+ }
+ }
+ sql.append(" where id=").append(id);
+ theLog.printInfo("UPDATE: " + sql);
+ // execute sql
+ try {
+ con = getPooledCon();
+ con.setAutoCommit(false);
+ pstmt = con.prepareStatement(sql.toString());
+ if (streamedInput != null) {
+ for (int i = 0; i < streamedInput.size(); i++) {
+ String inputString = (String)theEntityValues.get(streamedInput.get(i));
+ pstmt.setBytes(i + 1, inputString.getBytes());
+ }
+ }
+ pstmt.executeUpdate();
+ } catch (SQLException sqe) {
+ throwSQLException(sqe, "update");
+ } finally {
+ try {
+ con.setAutoCommit(true);
+ } catch (Exception e) {
+ ;
+ }
+ freeConnection(con, pstmt);
+ }
+ }
- public SimpleList getPopupData () {
- return getPopupData();
- }
}