Menu

[r2016]: / trunk / ch.sahits.codegen.java / jet_templates / dbbean.javajet  Maximize  Restore  History

Download this file

209 lines (194 with data), 8.3 kB

<%@ jet imports="java.util.* ch.sahits.model.* ch.sahits.model.db.* ch.sahits.model.java.* ch.sahits.model.java.db.* ch.sahits.codegen.java.model.util.* java.lang.reflect.* " package="PAGAGE_NAME" class="CLASS_NAME" %>
<% DataBaseTable dbt = (DataBaseTable) argument; %>
<%=ConvenientCodegen.toPackageDefinition(dbt.getPackageName()) 
%><% Set importClasses = new HashSet();
     importClasses.addAll(dbt.usedClasses()); 
	if (dbt.hasSuperClass() && !dbt.superclasses().get(0).equals(Object.class)){
		// Add interfaces from abstract methods of super class
		Class clazz = dbt.superclasses().get(0);
		MethodReflector mr = new MethodReflector(clazz);
		importClasses.addAll(mr.neededImportsOfAbstractMethods());
	}
	if (!dbt. interfaces().isEmpty()){
		Class[] interfaces = dbt.getInterfaces();
		for (int i=0;i<interfaces.length; i++ ){
			MethodReflector mr = new MethodReflector(interfaces[i]);
			importClasses.addAll(mr.needeImportsOfNonPrivateMethods());
		}
	 }
     for (Iterator i = importClasses.iterator(); i.hasNext(); ){
         Class c = (Class)i.next();
         if (!ConvenientCodegen.isPrimitiveClass(c)){
%>import <%=c.getName() %>;

<% } // end if
 } %><% if (dbt.hasSuperClass() && !ConvenientCodegen.isPrimitiveClass((Class)dbt.superclasses().get(0))){
%>
import <%=((Class)dbt.superclasses().get(0)).getName() %>;<%
} %><% if (!dbt.interfaces().isEmpty()){
	   Class[] interfaces = dbt.getInterfaces();
	   for (int i=0;i<interfaces.length; i++ ){%>
import <%=interfaces[i].getName() %>;
<% }
} %>
/**
 * This class represents the database table
 * <%=dbt.getTableName() %>.
 */
<% if (dbt.isPublic()){  %>
public <% } else if (dbt.isProtected()){ %>
protected <% } else if (dbt.isPrivate()){ %>
private <% } 
%><% if (dbt.isAbstract()) { 
%>abstract <% } 
%><% if (dbt.isFinal()) {
%>final <% } 
%>class <%=dbt.getClassName() %><% if (dbt.hasSuperClass() && !dbt.superclasses().get(0).equals(Object.class)){
%> extends <%=ConvenientCodegen.getSimpleClassName((Class)dbt.superclasses().get(0)) %><% } 
%><% if (!dbt. interfaces().isEmpty()){
Class[] interfaces = dbt.getInterfaces();
%> implements <% for (int i=0;i<interfaces.length; i++ ){ 
			  %><%=ConvenientCodegen.getSimpleClassName((Class)interfaces[i]) 
			  %><% if (i==interfaces.length-1){
			  		%> <% } else {
			  		%>, <% }
			  %><% } 
%><% } 
%> {

<% List fields = dbt.getFields();
   for (Iterator i = fields.iterator(); i.hasNext(); ){
       DataBaseTableField field = (DataBaseTableField)i.next();
%>
    /** <code><%= ConvenientCodegen.toName( field.getFieldName(),"_" ) %></code> holds the value of the field <%=field.getFieldName() %> */ 
    private <%=ConvenientCodegen.getSimpleClassName( field.getFieldType()) %> <%= ConvenientCodegen.toName( field.getFieldName(),"_" ) %>;
<% } %>
<%

// Add the constructors from the super class

if (dbt.hasSuperClass() && !dbt.superclasses().get(0).equals(Object.class)){
		Class clazz = dbt.superclasses().get(0);
		MethodReflector mr = new MethodReflector(clazz);
		if (mr.hasMultipleConstructors()){
			List<Constructor<?>> constructors = mr.getConstructor();
			for (Constructor c : constructors){ %>
  	/**
  	 * @see <%=clazz.getName() %>#<%=dbt.getClassName() %>(<%
  	            Type[] paramTypes = c.getGenericParameterTypes();
  	            for (int j=0;j<paramTypes.length;j++){
  	            	String simpleName = ConvenientCodegen.getSimpleClassName( (Class)paramTypes[j]);
  	            	%><%=simpleName %><% if (j<paramTypes.length-1){%>, <%}
  	            }%>)
  	 */
	public <%=dbt.getClassName() %>(<%
				List<Map.Entry<String, Object>> args = mr.getArguments(c);	
		  	 	for (int j=0;j<args.size();j++){
		  	 		Map.Entry<String, Object> p = args.get(j);
		  	 		%><%=p.getKey() %> <%=p.getValue() %><% if (j<args.size()-1){%>, <%}
		  	 	} // End for loop arguments
		  	 	%>)<%
		  	 	List<String> exs =  mr.getException(c);
		  	 	for (int j=0;j<exs.size();j++){
		  	 		%><%=exs.get(j) %><% if (j<exs.size()-1){%>, <%}
		  	 	}%>{
		super(<%
		  	 	for (int j=0;j<args.size();j++){
		  	 		Map.Entry<String, Object> p = args.get(j);
		  	 		%><%=p.getValue() %><% if (j<args.size()-1){%>, <%}
		  	 	} // End for loop arguments
		  	 	%>);
	}<%
			}
		}
}

// End adding constructors

%>
<% for (Iterator i = fields.iterator(); i.hasNext(); ){
       DataBaseTableField field = (DataBaseTableField)i.next();
%>
    /**
     * Retrieve the value of the field <%=field.getFieldName() %>.
     * @return the value of the field
     */
    public <%=ConvenientCodegen.getSimpleClassName( field.getFieldType()) %> <%= ConvenientCodegen.toName( "get_"+field.getFieldName(),"_" ) %>(){
        return <%= ConvenientCodegen.toName( field.getFieldName(),"_" ) %>;
    }
    
    /**
     * Set the value of the field <%=field.getFieldName() %>.
     * @param <%= ConvenientCodegen.toName( field.getFieldName(),"_" ) %> value to be set for <%=field.getFieldName() %>
     */
    public void <%= ConvenientCodegen.toName( "set_"+field.getFieldName(),"_" ) %>(<%=ConvenientCodegen.getSimpleClassName( field.getFieldType()) %> <%= ConvenientCodegen.toName( field.getFieldName(),"_" ) %>){
        this.<%= ConvenientCodegen.toName( field.getFieldName(),"_" ) %> = <%= ConvenientCodegen.toName( field.getFieldName(),"_" ) %>;
    }    
<% } // End for loop fields 
%><%

// START implementation of abstract methods of super class

%>
<%
/* Abstract classes from the superclass */
if (dbt.hasSuperClass() && !dbt.superclasses().get(0).equals(Object.class)){
  Class clazz = dbt.superclasses().get(0);
  MethodReflector mr = new MethodReflector(clazz);
  List<Method> ms =  mr.getAbstractMethods();
  for (Method m : ms){
  	%>
  	/**
  	 * @see <%=clazz.getName() %>#<%=mr.getMethodName(m) %>(<%
  	            Type[] paramTypes = m.getGenericParameterTypes();
  	            for (int j=0;j<paramTypes.length;j++){
  	            	String simpleName = ConvenientCodegen.getSimpleClassName( (Class)paramTypes[j]);
  	            	%><%=simpleName %><% if (j<paramTypes.length-1){%>, <%}
  	            }%>)
  	 */
  	 <%=mr.getAccessModifier(m) %> <%=mr.getReturnType(m) %> <%=mr.getMethodName(m) %>(<%
  	 	List<Map.Entry<String, Object>> args = mr.getArguments(m);
  	 	for (int j=0;j<args.size();j++){
  	 		Map.Entry<String, Object> p = args.get(j);
  	 		%><%=p.getKey() %> <%=p.getValue() %><% if (j<paramTypes.length-1){%>, <%}
  	 	} // End for loop arguments
  	 	%>)<%
  	 	List<String> exs =  mr.getException(m);
  	 	for (int j=0;j<exs.size();j++){
  	 		%><%=exs.get(j) %><% if (j<paramTypes.length-1){%>, <%}
  	 	}%>{
  	 	  // TODO: implement this method-stub
  	 	  <% if (!mr.getReturnType(m).equals("void")){%>return <%=mr.getReturnValue(m) %>;

<% }
%>}<%
  } // End of for loop
} /* End if superclass*/
  %><%

// END implementation of abstract methods of super class

// START implementation of interface methods

 if (!dbt. interfaces().isEmpty()){
		Class[] interfaces = dbt.getInterfaces();
		for (int i=0;i<interfaces.length; i++ ){
		  MethodReflector mr = new MethodReflector(interfaces[i]);
		  List<Method> ms =  mr.getPublicOrProtectedMethods();
		  for (Method m : ms){
		  	%>
		  	/**
		  	 * @see <%=interfaces[i].getName() %>#<%=mr.getMethodName(m) %>(<%
		  	            Type[] paramTypes = m.getGenericParameterTypes();
		  	            for (int j=0;j<paramTypes.length;j++){
		  	            	String simpleName = ConvenientCodegen.getSimpleClassName( (Class)paramTypes[j]);
		  	            	%><%=simpleName %><% if (j<paramTypes.length-1){%>, <%}
		  	            }%>)
		  	 */
		  	 <%=mr.getAccessModifier(m) %> <%=mr.getReturnType(m) %> <%=mr.getMethodName(m) %>(<%
		  	 	List<Map.Entry<String, Object>> args = mr.getArguments(m);
		  	 	for (int j=0;j<args.size();j++){
		  	 		Map.Entry<String, Object> p = args.get(j);
		  	 		%><%=p.getKey() %> <%=p.getValue() %><% if (j<paramTypes.length-1){%>, <%}
		  	 	} // End for loop arguments
		  	 	%>)<%
		  	 	List<String> exs =  mr.getException(m);
		  	 	for (int j=0;j<exs.size();j++){
		  	 		%><%=exs.get(j) %><% if (j<paramTypes.length-1){%>, <%}
		  	 	}%>{
		  	 	  // TODO: implement this method-stub
		  	 	  <% if (!mr.getReturnType(m).equals("void")){%>return <%=mr.getReturnValue(m) %>;
		
		<% }
		%>}<%
		  } // End of for loop methods
		} // end for interfaces 
} // end if interfaces
%>

}
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.