public void defineTransformer() { if (params.containsKey(TRANSFORMER)) { transformerName = params.get(TRANSFORMER); return; } if (r.getEndpointFeatures(endpointClazz).hasTranformer(actionName)) { transformerName = actionName; return; } if (r.getEndpointFeatures(endpointClazz).hasTranformer(DEFAULT_TRANSFORMER_NAME)) { transformerName = DEFAULT_TRANSFORMER_NAME; return; } }
public static boolean isPipeSink(Repository r, Class<?> endpointClazz) { return r.getEndpointFeatures(endpointClazz).getPipesSink().size() != 0; } }
public void build() { try { method = r.getEndpointFeatures(endpointClazz).getTransformer(name); Class<? extends Transformer<F>> transformerClazz = (Class<? extends Transformer<F>>) method.getDeclaringClass(); transformerInstance = transformerClazz.newInstance(); transformerInstance.setRepository(r); } catch (InstantiationException | IllegalAccessException e) { throw new RuntimeException(e); } }
public static boolean isPipeSource(Repository r, Class<?> endpointClazz) { return r.getFeatures() != null && r.getEndpointFeatures(endpointClazz).getPipes().size() != 0; }
@Override public EndpointFeatures<?> getEndpointFeatures(String endpointPath) { init(); return get().getEndpointFeatures(endpointPath); }
public void defineShield() { EndpointFeatures<?> endpointFeatures = r.getEndpointFeatures(endpointClazz); if (endpointFeatures.hasShield()) { shield = createShield(endpointFeatures); } }
private static void invokeHooks(Repository r, Class<?> targetClazz, Object argument, String methodName) { for (Class<? extends Hook> hookClazz : r.getEndpointFeatures(targetClazz).getHooks()) { invokeHookMethod(r, hookClazz, methodName, argument); } }
@Override public <T> EndpointFeatures<T> getEndpointFeatures(Class<T> endpoint) { init(); return get().getEndpointFeatures(endpoint); }
public static void flux(Repository r, Object source) { logger.finer("flux"); Class<?> endpointClazz = source.getClass(); if (!isPipeSource(r, endpointClazz)) { return; } for (Class<? extends Pipe> pipeClazz : r.getEndpointFeatures(endpointClazz).getPipes()) { Pipe pipe = Pipe.newInstance(r, pipeClazz); r.driver().pipes().flux(pipe, source); } logger.finer("done"); }
private static void refluxOld(Repository r, Class<?> endpointClazz, Object source, Object oldSource) { if (!isPipeSource(r, endpointClazz)) { return; } logger.finer("refluxing old"); for (Class<? extends Pipe> pipeClazz : r.getEndpointFeatures(endpointClazz).getPipes()) { Pipe pipe = Pipe.newInstance(r, pipeClazz); r.driver().pipes().refluxOld(pipe, source, oldSource); } }
private static void reflowSink(Repository r, Class<?> endpointClazz, Object sink, Object oldSink) { if (!isPipeSink(r, endpointClazz)) { return; } logger.finer("reflowing sink"); for (Class<? extends Pipe> pipeClazz : r.getEndpointFeatures(endpointClazz).getPipesSink()) { Pipe pipe = Pipe.newInstance(r, pipeClazz); if (!pipe.reflowCondition(sink, oldSink)) { continue; } r.driver().pipes().reflow(pipe, sink); } }
public static void reflux(Repository r, IdRef<?> id) { logger.finer("reflux"); Class<?> endpointClazz = id.getClazz(); if (!isPipeSource(r, endpointClazz)) { return; } // TODO: Pipes - Think about... Shield may have already loaded this source. Object source; try { source = id.fetch(); } catch (NoResultException e) { return; } for (Class<? extends Pipe> pipeClazz : r.getEndpointFeatures(endpointClazz).getPipes()) { Pipe pipe = Pipe.newInstance(r, pipeClazz); r.driver().pipes().reflux(pipe, source); } logger.finer("done"); }