/*
* Copyright 2004-2009 the original author or authors.
*
* 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.compass.core.mapping.support;
import org.compass.core.Property;
import org.compass.core.converter.mapping.ResourcePropertyConverter;
import org.compass.core.mapping.ExcludeFromAll;
import org.compass.core.mapping.ReverseType;
import org.compass.core.mapping.SpellCheck;
import org.compass.core.mapping.internal.InternalResourcePropertyMapping;
/**
* @author kimchy
*/
public abstract class AbstractResourcePropertyMapping extends AbstractMapping implements InternalResourcePropertyMapping {
private String originalName;
private String rootAlias;
private String analyzer;
private float boost = 1.0f;
private Property.Store store;
private Property.Index index;
private Property.TermVector termVector;
private boolean isInternal = false;
private ExcludeFromAll excludeFromAll = ExcludeFromAll.NO;
private SpellCheck spellCheck = SpellCheck.NA;
private Boolean omitNorms = false;
private Boolean omitTf = false;
private ReverseType reverse = ReverseType.NO;
private String nullValue = "";
protected void copy(AbstractResourcePropertyMapping copy) {
super.copy(copy);
copy.originalName = originalName;
copy.setBoost(getBoost());
copy.setName(getName());
copy.setStore(getStore());
copy.setIndex(getIndex());
copy.setPath(getPath());
copy.setInternal(isInternal());
copy.setExcludeFromAll(getExcludeFromAll());
copy.setTermVector(getTermVector());
copy.setAnalyzer(getAnalyzer());
copy.setReverse(getReverse());
copy.setOmitNorms(isOmitNorms());
copy.setOmitTf(isOmitTf());
copy.setRootAlias(getRootAlias());
copy.setNullValue(getNullValue());
copy.setSpellCheck(getSpellCheck());
}
@Override
public void setName(String name) {
if (name != null && originalName == null) {
if (!name.equals(getName())) {
originalName = getName();
}
}
super.setName(name);
}
public String getOriginalName() {
if (originalName != null) {
return this.originalName;
}
return getName();
}
public String getRootAlias() {
return rootAlias;
}
public void setRootAlias(String rootAlias) {
this.rootAlias = rootAlias;
}
public float getBoost() {
return this.boost;
}
public void setBoost(float boost) {
this.boost = boost;
}
public Property.Store getStore() {
return store;
}
public void setStore(Property.Store store) {
this.store = store;
}
public Property.Index getIndex() {
return index;
}
public void setIndex(Property.Index index) {
this.index = index;
}
public boolean isInternal() {
return isInternal;
}
public void setInternal(boolean isInternal) {
this.isInternal = isInternal;
}
public ExcludeFromAll getExcludeFromAll() {
return excludeFromAll;
}
public void setExcludeFromAll(ExcludeFromAll excludeFromAll) {
this.excludeFromAll = excludeFromAll;
}
public Property.TermVector getTermVector() {
return termVector;
}
public void setTermVector(Property.TermVector termVector) {
this.termVector = termVector;
}
public String getAnalyzer() {
return analyzer;
}
public void setAnalyzer(String analyzer) {
this.analyzer = analyzer;
}
public ReverseType getReverse() {
return reverse;
}
public void setReverse(ReverseType reverse) {
this.reverse = reverse;
}
public Boolean isOmitNorms() {
return omitNorms;
}
public void setOmitNorms(Boolean omitNorms) {
this.omitNorms = omitNorms;
}
public String getNullValue() {
return nullValue;
}
public Boolean isOmitTf() {
return omitTf;
}
public void setOmitTf(Boolean omitTf) {
this.omitTf = omitTf;
}
public void setNullValue(String nullValue) {
if (nullValue == null) {
this.nullValue = "";
} else {
this.nullValue = nullValue;
}
}
public boolean hasNullValue() {
return nullValue.length() > 0;
}
public SpellCheck getSpellCheck() {
return spellCheck;
}
public void setSpellCheck(SpellCheck spellCheck) {
this.spellCheck = spellCheck;
}
public ResourcePropertyConverter getResourcePropertyConverter() {
if (getConverter() instanceof ResourcePropertyConverter) {
return (ResourcePropertyConverter) getConverter();
}
return null;
}
}