private void registerFlush(final String flushWith, final FlushListener flushListener) { final String[] keysSplit = OR_PATTERN.split(flushWith); for (final String key : keysSplit) { final FlushListener interceptor = interceptorFactory.createFlushInterceptor(flushListener); final FlushListener delegate; if (interceptor == null) { delegate = flushListener; } else { delegate = interceptor; } if (key.equals(RECORD)) { metamorph.registerRecordEndFlush(delegate); } else { metamorph.registerNamedValueReceiver(key, new Flush(delegate)); } } }
@Override protected void enterData(final Node dataNode) { final Data data = new Data(); data.setName(resolvedAttribute(dataNode, AttributeName.NAME)); data.setSourceLocation(getSourceLocation(dataNode)); final NamedValuePipe interceptor = interceptorFactory.createNamedValueInterceptor(); final NamedValuePipe delegate; if (interceptor == null) { delegate = data; } else { delegate = interceptor; data.addNamedValueSource(delegate); } final String source = resolvedAttribute(dataNode, AttributeName.SOURCE); metamorph.registerNamedValueReceiver(source, delegate); stack.push(new StackFrame(data)); }
@Override protected void exitData(final Node node) { final NamedValuePipe dataPipe = stack.pop().getPipe(); final NamedValuePipe interceptor = interceptorFactory.createNamedValueInterceptor(); final NamedValuePipe delegate; if (interceptor == null) { delegate = dataPipe; } else { delegate = interceptor; delegate.addNamedValueSource(dataPipe); } final StackFrame parent = stack.peek(); if (parent.isInEntityName()) { // Protected xsd schema and by assertion in enterName: ((Entity) parent.getPipe()).setNameSource(delegate); } else if (parent.isInCondition()) { // Protected xsd schema and by assertion in enterIf: ((ConditionAware) parent.getPipe()).setConditionSource(delegate); } else { parent.getPipe().addNamedValueSource(delegate); } }
final NamedValuePipe interceptor = interceptorFactory.createNamedValueInterceptor(); final NamedValuePipe delegate; if (interceptor == null) {
final NamedValuePipe tailPipe = currentCollect.getPipe(); final NamedValuePipe interceptor = interceptorFactory.createNamedValueInterceptor(); final NamedValuePipe delegate; if (interceptor == null || tailPipe instanceof Entity) {