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.outrigger.proxy; 19 20 import java.io.IOException; 21 import net.jini.id.Uuid; 22 import org.apache.river.api.io.AtomicSerial; 23 import org.apache.river.api.io.AtomicSerial.GetArg; 24 25 /** 26 * Simple struct to hold the <code>Uuid</code> for a new 27 * <code>MatchSet</code> instance and the first batch of 28 * data. Also holds initial lease time. 29 */ 30 @AtomicSerial 31 public class MatchSetData implements java.io.Serializable { 32 private static final long serialVersionUID = 1L; 33 34 /** 35 * <code>Uuid</code> for iteration and associated lease. 36 * <code>null</code> if the entire iteration is in 37 * <code>reps</code>. 38 */ 39 final Uuid uuid; 40 41 /** Intial set of entries */ 42 final EntryRep[] reps; 43 44 /** 45 * Initial lease time. Negative if the entire iteration is in 46 * <code>reps</code>. 47 */ 48 final long intialLeaseDuration; 49 50 /** 51 * Creates a new MatchSetData instance. 52 * @param uuid value of <code>uuid</code> field. 53 * @param reps value of <code>reps</code> field. 54 * @param intialLeaseDuration value of <code>intialLeaseDuration</code> 55 * field. 56 */ 57 public MatchSetData(Uuid uuid, EntryRep[] reps, long intialLeaseDuration) { 58 this.uuid = uuid; 59 this.reps = reps; 60 this.intialLeaseDuration = intialLeaseDuration; 61 } 62 63 MatchSetData(GetArg arg) throws IOException { 64 this((Uuid) arg.get("uuid", null), 65 ((EntryRep[]) arg.get("reps", null)).clone(), // Throws NPE, should it? 66 arg.get("intialLeaseDuration", 0L) ); 67 } 68 }