%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/waritko/yacy/libbuild/J7Zip-modified/src/SevenZip/Archive/Common/
Upload File :
Create Path :
Current File : //home/waritko/yacy/libbuild/J7Zip-modified/src/SevenZip/Archive/Common/BindInfo.java

package SevenZip.Archive.Common;

import java.util.Vector;

import Common.IntVector;

public class BindInfo {
	
    public Vector<CoderStreamsInfo> Coders = new Vector();
    public Vector<BindPair> BindPairs = new Vector();
    public IntVector InStreams = new IntVector();
    public IntVector OutStreams = new IntVector();
    
    public void Clear() {
        Coders.clear();
        BindPairs.clear();
        InStreams.clear();
        OutStreams.clear();
    }
    
    public int FindBinderForInStream(int inStream) {
        for (int i = 0; i < BindPairs.size(); i++)
            if (((BindPair)BindPairs.get(i)).InIndex == inStream)
                return i;
        return -1;
    }
    
    public int FindBinderForOutStream(int outStream) // const
    {
        for (int i = 0; i < BindPairs.size(); i++)
            if (((BindPair)BindPairs.get(i)).OutIndex == outStream)
                return i;
        return -1;
    }
    
    public int GetCoderInStreamIndex(int coderIndex) // const
    {
        int streamIndex = 0;
        for (int i = 0; i < coderIndex; i++)
            streamIndex += ((CoderStreamsInfo)Coders.get(i)).NumInStreams;
        return streamIndex;
    }
    
    public int GetCoderOutStreamIndex(int coderIndex) // const
    {
        int streamIndex = 0;
        for (int i = 0; i < coderIndex; i++)
            streamIndex += ((CoderStreamsInfo)Coders.get(i)).NumOutStreams;
        return streamIndex;
    }

    /**
     * @param streamIndex
     * @return the coder index number 
     */
    public int FindInStream(int streamIndex) {
        for (int i=0; i<Coders.size(); i++) {
            int curSize = ((CoderStreamsInfo)Coders.get(i)).NumInStreams;
            if (streamIndex < curSize) {
                return i;
            }
            streamIndex -= curSize;
        }
        return -1; //throw new UnknownError("1");
    }
    
    /**
     * @param streamIndex
     * @return  the coder index number 
     */
    public int FindOutStream(int streamIndex) {
        for (int i=0; i<Coders.size(); i++) {
            int curSize = ((CoderStreamsInfo)Coders.get(i)).NumOutStreams;
            if (streamIndex < curSize)
                return i;
            streamIndex -= curSize;
        }
        return -1; //throw new UnknownError("1");
    }
    
    public boolean equals(Object obj) {
    	if (obj instanceof BindInfo) {
    		BindInfo arg = (BindInfo)obj;
	    	if (this.Coders.size() != arg.Coders.size()) return false;
			if (this.BindPairs.size() != arg.BindPairs.size()) return false;
			if (this.InStreams.size() != arg.InStreams.size()) return false;
			if (this.OutStreams.size() != arg.OutStreams.size()) return false;
			int i;
			for (i = 0; i < this.Coders.size(); i++)
				if (!this.Coders.get(i).equals(arg.Coders.get(i))) return false;
			for (i = 0; i < this.BindPairs.size(); i++)
				if (!this.BindPairs.get(i).equals(arg.BindPairs.get(i))) return false;
			return true;
    	}
		return super.equals(obj);
    }
}


Zerion Mini Shell 1.0