protected void addImports(ParserContext parserContext) throws SecurityException, NoSuchMethodException{ addPackageImports(parserContext); addAllStaticMethodsImport(parserContext, MvelUtils.class); addDateUtilsImports(parserContext); addAllStaticMethodsImport(parserContext, Iterators.class); }
/** * クラス内のstaticメソッドを一括でインポートします * @param parserContext * @param clazz */ protected void addAllStaticMethodsImport(ParserContext parserContext, Class<?> clazz){ List<Method> methods=getAllStaticMethods(clazz); for(Method method:methods){ addImport(parserContext, method); } }
public ParserContext getParserContext(){ ParserContext parserContext=new ParserContext(); //parserContext.setStrictTypeEnforcement(true); //parserContext.setStrongTyping(false); try { addImports(parserContext); } catch (Exception e) { throw new RuntimeException(e); } return parserContext; }
private void addDateUtilsImports(ParserContext parserContext) throws SecurityException, NoSuchMethodException{ String methodName=null; methodName="toDate"; addStaticMethodsImport(parserContext, DateUtils.class, methodName); methodName="toSqlDate"; addStaticMethodsImport(parserContext, DateUtils.class, methodName); methodName="toTime"; addStaticMethodsImport(parserContext, DateUtils.class, methodName); methodName="toTimestamp"; addStaticMethodsImport(parserContext, DateUtils.class, methodName); methodName="setDate"; addStaticMethodsImport(parserContext, DateUtils.class, methodName); methodName="setMonth"; addStaticMethodsImport(parserContext, DateUtils.class, methodName); methodName="setYear"; addStaticMethodsImport(parserContext, DateUtils.class, methodName); methodName="currentDateTime"; addStaticMethodsImport(parserContext, DateUtils.class, methodName); methodName="currentDate"; addStaticMethodsImport(parserContext, DateUtils.class, methodName); methodName="currentTime"; addStaticMethodsImport(parserContext, DateUtils.class, methodName); methodName="currentTimestamp"; addStaticMethodsImport(parserContext, DateUtils.class, methodName); } }
/** * クラス内のstaticメソッドを一括でインポートします * @param parserContext * @param clazz */ protected void addStaticMethodsImport(ParserContext parserContext, Class<?> clazz, String methodName, Class<?>... parameterTypes){ Method method; try { method = clazz.getMethod(methodName, parameterTypes); addImport(parserContext, method); } catch (Exception e) { throw new RuntimeException(e); } }
@Override protected void addImports(ParserContext parserContext) throws SecurityException, NoSuchMethodException{ super.addImports(parserContext); addAllStaticMethodsImport(parserContext, HtmlUtils.class); } }
/** * クラス内のstaticメソッドを一括でインポートします * @param parserContext * @param clazz */ protected void addStaticMethodsImport(ParserContext parserContext, Class<?> clazz, String methodName){ List<Method> methods=getAllStaticMethods(clazz); for(Method method:methods){ if (methodName.equals(method.getName())){ addImport(parserContext, method); } } }