<% /*___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__*/ %> <% com.sun.grid.cull.JavaHelper jh = (com.sun.grid.cull.JavaHelper)params.get("javaHelper"); com.sun.grid.cull.CullDefinition cullDef = (com.sun.grid.cull.CullDefinition)params.get("cullDef"); com.sun.grid.cull.CullObject cullObj = (com.sun.grid.cull.CullObject)params.get("cullObj"); class CGDIGenerator { String fullClassname; String classname; String listname; String cullname; public CGDIGenerator(String fullClassname, String classname, String listname, String cullname) { this.fullClassname = fullClassname.replace('.','/'); this.classname = classname; this.listname = listname; this.cullname = cullname; } public void genListMethod() { String methodName = "Java_com_sun_grid_jgdi_jni_JGDIImpl_fill" + classname + "List"; %> /* * Class: com_sun_grid_jgdi_jni_JGDIImpl * Method: get<%=classname%>List */ JNIEXPORT void JNICALL <%=methodName%>WithAnswer(JNIEnv *env, jobject jgdi, jobject list, jobject filter, jobject answers) { DENTER(TOP_LAYER, "<%=methodName%>"); jgdi_fill(env, jgdi, list, filter, "<%=fullClassname%>", <%=listname%>, <%=cullname%>, answers); DEXIT; } <% } // end of genListMethod public void genAddMethod() { String methodName = "Java_com_sun_grid_jgdi_jni_JGDIImpl_add" + classname; %> /* -------------- ADD ------------------------------------------------------- */ /* * Class: com_sun_grid_jgdi_jni_JGDIImpl * Method: add<%=classname%> * Signature: (L<%=fullClassname%>;)V */ JNIEXPORT void JNICALL <%=methodName%>(JNIEnv *env, jobject jgdi, jobject jobj) { DENTER(TOP_LAYER, "<%=methodName%>"); jgdi_add(env, jgdi, jobj, "<%=fullClassname%>", <%=listname%>, <%=cullname%>, NULL); DEXIT; } /* * Class: com_sun_grid_jgdi_jni_JGDIImpl * Method: add<%=classname%>WithAnswer * Signature: (L<%=fullClassname%>;L/java/util/List;)V */ JNIEXPORT void JNICALL <%=methodName%>WithAnswer(JNIEnv *env, jobject jgdi, jobject jobj, jobject answers) { DENTER(TOP_LAYER, "<%=methodName%>WithAnswer"); jgdi_add(env, jgdi, jobj, "<%=fullClassname%>", <%=listname%>, <%=cullname%>, answers); DEXIT; } <% } // end of genAddMethod public void genDeleteMethod() { String methodName = "Java_com_sun_grid_jgdi_jni_JGDIImpl_delete" + classname; %> /* -------------- Delete ------------------------------------------------------- */ /* * Class: com_sun_grid_jgdi_jni_JGDIImpl * Method: delete<%=classname%> * Signature: (L<%=fullClassname%>;)V */ JNIEXPORT void JNICALL <%=methodName%>(JNIEnv *env, jobject jgdi, jobject jobj) { DENTER(TOP_LAYER, "<%=methodName%>"); jgdi_delete(env, jgdi, jobj, "<%=fullClassname%>", <%=listname%>, <%=cullname%>, false, NULL); DEXIT; } /* * Class: com_sun_grid_jgdi_jni_JGDIImpl * Method: delete<%=classname%>WithAnswer * Signature: (L<%=fullClassname%>;L/java/util/List;)V */ JNIEXPORT void JNICALL <%=methodName%>WithAnswer(JNIEnv *env, jobject jgdi, jobject jobj, jobject answers) { DENTER(TOP_LAYER, "<%=methodName%>WithAnswer"); jgdi_delete(env, jgdi, jobj, "<%=fullClassname%>", <%=listname%>, <%=cullname%>, false, answers); DEXIT; } /* * Class: com_sun_grid_jgdi_jni_JGDIImpl * Method: delete<%=classname%>sWithAnswer * Signature: ([Ljava/lang/Object;ZL/java/util/List;)V */ JNIEXPORT void JNICALL <%=methodName%>sWithAnswer(JNIEnv *env, jobject jgdi, jobjectArray jobj_array, jboolean forced, jobject options, jobject answers) { DENTER(TOP_LAYER, "<%=methodName%>sWithAnswer"); jgdi_delete_array(env, jgdi, jobj_array, "<%=fullClassname%>", <%=listname%>, <%=cullname%>, forced, options, answers); DEXIT; } <% } // end of genDeleteMethod public void genUpdateMethod() { String methodName = "Java_com_sun_grid_jgdi_jni_JGDIImpl_update" + classname; %> /* -------------- Update ------------------------------------------------------- */ /* * Class: com_sun_grid_jgdi_jni_JGDIImpl * Method: update<%=classname%> * Signature: (L<%=fullClassname%>;)V */ JNIEXPORT void JNICALL <%=methodName%>(JNIEnv *env, jobject jgdi, jobject jobj) { DENTER(TOP_LAYER, "<%=methodName%>"); jgdi_update(env, jgdi, jobj, "<%=fullClassname%>", <%=listname%>, <%=cullname%>, NULL); DEXIT; } /* * Class: com_sun_grid_jgdi_jni_JGDIImpl * Method: update<%=classname%>WithAnswer * Signature: (L<%=fullClassname%>;, L/java/util/List;)V */ JNIEXPORT void JNICALL <%=methodName%>WithAnswer(JNIEnv *env, jobject jgdi, jobject jobj, jobject answers) { DENTER(TOP_LAYER, "<%=methodName%>"); jgdi_update(env, jgdi, jobj, "<%=fullClassname%>", <%=listname%>, <%=cullname%>, answers); DEXIT; } <% } // end of genUpdateMethod } // end of class CGDIGenerator // ------------------------------------------------------------------------- // Build the generators // ------------------------------------------------------------------------- java.util.List generators = new java.util.ArrayList(); if (cullObj == null ) { throw new IllegalStateException("param cullObj not found"); } if (cullObj.getIdlName() == null ) { throw new IllegalStateException("cullObj " + cullObj.getName() + " is has no idl name"); } if (cullDef == null ) { throw new IllegalStateException("param cullDef not found"); } if (!cullObj.isRootObject()) { return; } String listname = cullObj.getListName(); if (listname == null) { // we not a ILISTDEF, return return; } { CGDIGenerator gen = null; if (cullObj.getParentName() != null) { gen = new CGDIGenerator(jh.getFullClassName(cullObj), cullObj.getIdlName(), listname, cullObj.getParentName()); } else { gen = new CGDIGenerator(jh.getFullClassName(cullObj), cullObj.getIdlName(), listname, cullObj.getName()); } generators.add(gen); } %> <% boolean first = true; for (CGDIGenerator gen : generators) { if (first) { first = false; %> /*___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__*/ #include #include #include #include "basis_types.h" #include "cull.h" #include "commlib.h" #include "sgermon.h" #include "sge_all_listsL.h" #include "sge_answer.h" #include "sge_prog.h" #include "sge_bootstrap.h" #include "sge_gdi_ctx.h" #include "cl_errors.h" #include "sge_log.h" #include "sge_error_class.h" #include "jgdi_common.h" #include "jgdi.h" #define JGDI_DEBUG <%} gen.genListMethod(); gen.genAddMethod(); gen.genDeleteMethod(); gen.genUpdateMethod(); } %>