/* * 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.osem; import org.compass.core.Property; import org.compass.core.converter.Converter; import org.compass.core.mapping.ExcludeFromAll; import org.compass.core.mapping.Mapping; import org.compass.core.mapping.internal.InternalOverrideByNameMapping; /** * @author kimchy */ public class ClassPropertyMapping extends AbstractAccessorMultipleMapping implements InternalOverrideByNameMapping { private static final int ID_NOT_SET_VALUE = -1; private String className; private float boost = 1.0f; private int idPropertyIndex = ID_NOT_SET_VALUE; private ManagedId managedId; private Converter managedIdConverter; private String managedIdConverterName; private ExcludeFromAll excludeFromAll = ExcludeFromAll.NO; private String analyzer; private boolean overrideByName = true; private Property.Index managedIdIndex; private String accessor; private String propertyName; private String definedInAlias; protected void copy(ClassPropertyMapping mapping) { super.copy(mapping); mapping.setClassName(getClassName()); mapping.setBoost(getBoost()); mapping.setManagedId(getManagedId()); mapping.setIdPropertyIndex(getIdPropertyIndex()); mapping.setExcludeFromAll(getExcludeFromAll()); mapping.setAnalyzer(getAnalyzer()); mapping.setOverrideByName(isOverrideByName()); mapping.setManagedIdIndex(getManagedIdIndex()); mapping.setAccessor(getAccessor()); mapping.setPropertyName(getPropertyName()); mapping.setManagedIdConverter(getManagedIdConverter()); mapping.setManagedIdConverterName(getManagedIdConverterName()); mapping.setDefinedInAlias(getDefinedInAlias()); } public Mapping copy() { ClassPropertyMapping copy = new ClassPropertyMapping(); copy(copy); return copy; } public boolean canBeCollectionWrapped() { return true; } public ClassPropertyMetaDataMapping getIdMapping() { if (!isIdPropertySet()) { return null; } return (ClassPropertyMetaDataMapping) getMapping(idPropertyIndex); } public float getBoost() { return boost; } public void setBoost(float boost) { this.boost = boost; } public ManagedId getManagedId() { return managedId; } public void setManagedId(ManagedId managedId) { this.managedId = managedId; } public String getClassName() { return className; } public void setClassName(String className) { this.className = className; } public int getIdPropertyIndex() { return idPropertyIndex; } public void setIdPropertyIndex(int idPropertyIndex) { this.idPropertyIndex = idPropertyIndex; } public boolean isIdPropertySet() { return idPropertyIndex != ID_NOT_SET_VALUE; } public ExcludeFromAll getExcludeFromAll() { return excludeFromAll; } public void setExcludeFromAll(ExcludeFromAll excludeFromAll) { this.excludeFromAll = excludeFromAll; } public String getAnalyzer() { return analyzer; } public void setAnalyzer(String analyzer) { this.analyzer = analyzer; } public boolean isOverrideByName() { return overrideByName; } public void setOverrideByName(boolean overrideByName) { this.overrideByName = overrideByName; } public Property.Index getManagedIdIndex() { return managedIdIndex; } public void setManagedIdIndex(Property.Index managedIdIndex) { this.managedIdIndex = managedIdIndex; } public String getAccessor() { return accessor; } public void setAccessor(String accessor) { this.accessor = accessor; } public String getPropertyName() { return propertyName; } public void setPropertyName(String propertyName) { this.propertyName = propertyName; } public Converter getManagedIdConverter() { return managedIdConverter; } public void setManagedIdConverter(Converter managedIdConverter) { this.managedIdConverter = managedIdConverter; } public String getManagedIdConverterName() { return managedIdConverterName; } public void setManagedIdConverterName(String managedIdConverterName) { this.managedIdConverterName = managedIdConverterName; } public String getDefinedInAlias() { return definedInAlias; } public void setDefinedInAlias(String definedInAlias) { this.definedInAlias = definedInAlias; } /** * Returns if the mapping must have id processing performed on it (even, for example, when support * unmarshall is set to false). */ public boolean requiresIdProcessing() { return false; } }