private void resetDocument() { this.currentSpaceReference = null; this.currentLegacySpace = null; this.currentDocumentReference = null; this.currentLegacyDocument = null; this.currentDocumentLocale = null; this.currentDocumentRevision = null; this.currentDocumentParameters = new FilterEventParameters(); // Defaults this.currentDocumentParameters.put(WikiDocumentFilter.PARAMETER_LOCALE, Locale.ROOT); this.currentDocumentLocaleParameters = new FilterEventParameters(); this.currentDocumentRevisionParameters = new FilterEventParameters(); this.sentBeginWikiDocument = false; this.sentBeginWikiDocumentLocale = false; this.sentBeginWikiDocumentRevision = false; this.localeFromLegacy = true; }
private <T> T get(Type type, String key, FilterEventParameters parameters, T def, boolean replaceNull) { if (!parameters.containsKey(key)) { return def; } Object value = parameters.get(key); if (value == null) { return replaceNull ? def : null; } if (TypeUtils.isInstance(value, type)) { return (T) value; } return this.converter.convert(type, value); }
@Override protected FilterEventParameters convertToType(Type type, Object value) { if (value == null) { return null; } FilterEventParameters parameters; if (value instanceof FilterEventParameters) { parameters = (FilterEventParameters) value; } else if (value instanceof Map) { parameters = new FilterEventParameters(); parameters.putAll((Map) value); } else { String parametersString = value.toString().trim(); if (StringUtils.isEmpty(parametersString)) { parameters = FilterEventParameters.EMPTY; } else { throw new ConversionException("Only able to convert empty string to [" + FilterEventParameters.class.getName() + "]"); } } return parameters; }
private void writeDocument(String document, Object filter, InstanceFilter proxyFilter) throws WikiStreamException { FilterEventParameters parameters = new FilterEventParameters(); for (InstanceInputEventGenerator generator : this.eventGenerators) { generator.setWikiDocumentParameters(document, parameters); } proxyFilter.beginWikiDocument(document, parameters); for (InstanceInputEventGenerator generator : this.eventGenerators) { generator.beginWikiDocument(document, parameters); } for (InstanceInputEventGenerator generator : this.eventGenerators) { generator.endWikiDocument(document, parameters); } proxyFilter.endWikiDocument(document, parameters); } }
wikiClass.parameters.put(WikiClassFilter.PARAMETER_NAME, wikiClass.name); } else if (XARClassModel.CLASS_PARAMETERS.containsKey(elementName)) { String value = xmlReader.getElementText(); Object wsValue = convert(parameter.type, value); if (wsValue != null) { wikiClass.parameters.put(parameter.name, wsValue);
if (parameters.containsKey(PARAMETER_FIRSTNAME)) { map.put("first_name", getString(PARAMETER_FIRSTNAME, parameters, "")); if (parameters.containsKey(PARAMETER_LASTNAME)) { map.put("last_name", getString(PARAMETER_LASTNAME, parameters, "")); if (parameters.containsKey(PARAMETER_EMAIL)) { map.put("email", getString(PARAMETER_EMAIL, parameters, "")); if (parameters.containsKey(UserFilter.PARAMETER_CREATION_DATE)) { userDocument.setCreationDate(getDate(UserFilter.PARAMETER_CREATION_DATE, parameters, new Date())); if (parameters.containsKey(UserFilter.PARAMETER_REVISION_DATE)) { userDocument.setDate(getDate(UserFilter.PARAMETER_REVISION_DATE, parameters, new Date())); userDocument.setContentUpdateDate(getDate(UserFilter.PARAMETER_REVISION_DATE, parameters,
@Override public void beginWikiDocument(String name, FilterEventParameters parameters) throws WikiStreamException { this.currentEntityReference = new EntityReference(name, EntityType.DOCUMENT, this.currentEntityReference); this.currentDefaultLocale = (Locale) parameters.get(WikiDocumentFilter.PARAMETER_LOCALE); }
private void sendBeginWikiDocumentLocale(XARInputFilter proxyFilter, boolean force) throws FilterException { if (force || (this.currentDocumentReference != null && this.currentDocumentLocale != null)) { LocalDocumentReference reference = new LocalDocumentReference(this.currentDocumentReference, this.currentDocumentLocale); if (this.properties.getEntities() != null && !this.properties.getEntities().matches(reference)) { throw new SkipEntityException(reference); } sendBeginWikiDocument(proxyFilter, force); if (canSendBeginWikiDocumentLocale(force)) { if (!this.properties.isWithHistory()) { this.currentDocumentLocaleParameters.remove(XWikiWikiDocumentFilter.PARAMETER_JRCSREVISIONS); } proxyFilter.beginWikiDocumentLocale(this.currentDocumentLocale, this.currentDocumentLocaleParameters); this.sentBeginWikiDocumentLocale = true; } } }
private void writeSpace(String wiki, String space, Object filter, InstanceFilter proxyFilter) throws WikiStreamException { FilterEventParameters parameters = new FilterEventParameters(); for (InstanceInputEventGenerator generator : this.eventGenerators) { generator.setWikiSpaceParameters(space, parameters); } proxyFilter.beginWikiSpace(space, parameters); for (InstanceInputEventGenerator generator : this.eventGenerators) { generator.beginWikiSpace(space, parameters); } for (String documentName : this.instanceModel.getDocuments(wiki, space)) { if (isDocumentEnabled(wiki, space, documentName)) { writeDocument(documentName, filter, proxyFilter); } else { if (this.properties.isVerbose()) { this.logger.info(LOG_DOCUMENT_SKIPPED, "Skipped document [{}]", new DocumentReference(wiki, space, documentName)); } } } for (InstanceInputEventGenerator generator : this.eventGenerators) { generator.endWikiSpace(space, parameters); } proxyFilter.endWikiSpace(space, parameters); }
@Override public WikiObject read(XMLStreamReader xmlReader, XARInputProperties properties) throws XMLStreamException, FilterException { WikiObject wikiObject = new WikiObject(); for (xmlReader.nextTag(); xmlReader.isStartElement(); xmlReader.nextTag()) { String elementName = xmlReader.getLocalName(); if (elementName.equals(XARClassModel.ELEMENT_CLASS)) { wikiObject.wikiClass = this.classReader.read(xmlReader, properties); } else if (elementName.equals(XARObjectPropertyModel.ELEMENT_PROPERTY)) { wikiObject.properties.add(readObjectProperty(xmlReader, properties, wikiObject.wikiClass)); } else { String value = xmlReader.getElementText(); EventParameter parameter = XARObjectModel.OBJECT_PARAMETERS.get(elementName); if (parameter != null) { Object wsValue = convert(parameter.type, value); if (wsValue != null) { wikiObject.parameters.put(parameter.name, wsValue); } } } } return wikiObject; } }
if (parameters.containsKey(WikiAttachmentFilter.PARAMETER_REVISION)) { String version = getString(WikiAttachmentFilter.PARAMETER_REVISION, parameters, null); if (version != null) {
String type = (String) parameters.get(WikiObjectPropertyFilter.PARAMETER_TYPE); if (type == null && this.currentObjectProperties != null) { type = this.currentObjectProperties.get(name);
FilterEventParameters classParameters = new FilterEventParameters(); classParameters.put(WikiClassFilter.PARAMETER_CUSTOMCLASS, xclass.getCustomClass()); classParameters.put(WikiClassFilter.PARAMETER_CUSTOMMAPPING, xclass.getCustomMapping()); classParameters.put(WikiClassFilter.PARAMETER_DEFAULTSPACE, xclass.getDefaultWeb()); classParameters.put(WikiClassFilter.PARAMETER_NAMEFIELD, xclass.getNameField()); classParameters.put(WikiClassFilter.PARAMETER_SHEET_DEFAULTEDIT, xclass.getDefaultEditSheet()); classParameters.put(WikiClassFilter.PARAMETER_SHEET_DEFAULTVIEW, xclass.getDefaultViewSheet()); classParameters.put(WikiClassFilter.PARAMETER_VALIDATIONSCRIPT, xclass.getValidationScript());
private <T> T get(Type type, String key, FilterEventParameters parameters, T def) { if (!parameters.containsKey(key)) { return def; } Object value = parameters.get(key); if (value == null) { return null; } if (TypeUtils.isInstance(value, type)) { return (T) value; } return this.converter.convert(type, value); }
private void writeWiki(String wiki, Object filter, InstanceFilter proxyFilter) throws WikiStreamException { FilterEventParameters parameters = new FilterEventParameters(); for (InstanceInputEventGenerator generator : this.eventGenerators) { generator.setWikiParameters(wiki, parameters); } proxyFilter.beginWiki(wiki, parameters); for (InstanceInputEventGenerator generator : this.eventGenerators) { generator.beginWiki(wiki, parameters); } for (String spaceName : this.instanceModel.getSpaces(wiki)) { if (isSpaceEnabled(wiki, spaceName)) { writeSpace(wiki, spaceName, filter, proxyFilter); } } for (InstanceInputEventGenerator generator : this.eventGenerators) { generator.endWiki(wiki, parameters); } proxyFilter.endWiki(wiki, parameters); }
Object wsValue = convert(parameter.type, xmlReader.getElementText()); if (wsValue != null) { wikiAttachment.parameters.put(parameter.name, wsValue);
if (this.currentLocaleParameters.containsKey(WikiDocumentFilter.PARAMETER_CREATION_AUTHOR)) { this.document.setCreator(getString(WikiDocumentFilter.PARAMETER_CREATION_AUTHOR, this.currentLocaleParameters, null)); if (parameters.containsKey(WikiDocumentFilter.PARAMETER_REVISION_AUTHOR)) { this.document.setAuthor(getString(WikiDocumentFilter.PARAMETER_REVISION_AUTHOR, parameters, null)); if (parameters.containsKey(WikiDocumentFilter.PARAMETER_CONTENT)) { this.document.setContent(getString(WikiDocumentFilter.PARAMETER_CONTENT, parameters, null)); } else {
private static void invokeUnkown(Object filter, FilterDescriptor descriptor, Method method, Object[] args) throws FilterException { String id = DefaultFilterDescriptorManager.getElementName(method); if (id != null) { FilterElementDescriptor element = descriptor.getElement(id); if (element != null) { FilterEventParameters metadata = new FilterEventParameters(); for (FilterElementParameterDescriptor<?> parameter : element.getParameters()) { metadata.put( parameter.getName() != null ? parameter.getName() : String.valueOf(parameter.getIndex()), args[parameter.getIndex()]); } UnknownFilter unknownFilter = (UnknownFilter) filter; if (method.getName().startsWith(DefaultFilterDescriptorManager.PREFIX_BEGIN)) { unknownFilter.beginUnknwon(id, metadata); } else if (method.getName().startsWith(DefaultFilterDescriptorManager.PREFIX_END)) { unknownFilter.endUnknwon(id, metadata); } else if (method.getName().startsWith(DefaultFilterDescriptorManager.PREFIX_ON)) { unknownFilter.onUnknwon(id, metadata); } } } } }
public void send(XARInputFilter proxyFilter) throws FilterException { String name = null; if (this.parameters.containsKey(WikiObjectFilter.PARAMETER_CLASS_REFERENCE)) { StringBuilder nameBuilder = new StringBuilder(this.parameters.get(WikiObjectFilter.PARAMETER_CLASS_REFERENCE).toString()); if (this.parameters.containsKey(WikiObjectFilter.PARAMETER_NUMBER)) { nameBuilder.append('['); nameBuilder.append(this.parameters.get(WikiObjectFilter.PARAMETER_NUMBER)); nameBuilder.append(']'); } name = nameBuilder.toString(); } proxyFilter.beginWikiObject(name, this.parameters); if (this.wikiClass != null) { this.wikiClass.send(proxyFilter); } for (WikiObjectProperty property : this.properties) { property.send(proxyFilter); } proxyFilter.endWikiObject(name, this.parameters); } }
private void writeDocument(DocumentReference documentReference, Object filter, InstanceFilter proxyFilter) throws FilterException { FilterEventParameters parameters = new FilterEventParameters(); for (InstanceInputEventGenerator generator : this.eventGenerators) { generator.setWikiDocumentParameters(documentReference.getName(), parameters); } proxyFilter.beginWikiDocument(documentReference.getName(), parameters); for (InstanceInputEventGenerator generator : this.eventGenerators) { generator.beginWikiDocument(documentReference.getName(), parameters); } for (InstanceInputEventGenerator generator : this.eventGenerators) { generator.endWikiDocument(documentReference.getName(), parameters); } proxyFilter.endWikiDocument(documentReference.getName(), parameters); } }