--- /dev/null
+package mircoders.entity;
+
+import java.lang.*;
+import java.io.*;
+import java.util.*;
+import java.sql.*;
+
+import webdb.entity.*;
+import webdb.misc.*;
+import webdb.storage.*;
+
+/**
+ * Diese Klasse enthält die Daten eines MetaObjekts
+ *
+ * @author RK
+ * @version 11.11.2000
+ */
+
+
+public class EntityImage extends AbstractEntity implements Entity
+{
+ private static int instances;
+
+ public EntityImage()
+ {
+ super();
+ instances++;
+ }
+
+ public EntityImage(StorageObject theStorage) {
+ this();
+ setStorage(theStorage);
+ }
+
+ //
+ // methods
+
+
+
+ public byte[] getImage()
+ {
+ theLog.printDebugInfo("--getimage started");
+ Connection con=null;Statement stmt=null;
+ byte[] img_data=null;
+
+ try {
+ con = theStorageObject.getPooledCon();
+ con.setAutoCommit(false);
+ stmt = con.createStatement();
+ ResultSet rs = theStorageObject.executeSql(stmt,"select image_data from images where id="+getId());
+ if(rs!=null) {
+ if (rs.next()) {
+ img_data = rs.getBytes(1);
+ }
+ rs.close();
+ }
+ }
+ catch (Exception e) {theLog.printDebugInfo("-- getImage gescheitert: "+e.toString());}
+ finally {
+ try {con.setAutoCommit(true); } catch (Exception e) {;}
+ theStorageObject.freeConnection(con,stmt); }
+
+ return img_data;
+ }
+
+ public void setImage(byte[] uploadData, int imageType)
+ {
+ if (uploadData!=null) {
+ Connection con=null;PreparedStatement pstmt=null;
+ try {
+
+ theLog.printDebugInfo("settimage :: making internal representation of image");
+ WebdbImage webdbImage= new WebdbImage(uploadData,imageType);
+ theLog.printDebugInfo("settimage :: made internal representation of image");
+ byte[] imageData = webdbImage.getImage();
+ theLog.printDebugInfo("settimage :: getImage");
+ byte[] iconData = webdbImage.getIcon();
+ theLog.printDebugInfo("settimage :: getIcon");
+
+ if (iconData!=null && imageData!=null) {
+ con = theStorageObject.getPooledCon();
+ con.setAutoCommit(false);
+ theLog.printDebugInfo("settimage :: trying to insert image");
+
+ // setting values
+ String sql = "update images set img_height='"+webdbImage.getImageHeight() +
+ "',img_width='" + webdbImage.getImageWidth() +
+ "',icon_height='" + webdbImage.getIconHeight() +
+ "',icon_width='" + webdbImage.getIconWidth() + "', image_data=?, icon_data=? where id="+getId();
+ theLog.printDebugInfo("settimage :: updating sizes: "+ sql);
+ pstmt = con.prepareStatement(sql);
+ pstmt.setBytes(1, imageData);
+ pstmt.setBytes(2, iconData);
+ pstmt.executeUpdate();
+ sql="update content set is_produced='0' where to_media="+getId();
+ pstmt = con.prepareStatement(sql);
+ pstmt.executeUpdate();
+ }
+ }
+ catch (Exception e) {theLog.printDebugInfo("settimage :: setImage gescheitert: "+e.toString());}
+ finally {
+ try {con.setAutoCommit(true); } catch (Exception e) {;}
+ theStorageObject.freeConnection(con,pstmt); }
+ }
+ }
+
+ public void update() throws StorageObjectException {
+ super.update();
+ try {
+ theStorageObject.executeUpdate("update content set is_produced='0' where to_media="+getId());
+ } catch (SQLException e) {
+ theLog.printError("EntityImage :: update :: failed!! "+ e.toString());
+ }
+ }
+
+ public void setValues(HashMap theStringValues)
+ {
+ if (theStringValues != null) {
+ if (!theStringValues.containsKey("is_published"))
+ theStringValues.put("is_published","0");
+ }
+ super.setValues(theStringValues);
+ }
+
+ public byte[] getIcon()
+ {
+ Connection con=null;Statement stmt=null;
+ byte[] img_data=null;
+
+ try {
+ con = theStorageObject.getPooledCon();
+ con.setAutoCommit(false);
+ stmt = con.createStatement();
+ ResultSet rs = theStorageObject.executeSql(stmt,"select icon_data from images where id="+getId());
+ if(rs!=null) {
+ if (rs.next()) {
+ img_data = rs.getBytes(1);
+ }
+ rs.close();
+ }
+ }
+ catch (Exception e) {theLog.printDebugInfo("-- getIcon gescheitert: "+e.toString());}
+ finally {
+ try {con.setAutoCommit(true); } catch (Exception e) {;}
+ theStorageObject.freeConnection(con,stmt); }
+
+ return img_data;
+ }
+
+ public void finalize() {
+ instances--;
+ super.finalize();
+ }
+
+}