Package name.pehl.karaka.server.activity.control

Source Code of name.pehl.karaka.server.activity.control.ActivityIndexSearch

package name.pehl.karaka.server.activity.control;

import com.google.appengine.api.search.Document;
import com.google.appengine.api.search.Field;
import com.google.appengine.api.search.Index;
import com.googlecode.objectify.Key;
import name.pehl.karaka.server.activity.entity.Activity;
import name.pehl.karaka.server.search.DescriptiveEntityIndexSearch;
import name.pehl.karaka.server.search.IndexName;
import name.pehl.karaka.server.search.IndexSearch;
import name.pehl.karaka.server.tag.control.TagRepository;
import name.pehl.karaka.server.tag.entity.Tag;

import javax.inject.Inject;
import java.util.Iterator;
import java.util.List;

/**
* @author $LastChangedBy:$
* @version $LastChangedRevision:$
*/
public class ActivityIndexSearch extends DescriptiveEntityIndexSearch<Activity> implements IndexSearch<Activity>
{
    @Inject @IndexName("activity") Index index;
    @Inject TagRepository tagRepository;


    @Override
    protected Index getIndex()
    {
        return index;
    }


    @Override
    protected Document.Builder documentBuilderFor(Activity entity)
    {
        Document.Builder builder = super.documentBuilderFor(entity);
        List<Key<Tag>> tags = entity.getTags();
        if (!tags.isEmpty())
        {
            StringBuilder tagsAsString = new StringBuilder();
            for (Iterator<Key<Tag>> iterator = tags.iterator(); iterator.hasNext(); )
            {
                Key<Tag> key = iterator.next();
                Tag tag = tagRepository.get(key);
                tagsAsString.append(tag.getName());
                if (iterator.hasNext())
                {
                    tagsAsString.append(" ");
                }
            }
            builder = builder.addField(Field.newBuilder().setName("tags").setText(tagsAsString.toString()));
        }
        return builder;
    }
}
TOP

Related Classes of name.pehl.karaka.server.activity.control.ActivityIndexSearch

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.