/*
* Copyright 2011 Greg Milette and Adam Stroud
*
* 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.
*/
package root.gast.playground.speech.food.lucene;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.NumericField;
import root.gast.playground.speech.food.db.Food;
/**
* conversion to and from lucene {@link Document}s
*/
public class FoodDocumentTranslator
{
public static final String FOOD_NAME = "food";
public static final String CALORIE = "cal";
public static Food getFood(Document doc)
{
return new Food(doc.get(FOOD_NAME), Float.parseFloat(doc.get(CALORIE)));
}
public static Document toDocument(Food food)
{
Document doc = new Document();
doc.add(new Field(FOOD_NAME, food.getName(), Field.Store.YES,
Field.Index.ANALYZED));
NumericField numberField =
new NumericField(CALORIE, Field.Store.YES, true);
numberField.setFloatValue(food.getCalories());
doc.add(numberField);
return doc;
}
}