@Override public String getQuery(EntityReference reference) throws SolrIndexerException { BaseObjectReference objectReference = new BaseObjectReference(reference); StringBuilder builder = new StringBuilder(); EntityReference documentReference = reference.extractReference(EntityType.DOCUMENT); builder.append(this.documentResolverProvider.get().getQuery(documentReference)); builder.append(QUERY_AND); builder.append(FieldUtils.CLASS); builder.append(':'); builder .append(ClientUtils.escapeQueryChars(this.localSerializer.serialize(objectReference.getXClassReference()))); builder.append(QUERY_AND); builder.append(FieldUtils.NUMBER); builder.append(':'); builder.append(ClientUtils.escapeQueryChars(String.valueOf(objectReference.getObjectNumber()))); return builder.toString(); } }
private String getObjectPropertyContent(ObjectPropertyReference reference) { BaseObjectReference objRef = new BaseObjectReference(reference.getParent()); DocumentReference docRef = new DocumentReference(objRef.getParent()); if (objRef.getObjectNumber() != null) { return dab.getProperty(docRef, objRef.getXClassReference(), objRef.getObjectNumber(), reference.getName()) .toString(); } else { return dab.getProperty(docRef, objRef.getXClassReference(), reference.getName()).toString(); } } }
@Override public void beginWikiObject(String name, FilterEventParameters parameters) throws WikiStreamException { if (name != null) { this.currentEntityReference = new EntityReference(name, EntityType.OBJECT, this.currentEntityReference); } this.currentXObject = new BaseObject(); int number = getInt(WikiObjectFilter.PARAMETER_NUMBER, parameters, -1); String className = getString(WikiObjectFilter.PARAMETER_CLASS_REFERENCE, parameters, null); if (className == null) { BaseObjectReference reference = new BaseObjectReference(this.currentEntityReference); this.currentXObject.setXClassReference(reference.getXClassReference()); if (number < 0 && reference.getObjectNumber() != null) { number = reference.getObjectNumber(); } } else { this.currentXObject.setClassName(className); } if (number < 0) { this.document.addXObject(this.currentXObject); } else { this.document.setXObject(number, this.currentXObject); } this.currentXObject.setGuid(getString(WikiObjectFilter.PARAMETER_GUID, parameters, null)); }
String number = String.valueOf(objectReference.getObjectNumber()); if (event instanceof XObjectAddedEvent) { newEvent = new AnnotationAddedEvent(documentReference, number);
@Override public boolean setFieldsInternal(LengthSolrInputDocument solrDocument, EntityReference entityReference) throws Exception { ObjectPropertyReference objectPropertyReference = new ObjectPropertyReference(entityReference); BaseObjectReference objectReference = new BaseObjectReference(objectPropertyReference.getParent()); DocumentReference classReference = objectReference.getXClassReference(); DocumentReference documentReference = new DocumentReference(objectReference.getParent()); XWikiDocument originalDocument = getDocument(documentReference); BaseProperty<ObjectPropertyReference> objectProperty = originalDocument.getXObjectProperty(objectPropertyReference); if (objectProperty == null) { return false; } // Object solrDocument.setField(FieldUtils.CLASS, localSerializer.serialize(classReference)); solrDocument.setField(FieldUtils.NUMBER, objectReference.getObjectNumber()); // Property solrDocument.setField(FieldUtils.PROPERTY_NAME, objectPropertyReference.getName()); setLocaleAndContentFields(documentReference, solrDocument, objectProperty); return true; }
@Override public boolean setFieldsInternal(LengthSolrInputDocument solrDocument, EntityReference entityReference) throws Exception { BaseObjectReference objectReference = new BaseObjectReference(entityReference); DocumentReference classReference = objectReference.getXClassReference(); DocumentReference documentReference = new DocumentReference(objectReference.getParent()); XWikiDocument originalDocument = getDocument(documentReference); BaseObject object = originalDocument.getXObject(objectReference); if (object == null) { return false; } solrDocument.setField(FieldUtils.ID, resolver.getId(object.getReference())); setDocumentFields(documentReference, solrDocument); solrDocument.setField(FieldUtils.TYPE, objectReference.getType().name()); solrDocument.setField(FieldUtils.CLASS, localSerializer.serialize(classReference)); solrDocument.setField(FieldUtils.NUMBER, objectReference.getObjectNumber()); setLocaleAndContentFields(documentReference, solrDocument, object); return true; }