1dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes/* Licensed to the Apache Software Foundation (ASF) under one or more
2dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes * contributor license agreements.  See the NOTICE file distributed with
3dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes * this work for additional information regarding copyright ownership.
4dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0
5dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes * (the "License"); you may not use this file except in compliance with
6dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes * the License.  You may obtain a copy of the License at
7dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes *
8dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes *     http://www.apache.org/licenses/LICENSE-2.0
9dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes *
10dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes * Unless required by applicable law or agreed to in writing, software
11dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes * distributed under the License is distributed on an "AS IS" BASIS,
12dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes * See the License for the specific language governing permissions and
14dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes * limitations under the License.
15dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes */
16dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
17e5fea3d504609d22337a5311d3ce0e72314bceeeNarayan Kamathpackage org.apache.harmony.tests.java.nio.channels.spi;
18dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
19dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughesimport java.io.IOException;
20dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughesimport java.nio.channels.SelectionKey;
21dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughesimport java.nio.channels.Selector;
22dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughesimport java.nio.channels.spi.AbstractSelectableChannel;
23dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughesimport java.nio.channels.spi.AbstractSelectionKey;
24dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughesimport java.nio.channels.spi.AbstractSelector;
25dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughesimport java.nio.channels.spi.SelectorProvider;
26dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughesimport java.util.Set;
27dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
28dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughespublic class MockAbstractSelector extends AbstractSelector {
29dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
30dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public boolean isImplCloseSelectorCalled = false;
31dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
32dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	public MockAbstractSelector(SelectorProvider arg0) {
33dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes		super(arg0);
34dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	}
35dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
36dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	public static MockAbstractSelector openSelector() {
37dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes		return new MockAbstractSelector(SelectorProvider.provider());
38dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	}
39dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
40dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	public Set getCancelledKeys() {
41dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes		return super.cancelledKeys();
42dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	}
43dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
44dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	protected void implCloseSelector() throws IOException {
45dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        isImplCloseSelectorCalled = true;
46dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	}
47dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
48dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	protected SelectionKey register(AbstractSelectableChannel arg0, int arg1,
49dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes			Object arg2) {
50dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes		return null;
51dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	}
52dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
53dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	public void superBegin() {
54dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes		super.begin();
55dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	}
56dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
57dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	public void superEnd() {
58dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes		super.end();
59dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	}
60dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
61dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	protected void mockDeregister(AbstractSelectionKey key) {
62dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes		super.deregister(key);
63dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	}
64dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
65dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	public Set<SelectionKey> keys() {
66dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes		return null;
67dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	}
68dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
69dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	public Set<SelectionKey> selectedKeys() {
70dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes		return null;
71dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	}
72dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
73dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	public int selectNow() throws IOException {
74dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes		return 0;
75dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	}
76dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
77dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	public int select(long arg0) throws IOException {
78dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes		return 0;
79dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	}
80dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
81dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	public int select() throws IOException {
82dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes		return 0;
83dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	}
84dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
85dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	public Selector wakeup() {
86dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes		return null;
87dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes	}
88dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
89dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes}
90