private JMethod getLocalClassName(EBeansHolder eBeansHolder, JDefinedClass helperClass, JCodeModel codeModel) {
JClass stringClass = eBeansHolder.refClass(String.class);
JMethod getLocalClassName = helperClass.method(PRIVATE | STATIC, stringClass, "getLocalClassName");
JClass contextClass = eBeansHolder.refClass("android.content.Context");
JVar contextParam = getLocalClassName.param(contextClass, "context");
JBlock body = getLocalClassName.body();
JVar packageName = body.decl(stringClass, "packageName", contextParam.invoke("getPackageName"));
JVar className = body.decl(stringClass, "className", contextParam.invoke("getClass").invoke("getName"));
JVar packageLen = body.decl(codeModel.INT, "packageLen", packageName.invoke("length"));
JExpression condition = className.invoke("startsWith").arg(packageName).not()
.cor(className.invoke("length").lte(packageLen))
.cor(className.invoke("charAt").arg(packageLen).ne(lit('.')));
body._if(condition)._then()._return(className);
body._return(className.invoke("substring").arg(packageLen.plus(lit(1))));
return getLocalClassName;
}
}