001    /**
002     * Copyright 2010 The Kuali Foundation Licensed under the
003     * Educational Community License, Version 2.0 (the "License"); you may
004     * not use this file except in compliance with the License. You may
005     * obtain a copy of the License at
006     *
007     * http://www.osedu.org/licenses/ECL-2.0
008     *
009     * Unless required by applicable law or agreed to in writing,
010     * software distributed under the License is distributed on an "AS IS"
011     * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
012     * or implied. See the License for the specific language governing
013     * permissions and limitations under the License.
014     */
015    
016    package org.kuali.student.common.assembly.data;
017    
018    
019    public interface HasChangeCallbacks {
020            public enum ChangeType {
021                    ADD, REMOVE, UPDATE;
022            }
023            public static interface ChangeCallback {
024                    void onChange(ChangeType type, QueryPath path);
025            }
026            public static interface ChangeCallbackRegistration {
027                    void remove();
028            }
029            ChangeCallbackRegistration addChangeCallback(ChangeCallback callback);  
030    }