Initial revision
[mir.git] / source / mircoders / entity / EntityImage.java
diff --git a/source/mircoders/entity/EntityImage.java b/source/mircoders/entity/EntityImage.java
new file mode 100755 (executable)
index 0000000..6ab1a8f
--- /dev/null
@@ -0,0 +1,155 @@
+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();
+  }
+
+}