/*
* Copyright 2013 Websquared, Inc.
*
* 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 org.fastcatsearch.ir.settings;
import java.util.List;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
@XmlType(propOrder = { "positionIncrementGap", "storePosition", "ignoreCase", "queryAnalyzer", "fieldList", "name", "id"} )
@XmlRootElement(name = "index")
public class IndexSetting {
private String id;
private String name;
//index필드는 여러개의 필드를 받을 수 있다.
private List<IndexRefSetting> fieldList;
private String queryAnalyzer;
private boolean ignoreCase;
private boolean storePosition;
private int positionIncrementGap;
public IndexSetting() { }
public IndexSetting(String id){
this.id = id.toUpperCase();
}
public IndexSetting(String id, String queryAnalyzer){
this.id = id.toUpperCase();
this.queryAnalyzer = queryAnalyzer;
}
public String toString(){
return "[index="+id+":"+name+":"+fieldList+":"+queryAnalyzer+":"+ignoreCase+":"+storePosition+"]";
}
@XmlAttribute(required = true)
public String getId() {
return id;
}
public void setId(String id) {
this.id = id.toUpperCase();
}
@XmlAttribute
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlElement(name="field")
public List<IndexRefSetting> getFieldList() {
return fieldList;
}
public void setFieldList(List<IndexRefSetting> fieldList) {
this.fieldList = fieldList;
}
@XmlAttribute
public String getQueryAnalyzer() {
return queryAnalyzer;
}
public void setQueryAnalyzer(String queryAnalyzer) {
this.queryAnalyzer = queryAnalyzer;
}
@XmlAttribute
@XmlJavaTypeAdapter(OptionalIntPositiveAdapter.class)
public Integer getPositionIncrementGap() {
return positionIncrementGap;
}
public void setPositionIncrementGap(Integer positionIncrementGap) {
this.positionIncrementGap = positionIncrementGap;
}
@XmlAttribute
@XmlJavaTypeAdapter(OptionalBooleanFalseAdapter.class)
public Boolean isIgnoreCase() {
return ignoreCase;
}
public void setIgnoreCase(Boolean ignoreCase) {
this.ignoreCase = ignoreCase;
}
@XmlAttribute
@XmlJavaTypeAdapter(OptionalBooleanFalseAdapter.class)
public Boolean isStorePosition() {
return storePosition;
}
public void setStorePosition(Boolean storePosition) {
this.storePosition = storePosition;
}
}