Eng 6095 index with address

Don't merge, only for review.

Pass eecheck on local machine, but haven't check the result of Junit test.

After refining the code, the next step is to append address to KeyType other than IntsKey.
I still don't have a good idea about how to refine this piece of code ( and above).
Now there are some duplicated checking, which should be removed.