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 }