/** * Copyright (C) 2015 Caratarse Auth Team <lucio.benfante@gmail.com> * * This file is part of Caratarse Auth Model. * * 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.caratarse.auth.model.po; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.ManyToOne; import javax.persistence.Table; import org.hibernate.annotations.Filter; import org.hibernate.annotations.Filters; /** * A link in the hierarchy of resources. The hyierarchy is implemented using * a closure table. * * @author <a href="mailto:lucio.benfante@gmail.com">Lucio Benfante</a> */ @Filters({@Filter(name = "limitByNotDeleted")}) @Entity public class ResourceHierarchyLink extends EntityBase { private Resource parent; private Resource child; private int depth; @ManyToOne(optional = false) public Resource getParent() { return parent; } public void setParent(Resource parent) { this.parent = parent; } @ManyToOne(optional = false) public Resource getChild() { return child; } public void setChild(Resource child) { this.child = child; } @Column(nullable = false) public int getDepth() { return depth; } public void setDepth(int depth) { this.depth = depth; } }