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, 13 * software distributed under the License is distributed on an 14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 * KIND, either express or implied. See the License for the 16 * specific language governing permissions and limitations 17 * under the License. 18 * 19 */ 20 package org.apache.mina.common.support; 21 22 import org.apache.mina.common.IoSession; 23 import org.apache.mina.common.WriteFuture; 24 25 /** 26 * A default implementation of {@link WriteFuture}. 27 * 28 * @author The Apache Directory Project (mina-dev@directory.apache.org) 29 * @version $Rev: 599822 $, $Date: 2007-11-30 22:54:07 +0900 (Fri, 30 Nov 2007) $ 30 */ 31 public class DefaultWriteFuture extends DefaultIoFuture implements WriteFuture { 32 /** 33 * Returns a new {@link DefaultWriteFuture} which is already marked as 'written'. 34 */ 35 public static WriteFuture newWrittenFuture(IoSession session) { 36 DefaultWriteFuture unwrittenFuture = new DefaultWriteFuture(session); 37 unwrittenFuture.setWritten(true); 38 return unwrittenFuture; 39 } 40 41 /** 42 * Returns a new {@link DefaultWriteFuture} which is already marked as 'not written'. 43 */ 44 public static WriteFuture newNotWrittenFuture(IoSession session) { 45 DefaultWriteFuture unwrittenFuture = new DefaultWriteFuture(session); 46 unwrittenFuture.setWritten(false); 47 return unwrittenFuture; 48 } 49 50 /** 51 * Creates a new instance. 52 */ 53 public DefaultWriteFuture(IoSession session) { 54 super(session); 55 } 56 57 /** 58 * Creates a new instance which uses the specified object as a lock. 59 */ 60 public DefaultWriteFuture(IoSession session, Object lock) { 61 super(session, lock); 62 } 63 64 public boolean isWritten() { 65 if (isReady()) { 66 return (Boolean) getValue(); 67 } else { 68 return false; 69 } 70 } 71 72 public void setWritten(boolean written) { 73 setValue(written ? Boolean.TRUE : Boolean.FALSE); 74 } 75 }