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

Añade mapper base para métodos comunes

De este modo, provee métodos iguales para mappers de diferentes tipos de datos
parent 3f189289
Loading
Loading
Loading
Loading
+54 −0
Original line number Diff line number Diff line
package es.redmic.viewlib.common.mapper.es2dto;

/*-
 * #%L
 * view-lib
 * %%
 * Copyright (C) 2019 REDMIC Project / Server
 * %%
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * #L%
 */

import es.redmic.brokerlib.avro.common.CommonDTO;
import es.redmic.models.es.common.dto.AggregationsDTO;
import es.redmic.models.es.common.dto.MetaDataDTO;
import es.redmic.models.es.common.model.BaseES;
import es.redmic.models.es.common.model.HitWrapper;
import es.redmic.models.es.common.model.SearchWrapper;

public abstract class BaseESMapper<TDTO extends CommonDTO, TModel extends BaseES<?>> {

	protected abstract TDTO mapSource(TModel model);

	protected MetaDataDTO getMetaDataDTO(HitWrapper hit) {

		MetaDataDTO _meta = new MetaDataDTO();
		_meta.setScore(hit.get_score());
		_meta.setVersion(hit.get_version());
		_meta.setHighlight(hit.getHighlight());
		return _meta;
	}

	AggregationsDTO getAggs(SearchWrapper wrapper) {

		AggregationsDTO aggs = new AggregationsDTO();

		if (wrapper.getAggregations() == null || wrapper.getAggregations().getAttributes().isEmpty())
			return aggs;

		aggs.setAttributes(wrapper.getAggregations().getAttributes());

		return aggs;
	}
}