public Builder enumImports(final Collection<String> enums) { for (String enumItem : enums) { try { if (enumItem.endsWith("#*")) { final String classString = enumItem.substring(0, enumItem.length() - 2); final Class<?> clazz = Class.forName(classString); enumImports.addAll(allEnums(clazz)); } else { final Matcher matcher = ENUM_PATTERN.matcher(enumItem); if (!matcher.matches()) throw new IllegalArgumentException(String.format("Could not read enum descriptor - check format of: %s", enumItem)); final String classString = matcher.group(1); final String enumValString = matcher.group(2); final Class<?> clazz = Class.forName(classString); Stream.of(clazz.getEnumConstants()) .filter(e -> ((Enum) e).name().equals(enumValString)) .findFirst().ifPresent(e -> enumImports.add((Enum) e)); } } catch (IllegalArgumentException iae) { throw iae; } catch (Exception ex) { throw new IllegalStateException(ex); } } return this; }
public Builder methodImports(final Collection<String> methods) { for (String method : methods) { try { if (method.endsWith("#*")) { final String classString = method.substring(0, method.length() - 2); final Class<?> clazz = Class.forName(classString); methodImports.addAll(allStaticMethods(clazz)); } else { final Matcher matcher = METHOD_PATTERN.matcher(method); if (!matcher.matches()) throw new IllegalArgumentException(String.format("Could not read method descriptor - check format of: %s", method)); final String classString = matcher.group(1); final String methodString = matcher.group(2); final String argString = matcher.group(3); final Class<?> clazz = Class.forName(classString); methodImports.add(clazz.getMethod(methodString, parse(argString))); } } catch (IllegalArgumentException iae) { throw iae; } catch (Exception ex) { throw new IllegalStateException(ex); } } return this; }
public Builder enumImports(final Collection<String> enums) { for (String enumItem : enums) { try { if (enumItem.endsWith("#*")) { final String classString = enumItem.substring(0, enumItem.length() - 2); final Class<?> clazz = Class.forName(classString); enumImports.addAll(allEnums(clazz)); } else { final Matcher matcher = ENUM_PATTERN.matcher(enumItem); if (!matcher.matches()) throw new IllegalArgumentException(String.format("Could not read enum descriptor - check format of: %s", enumItem)); final String classString = matcher.group(1); final String enumValString = matcher.group(2); final Class<?> clazz = Class.forName(classString); Stream.of(clazz.getEnumConstants()) .filter(e -> ((Enum) e).name().equals(enumValString)) .findFirst().ifPresent(e -> enumImports.add((Enum) e)); } } catch (IllegalArgumentException iae) { throw iae; } catch (Exception ex) { throw new IllegalStateException(ex); } } return this; }
public Builder methodImports(final Collection<String> methods) { for (String method : methods) { try { if (method.endsWith("#*")) { final String classString = method.substring(0, method.length() - 2); final Class<?> clazz = Class.forName(classString); methodImports.addAll(allStaticMethods(clazz)); } else { final Matcher matcher = METHOD_PATTERN.matcher(method); if (!matcher.matches()) throw new IllegalArgumentException(String.format("Could not read method descriptor - check format of: %s", method)); final String classString = matcher.group(1); final String methodString = matcher.group(2); final String argString = matcher.group(3); final Class<?> clazz = Class.forName(classString); methodImports.add(clazz.getMethod(methodString, parse(argString))); } } catch (IllegalArgumentException iae) { throw iae; } catch (Exception ex) { throw new IllegalStateException(ex); } } return this; }
public static Builder build() { return new Builder(); }
@Test public void shouldReturnNoCustomizers() { final GremlinScriptEngineManager mgr = new DefaultGremlinScriptEngineManager(); mgr.addPlugin(ImportGremlinPlugin.build() .classImports(java.awt.Color.class) .appliesTo(Collections.singletonList("fake-script-engine")).create()); assertEquals(0, mgr.getCustomizers(ENGINE_TO_TEST).size()); }
public static Builder build() { return new Builder(); }
@Test public void shouldReturnNoCustomizers() { final GremlinScriptEngineManager mgr = new DefaultGremlinScriptEngineManager(); mgr.addPlugin(ImportGremlinPlugin.build() .classImports(java.awt.Color.class) .appliesTo(Collections.singletonList("fake-script-engine")).create()); assertEquals(0, mgr.getCustomizers(ENGINE_TO_TEST).size()); }