Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package org.drools.guvnor.gwtutil;
 /*
  * Copyright 2005 JBoss Inc
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import  org.drools.guvnor.client.rpc.RepositoryService;

This utility uses reflection to generate the async interface from the Service interface as per GWT standard.

Author(s):
Michael Neale
public class AsyncInterfaceGenerator {
    public static void main(String[] argsthrows Exception {
        Class cls = RepositoryService.class;
        String line = "";
        Method[] methods = cls.getMethods();
        for ( int i = 0; i < methods.lengthi++ ) {
            Method meth = methods[i];
            if (meth.getDeclaringClass() == cls) {
                line += "public void " + meth.getName() + "(";
                Class params[] = meth.getParameterTypes();
                for ( int j = 0; j < params.lengthj++ ) {
                    String type = arrayIfy(params[j].getName());
                    if (type.startsWith("[L")) {
                    	type = type.replace("[L""").replace(";""[]");
                    }
                    line += type;
                    line += " p" + j;
                    if (j < params.length -1) {
                        line += ", ";
                    }
                }
            	String retType = arrayIfy(meth.getReturnType().getName());
            	if (retType.equals("void") || retType.startsWith("java.util")) {
                    if (line.endsWith"(" )) {
                        line += "AsyncCallback cb";
                    } else {
                        line += ", AsyncCallback cb";
                    }
            	} else {
	                if (line.endsWith"(" )) {
	                    line += "AsyncCallback<" + retType +"> cb";
	                } else {
	                    line += ", AsyncCallback<" + retType +"> cb";
	                }
            	}
                line += ");\n";
            }
        }
        ..println("/** PLACE THE FOLLOWING IN RepositoryServiceAsync.java **/\n");
        ..println("/** Generated by AsyncInterfaceGenerator hackery */");
        ..println(line);
    }
    public static String arrayIfy(String type) {
        if (type.startsWith("[L")) {
        	type = type.replace("[L""").replace(";""[]");
        }
        return type;
    }
New to GrepCode? Check out our FAQ X