package com.k_int.aggr2.mimsy.data;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.Transient;

public class ExtensionFieldDTO implements Serializable
{
	private static final long serialVersionUID = 1L;	
	
	private String solr_field = null;
	private String field_name = null;
	private List<String> values = new ArrayList<String>();
	
	protected ExtensionFieldDTO()
	{;}
	
	public ExtensionFieldDTO(String solr_field, String field_name, List<String> values)
	{
		this.solr_field = solr_field;
		this.field_name = field_name;
		this.values = values;
	}
	
	public boolean equals(Object o)
	{
		boolean retval=false;
		
		if(o instanceof ExtensionFieldDTO)
		{
			retval = (o.toString()).equals(this.toString());
		}
			  
		return retval;  
	}
	
	public String toString()
	{
		StringBuilder builder = new StringBuilder();
		if(solr_field != null)
			builder.append(solr_field);
		if(field_name != null)
			builder.append(field_name);
	
		if(values != null && values.size() > 0)
		{
			for(String value : values)
			{
				builder.append(value);
			}
		}
		
		return builder.toString();
	}
	
	public int hashCode()
	{
		return toString().hashCode();
	}

	protected String getSolrField() {
		return solr_field;
	}

	public void setSolrField(String solrField) {
		solr_field = solrField;
	}

	protected String getFieldName() {
		return field_name;
	}

	public void setFieldName(String fieldName) {
		field_name = fieldName;
	}

	public List<String> getValues() {
		return values;
	}

	public void setValues(List<String> values) {
		this.values = values;
	}
	
	@Transient
	public String getIndexName()
	{
		return solr_field != null ? solr_field : field_name;
	}
	
}
