/* * 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.mapping.Mapping; import org.compass.core.mapping.internal.InternalOverrideByNameMapping; import org.compass.core.mapping.osem.internal.InternalLazyMapping; /** * @author kimchy */ public class ReferenceMapping extends AbstractRefAliasMapping implements InternalOverrideByNameMapping, RefAliasObjectMapping, InternalLazyMapping { private String refCompAlias; private ClassMapping refCompMapping; private Boolean lazy = false; protected void copy(ReferenceMapping copy) { super.copy(copy); copy.setRefCompAlias(getRefCompAlias()); copy.setRefCompMapping(getRefCompMapping()); copy.setLazy(isLazy()); } public Mapping copy() { ReferenceMapping copy = new ReferenceMapping(); copy(copy); return copy; } public boolean canBeCollectionWrapped() { return true; } public boolean isOverrideByName() { return true; } public void setOverrideByName(boolean overrideByName) { throw new IllegalArgumentException("The reference mapping always overrides"); } public Boolean isLazy() { return lazy; } public void setLazy(Boolean lazy) { this.lazy = lazy; } public String getRefCompAlias() { return refCompAlias; } public void setRefCompAlias(String refCompAlias) { this.refCompAlias = refCompAlias; } public ClassMapping getRefCompMapping() { return refCompMapping; } public void setRefCompMapping(ClassMapping refCompMapping) { this.refCompMapping = refCompMapping; } }