class Edge extends HbaseTable {

        public static final String TABLE_SUFFIX = HugeType.EDGE.string();

        public Edge(String store, boolean out, boolean enablePartition) {
            super(joinTableName(store, table(out)), enablePartition);
        }

        private static String table(boolean out) {
            // Edge out/in table
            return (out ? 'o' : 'i') + TABLE_SUFFIX;
        }

        public static Edge out(String store, boolean enablePartition) {
            return new Edge(store, true, enablePartition);
        }

        public static Edge in(String store, boolean enablePartition) {
            return new Edge(store, false, enablePartition);
        }

        @Override
        public void insert(HbaseSessions.Session session, BackendEntry entry) {
            long ttl = entry.ttl();
            if (ttl == 0L) {
                session.put(this.table(), CF, entry.id().asBytes(),
                            entry.columns());
            } else {
                session.put(this.table(), CF, entry.id().asBytes(),
                            entry.columns(), ttl);
            }
        }

        @Override
        protected void parseRowColumns(Result row, BackendEntry entry,
                                       Query query, boolean enablePartition) throws IOException {<FILL_FUNCTION_BODY>}
    }

            /*
             * Collapse owner-vertex id from edge id, NOTE: unneeded to
             * collapse if BinarySerializer.keyWithIdPrefix set to true
             */
            byte[] key = row.getRow();
            if (enablePartition) {
                key = Arrays.copyOfRange(key, entry.id().length() + 2, key.length);
            } else {
                key = Arrays.copyOfRange(key, entry.id().length(), key.length);
            }

            long total = query.total();
            CellScanner cellScanner = row.cellScanner();
            while (cellScanner.advance() && total-- > 0) {
                Cell cell = cellScanner.current();
                assert CellUtil.cloneQualifier(cell).length == 0;
                entry.columns(BackendColumn.of(key, CellUtil.cloneValue(cell)));
            }
        
<no_super_class>