1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed with this work for additional information 5 * regarding copyright ownership. The ASF licenses this file 6 * to you under the Apache License, Version 2.0 (the 7 * "License"); you may not use this file except in compliance 8 * with the License. You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 package org.apache.river.norm; 19 20 import java.util.Map; 21 import net.jini.id.Uuid; 22 import org.apache.river.norm.proxy.StoreException; 23 import org.apache.river.norm.proxy.CorruptedStoreException; 24 25 /** 26 * Base class for logged operations that do not create or destroy a set. 27 * 28 * @author Sun Microsystems, Inc. 29 */ 30 abstract class LeaseSetOperation extends LoggedOperation { 31 private static final long serialVersionUID = 1L; 32 33 /** 34 * Simple constructor 35 * @param setID The <code>Uuid</code> for the set this operation is on 36 */ 37 protected LeaseSetOperation(Uuid setID) { 38 super(setID); 39 } 40 41 // Inherit java doc from super type 42 void apply(Map setTable) throws StoreException { 43 final LeaseSet set = (LeaseSet) setTable.get(setID); 44 if (set != null) { 45 apply(set); 46 } else { 47 throw new CorruptedStoreException("Asked to update set " + 48 setID + " but we have no record of that set"); 49 } 50 } 51 52 /** 53 * Update the state of the passed <code>LeaseSet</code> to reflect the 54 * state of the server after this operation was performed. 55 * @throws StoreException if there is a problem applying the update 56 */ 57 abstract void apply(LeaseSet set) throws StoreException; 58 }