001    /**
002     * Copyright 2010 The Kuali Foundation 
003     *
004     * Licensed under the Educational Community License, Version 2.0 (the
005     * "License"); you may not use this file except in compliance with the
006     * License. You may obtain a copy of the License at
007     *
008     * http://www.osedu.org/licenses/ECL-2.0
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
013     * implied. See the License for the specific language governing
014     * permissions and limitations under the License.
015     */
016    
017    package org.kuali.student.r2.common.infc;
018    
019    /**
020     * A common service pattern for entities. This interface is applied to
021     * entities the hold Meta information. Typically, any entity that is
022     * created or updated through service operations.
023     *
024     * @author nwright
025     */
026    
027    public interface HasMeta {
028    
029        /**
030         * Create and last update info for the structure. This is optional
031         * and treated as read only since the data is set by the internals
032         * of the service during maintenance operations.
033         *
034         * Contains audit trail information about the creation and last
035         * update of this object Also contains the version ind used for
036         * optimistic locking.
037         *
038         * Attempts to set or update should result in a ReadOnlyException
039         * being thrown.
040         *
041         * @name Meta
042         * @readOnly
043         * @required on updates
044         */
045        public Meta getMeta();
046    }