} else if (ItemId.matches(currentId, targetId)) { rec = new RecordPos(pos + 2, this, currentId); break;
break; } else if ((flags & ItemId.LINK_FLAG) != 0){ pos += 10;
        public RecordPos findRecord(short targetId) {        	final int dlen = ph.getDataLength();        	short currentId;        	short vlen;        	RecordPos rec = null;            for (int pos = 0; pos < dlen;) {                currentId = ByteConversion.byteToShort(data, pos);                if (ItemId.isLink(currentId)) {                    if (ItemId.matches(currentId, targetId)) {                    	rec = new RecordPos(pos + 2, this, currentId);                    	rec.isLink = true;                    	break;                    } else {                        pos += 10;                    }                } else if (ItemId.matches(currentId, targetId)) {                    rec = new RecordPos(pos + 2, this, currentId);                    break;                } else {                    vlen = ByteConversion.byteToShort(data, pos + 2);                    if (ItemId.isRelocated(currentId)) {                        pos += vlen == OVERFLOW ? 20 : vlen + 12;                    } else                        pos += vlen == OVERFLOW ? 12 : vlen + 4;                }            }            return rec;        }