class DBSchemaDelegator extends BaseDelegator implements IDBSchemaDelegator {

    @Override
    public List<IDbSchema> getDbSchema(final List<String> tableSpecs) throws P4JavaException {

        String[] args = new String[0];
        if (nonNull(tableSpecs)) {
            args = new String[tableSpecs.size()];
            args = tableSpecs.toArray(args);
        }
        List<Map<String, Object>> resultMaps = execMapCmdList(DBSCHEMA, args, null);
        return ResultListBuilder.buildNonNullObjectListFromCommandResultMaps(
                resultMaps,
                // p4ic4idea: explicit generics
                new Function<Map<String, Object>, IDbSchema>() {
                    @Override
                    // p4ic4idea: explicit generics
                    public IDbSchema apply(Map<String, Object> map) {
                        return new DbSchema(map);
                    }
                });
    }

    public  DBSchemaDelegator(final IOptionsServer server);

}