/* * myLib - https://github.com/taktod/myLib * Copyright (c) 2014 ttProject. All rights reserved. * * Licensed under The MIT license. */ package com.ttProject.container; import java.util.List; import com.ttProject.nio.channels.IReadChannel; import com.ttProject.unit.ISelector; /** * base for reader. * @author taktod */ public abstract class Reader implements IReader { /** related selector */ private final ISelector selector; /** * constructor * @param selector */ public Reader(ISelector selector) { this.selector = selector; } /** * ref the related selector. * @return */ protected ISelector getSelector() { return selector; } /** * {@inheritDoc} */ @Override public IContainer read(IReadChannel channel) throws Exception { IContainer container = (IContainer)selector.select(channel); if(container != null) { container.load(channel); } return container; } /** * {@inheritDoc} */ @Override public List<IContainer> getRemainData() throws Exception { return null; } }