/* * Copyright 2006-2012 Amazon Technologies, Inc. or its affiliates. * Amazon, Amazon.com and Carbonado are trademarks or registered trademarks * of Amazon Technologies, Inc. or its affiliates. All rights reserved. * * 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 com.amazon.carbonado.gen; import com.amazon.carbonado.Storable; import com.amazon.carbonado.Trigger; /** * Provides runtime support for Storable classes generated by {@link StorableGenerator}. * * @author Brian S O'Neill * @since 1.2 */ public interface TriggerSupport<S extends Storable> extends StorableSupport<S> { /** * Returns a trigger which must be run for all insert operations. * * @return null if no trigger */ Trigger<? super S> getInsertTrigger(); /** * Returns a trigger which must be run for all update operations. * * @return null if no trigger */ Trigger<? super S> getUpdateTrigger(); /** * Returns a trigger which must be run for all delete operations. * * @return null if no trigger */ Trigger<? super S> getDeleteTrigger(); /** * Returns a trigger which must be run for all load and fetch operations. * * @return null if no trigger * @since 1.2 */ Trigger<? super S> getLoadTrigger(); /** * Disables execution of load trigger for the current thread. Call * locallyEnableLoadTrigger to enable again. This call can be made multiple * times, but be sure to call locallyEnableLoadTrigger the same number of * times to fully enable. * * @since 1.2 */ void locallyDisableLoadTrigger(); /** * Enables execution of load trigger for the current thread, if they it * been disabled before. * * @since 1.2 */ void locallyEnableLoadTrigger(); }