@Override public RepositoryTable createTable(TableCreateDescriptor descriptor) throws InterruptedException, IOException { if (!RepoAndTableUtil.isValidTableName(descriptor.getName())) { throw new IllegalArgumentException(String.format("'%s' is not a valid table name. " + RepoAndTableUtil.VALID_NAME_EXPLANATION, descriptor.getName())); } if (tableExists(descriptor.getName())) { throw new IllegalArgumentException(String.format("Table '%s' already exists", descriptor.getName())); } LilyHBaseSchema.getRecordTable(tableFactory, repositoryName, descriptor.getName(), descriptor.getSplitKeys()); return new RepositoryTableImpl(repositoryName, descriptor.getName()); }
@Override protected int execute(TableManager tableManager) throws InterruptedException, IOException { byte[][] splitKeys = createDescriptor.getSplitKeys(); int numRegions = splitKeys != null ? splitKeys.length + 1 : 1; System.out.printf("Creating table '%s' with %d region%s...\n", createDescriptor.getName(), numRegions, numRegions == 1 ? "" : "s"); tableManager.createTable(createDescriptor); System.out.printf("Table '%s' in repository '%s' created\n", createDescriptor.getName(), repositoryName); return 0; }
public AvroTableCreateDescriptor convert(TableCreateDescriptor descriptor) { AvroTableCreateDescriptor avroDescriptor = new AvroTableCreateDescriptor(); avroDescriptor.setName(descriptor.getName()); byte[][] splitKeys = descriptor.getSplitKeys(); if (splitKeys != null) { List<ByteBuffer> avroSplitKeys = new ArrayList<ByteBuffer>(splitKeys.length); for (byte[] splitKey : splitKeys) { avroSplitKeys.add(ByteBuffer.wrap(splitKey)); } avroDescriptor.setSplitKeys(avroSplitKeys); } return avroDescriptor; }
@Override public RepositoryTable createTable(TableCreateDescriptor descriptor) throws InterruptedException, IOException { try { lilyProxy.createTable(repositoryName, converter.convert(descriptor)); return new RepositoryTableImpl(repositoryName, descriptor.getName()); } catch (AvroIOException e) { throw converter.convert(e); } catch (AvroGenericException e) { throw converter.convert(e); } }