Commit cb96f780 authored by Noel Alonso's avatar Noel Alonso
Browse files

Añade métodos para manejar datos con herencia

De esta forma se podrá añadir, editar y borrar documentos de tipo data
con una relación de herencia con otro documento
parent 64ec6e31
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@
	<groupId>es.redmic.lib</groupId>
	<artifactId>elasticsearch-lib</artifactId>
	<packaging>jar</packaging>
	<version>0.10.0</version>
	<version>0.10.0-feature-parentChildIndex</version>
	<name>elasticsearch-lib</name>

	<properties>
+8 −0
Original line number Diff line number Diff line
@@ -29,9 +29,17 @@ public interface IRWBaseESRepository<TModel extends BaseES<?>> {

	EventApplicationResult save(TModel modelToIndex);

	EventApplicationResult save(TModel modelToIndex, String parentId);

	EventApplicationResult update(TModel modelToIndex);

	EventApplicationResult update(TModel modelToIndex, String parentId);

	EventApplicationResult update(String id, XContentBuilder doc);

	EventApplicationResult update(String id, String parentId, XContentBuilder doc);

	EventApplicationResult delete(String id);

	EventApplicationResult delete(String id, String parentId);
}
+34 −0
Original line number Diff line number Diff line
@@ -63,6 +63,10 @@ public class ElasticPersistenceUtils<TModel extends BaseES<?>> {
	protected static String SCRIPT_ENGINE = "groovy";

	public EventApplicationResult save(String index, String type, TModel model, String id) {
		return save(index, type, model, id, null);
	}

	public EventApplicationResult save(String index, String type, TModel model, String id, String parentId) {

		// @formatter:off
		
@@ -71,6 +75,10 @@ public class ElasticPersistenceUtils<TModel extends BaseES<?>> {
				.id(id)
				.setRefreshPolicy(RefreshPolicy.IMMEDIATE);
		
		if (parentId != null) {
			request.parent(parentId);
		}
		
		// @formatter:on

		try {
@@ -84,6 +92,10 @@ public class ElasticPersistenceUtils<TModel extends BaseES<?>> {
	}

	public EventApplicationResult update(String index, String type, TModel model, String id) {
		return update(index, type, model, id, null);
	}

	public EventApplicationResult update(String index, String type, TModel model, String id, String parentId) {

		// @formatter:off

@@ -92,6 +104,10 @@ public class ElasticPersistenceUtils<TModel extends BaseES<?>> {
				.fetchSource(false)
				.setRefreshPolicy(RefreshPolicy.IMMEDIATE);

		if (parentId != null) {
			updateRequest.parent(parentId);
		}
		
		// @formatter:on

		try {
@@ -108,6 +124,11 @@ public class ElasticPersistenceUtils<TModel extends BaseES<?>> {

	public EventApplicationResult update(String index, String type, String id, XContentBuilder doc) {

		return update(index, type, id, null, doc);
	}

	public EventApplicationResult update(String index, String type, String id, String parentId, XContentBuilder doc) {

		// @formatter:off
		
		UpdateRequest updateRequest = new UpdateRequest(index, type, id)
@@ -117,6 +138,10 @@ public class ElasticPersistenceUtils<TModel extends BaseES<?>> {
		
		// @formatter:on

		if (parentId != null) {
			updateRequest.parent(parentId);
		}

		try {
			ESProvider.getClient().update(updateRequest, RequestOptions.DEFAULT);
		} catch (Exception e) {
@@ -129,8 +154,17 @@ public class ElasticPersistenceUtils<TModel extends BaseES<?>> {

	public EventApplicationResult delete(String index, String type, String id) {

		return delete(index, type, id, null);
	}

	public EventApplicationResult delete(String index, String type, String id, String parentId) {

		DeleteRequest deleteRequest = new DeleteRequest(index, type, id).setRefreshPolicy(RefreshPolicy.IMMEDIATE);

		if (parentId != null) {
			deleteRequest.parent(parentId);
		}

		try {
			ESProvider.getClient().delete(deleteRequest, RequestOptions.DEFAULT);
			return new EventApplicationResult(true);
+28 −4
Original line number Diff line number Diff line
@@ -50,6 +50,12 @@ public abstract class RWDataESRepository<TModel extends BaseES<?>, TQueryDTO ext
	@Override
	public EventApplicationResult save(TModel modelToIndex) {

		return save(modelToIndex, null);
	}

	@Override
	public EventApplicationResult save(TModel modelToIndex, String parentId) {

		EventApplicationResult checkInsert = checkInsertConstraintsFulfilled(modelToIndex);

		if (!checkInsert.isSuccess()) {
@@ -57,12 +63,18 @@ public abstract class RWDataESRepository<TModel extends BaseES<?>, TQueryDTO ext
		}

		return elasticPersistenceUtils.save(getIndex(modelToIndex), getType(), modelToIndex,
				modelToIndex.getId().toString());
				modelToIndex.getId().toString(), parentId);
	}

	@Override
	public EventApplicationResult update(TModel modelToIndex) {

		return update(modelToIndex, null);
	}

	@Override
	public EventApplicationResult update(TModel modelToIndex, String parentId) {

		EventApplicationResult checkUpdate = checkUpdateConstraintsFulfilled(modelToIndex);

		if (!checkUpdate.isSuccess()) {
@@ -70,25 +82,37 @@ public abstract class RWDataESRepository<TModel extends BaseES<?>, TQueryDTO ext
		}

		return elasticPersistenceUtils.update(getIndex(modelToIndex), getType(), modelToIndex,
				modelToIndex.getId().toString());
				modelToIndex.getId().toString(), parentId);
	}

	@Override
	public EventApplicationResult update(String id, XContentBuilder doc) {

		return elasticPersistenceUtils.update(getIndex()[0], getType(), id, doc);
		return update(id, null, doc);
	}

	@Override
	public EventApplicationResult update(String id, String parentId, XContentBuilder doc) {

		return elasticPersistenceUtils.update(getIndex()[0], getType(), id, parentId, doc);
	}

	@Override
	public EventApplicationResult delete(String id) {

		return delete(id, null);
	}

	@Override
	public EventApplicationResult delete(String id, String parentId) {

		EventApplicationResult checkDelete = checkDeleteConstraintsFulfilled(id);

		if (!checkDelete.isSuccess()) {
			return checkDelete;
		}

		return elasticPersistenceUtils.delete(getIndex()[0], getType(), id);
		return elasticPersistenceUtils.delete(getIndex()[0], getType(), id, parentId);
	}

	/*