/*___INFO__MARK_BEGIN__*/
/*************************************************************************
 *
 *  The Contents of this file are made available subject to the terms of
 *  the Sun Industry Standards Source License Version 1.2
 *
 *  Sun Microsystems Inc., March, 2001
 *
 *
 *  Sun Industry Standards Source License Version 1.2
 *  =================================================
 *  The contents of this file are subject to the Sun Industry Standards
 *  Source License Version 1.2 (the "License"); You may not use this file
 *  except in compliance with the License. You may obtain a copy of the
 *  License at http://gridengine.sunsource.net/Gridengine_SISSL_license.html
 *
 *  Software provided under this License is provided on an "AS IS" basis,
 *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
 *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
 *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
 *  See the License for the specific provisions governing your rights and
 *  obligations concerning the Software.
 *
 *   The Initial Developer of the Original Code is: Sun Microsystems, Inc.
 *
 *   Copyright: 2001 by Sun Microsystems, Inc.
 *
 *   All Rights Reserved.
 *
 ************************************************************************/
/*___INFO__MARK_END__*/
/**
 *  Generated from java_delevent.jsp
 *  !!! DO NOT EDIT THIS FILE !!!
 */
<%
  com.sun.grid.cull.JavaHelper jh = (com.sun.grid.cull.JavaHelper)params.get("javaHelper");
  com.sun.grid.cull.CullObject cullObj = (com.sun.grid.cull.CullObject)params.get("cullObj");
  com.sun.grid.cull.CullAttr   attr = null;
  
  String name = jh.getNonPrimitiveClassname(cullObj);
  
%>
package <%=jh.getPackageName()%>;

import com.sun.grid.jgdi.event.DelEvent;
<% if(cullObj.getType() != cullObj.TYPE_PRIMITIVE) { %>
import <%=jh.getFullClassName(cullObj)%>;
<% } %>

/**
 */
public class <%=name%>DelEvent extends DelEvent implements java.io.Serializable {

<% // Default constructor ----------------------------------------- %>
  public <%=name%>DelEvent(long timestamp, int eventID) {
     super(timestamp, eventID, <%=jh.getClassName(cullObj)%>.class );
  } // end of default constructor

  public void set(<%=jh.getClassName(cullObj)%> obj) {
     super.setChangedObject(obj);
  }
  
  public <%=jh.getClassName(cullObj)%> get() {
     return (<%=jh.getClassName(cullObj)%>) getChangedObject();
  }

  
<%@include file="java_event_pkinfo.jsp"%>    
  
   
   /**
    *  Determine if this event has deleted <code>obj</code>
    *  @param   obj  the object
    *  @return  <code>true</code> if this event has deleted <code>obj</code>
    */
   public boolean hasDeletedObject(Object obj) {

      if (obj instanceof  <%=jh.getClassName(cullObj)%>) {
          <%=jh.getClassName(cullObj)%> obj1 = (<%=jh.getClassName(cullObj)%>)obj;
<%
  {
      for(int i = 0; i < cullObj.getPrimaryKeyCount(); i++) {
         attr = cullObj.getPrimaryKeyAttr(i);
         
         String attrName = jh.getAttrName(attr);
         if( attrName.endsWith("List") ) {          
            attrName  = attrName.substring(0, attrName.length() - 4 );
         }
         String gsmName = Character.toUpperCase(attrName.charAt(0)) + attrName.substring(1);

         if(jh.getFullClassName(attr.getType()).equals(String.class.getName())) {
%>         // Attention: strkey must be set for cull event elem
         if (!m_<%=attrName%>.equals(obj1.get<%=gsmName%>())) {
<%
         } else if (jh.getClassName(attr.getType()).equals("int")) {
%>         // Attention: intkey must be set for cull event elem   
         if (m_<%=attrName%> != obj1.get<%=gsmName%>()) {
<%
         } else {

           throw new IllegalStateException("Can not handle primary key field with type " + attr.getType()); 
         }
%>             return false;
         }
<%         
      } // end of for
  }
%>   
         return true;
      }
      return false;
   }
   
   public String toString() {
      StringBuilder ret = new StringBuilder();
      ret.append(super.toString());
      ret.append(",");
      ret.append("<%=jh.getClassName(cullObj)%>");
      ret.append("(");
<%      
  {
      for(int i = 0; i < cullObj.getPrimaryKeyCount(); i++) {
         attr = cullObj.getPrimaryKeyAttr(i);
         String attrName = jh.getAttrName(attr);
         if( attrName.endsWith("List") ) {          
            attrName  = attrName.substring(0, attrName.length() - 4 );
         }
         String gsmName = Character.toUpperCase(attrName.charAt(0)) + attrName.substring(1);

%>          ret.append(m_<%=attrName%>);
<%
      } // end of for
  }
%>   
      ret.append(")");
      return ret.toString();
   }
  
}