LENS-755 : Rename LogicalTableCrudCommand to ConceptualTableCrudCommand and PhysicalTableCrudCommand to LogicalTableCrudCommand
Project: http://git-wip-us.apache.org/repos/asf/lens/repo Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/6efecda0 Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/6efecda0 Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/6efecda0 Branch: refs/heads/current-release-line Commit: 6efecda0ed7a6717280eff3585612abac3940cdc Parents: 86f251a Author: Rajat Khandelwal <[email protected]> Authored: Mon Aug 31 10:52:20 2015 +0530 Committer: Amareshwari Sriramadasu <[email protected]> Committed: Mon Aug 31 10:52:20 2015 +0530 ---------------------------------------------------------------------- .../commands/ConceptualTableCrudCommand.java | 31 +++++ .../lens/cli/commands/LensCubeCommands.java | 2 +- .../cli/commands/LensDimensionCommands.java | 2 +- .../commands/LensDimensionTableCommands.java | 2 +- .../lens/cli/commands/LensFactCommands.java | 2 +- .../cli/commands/LogicalTableCrudCommand.java | 112 +++++++++++++++- .../cli/commands/PhysicalTableCrudCommand.java | 131 ------------------- 7 files changed, 141 insertions(+), 141 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lens/blob/6efecda0/lens-cli/src/main/java/org/apache/lens/cli/commands/ConceptualTableCrudCommand.java ---------------------------------------------------------------------- diff --git a/lens-cli/src/main/java/org/apache/lens/cli/commands/ConceptualTableCrudCommand.java b/lens-cli/src/main/java/org/apache/lens/cli/commands/ConceptualTableCrudCommand.java new file mode 100644 index 0000000..44876cf --- /dev/null +++ b/lens-cli/src/main/java/org/apache/lens/cli/commands/ConceptualTableCrudCommand.java @@ -0,0 +1,31 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.lens.cli.commands; + +import org.apache.lens.cli.table.XFlattenedColumnTable; +import org.apache.lens.cli.table.XJoinChainTable; + +public abstract class ConceptualTableCrudCommand<T> extends LensCRUDCommand<T> { + public String getAllFields(String table, boolean flattened) { + return new XFlattenedColumnTable(getClient().getQueryableFields(table, flattened), table).toString(); + } + public String getAllJoinChains(String table) { + return new XJoinChainTable(getClient().getJoinChains(table)).toString(); + } +} http://git-wip-us.apache.org/repos/asf/lens/blob/6efecda0/lens-cli/src/main/java/org/apache/lens/cli/commands/LensCubeCommands.java ---------------------------------------------------------------------- diff --git a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensCubeCommands.java b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensCubeCommands.java index cfee32f..0afdd61 100644 --- a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensCubeCommands.java +++ b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensCubeCommands.java @@ -38,7 +38,7 @@ import lombok.NonNull; @Component @UserDocumentation(title = "OLAP Data cube metadata management", description = "These commands provide CRUD for cubes") -public class LensCubeCommands extends LogicalTableCrudCommand<XCube> { +public class LensCubeCommands extends ConceptualTableCrudCommand<XCube> { /** * Show cubes. http://git-wip-us.apache.org/repos/asf/lens/blob/6efecda0/lens-cli/src/main/java/org/apache/lens/cli/commands/LensDimensionCommands.java ---------------------------------------------------------------------- diff --git a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensDimensionCommands.java b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensDimensionCommands.java index 1f70337..cd7de55 100644 --- a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensDimensionCommands.java +++ b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensDimensionCommands.java @@ -37,7 +37,7 @@ import lombok.NonNull; */ @Component @UserDocumentation(title = "Dimension Management", description = "These commands provide CRUD for Dimensions") -public class LensDimensionCommands extends LogicalTableCrudCommand<XDimension> { +public class LensDimensionCommands extends ConceptualTableCrudCommand<XDimension> { /** * Show dimensions. http://git-wip-us.apache.org/repos/asf/lens/blob/6efecda0/lens-cli/src/main/java/org/apache/lens/cli/commands/LensDimensionTableCommands.java ---------------------------------------------------------------------- diff --git a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensDimensionTableCommands.java b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensDimensionTableCommands.java index 1759d9c..74efed9 100644 --- a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensDimensionTableCommands.java +++ b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensDimensionTableCommands.java @@ -40,7 +40,7 @@ import lombok.NonNull; @Component @UserDocumentation(title = "Commands for Dimension Tables", description = "These commands provide CRUD for dimension tables, associated storages, and fact partitions") -public class LensDimensionTableCommands extends PhysicalTableCrudCommand<XDimensionTable> +public class LensDimensionTableCommands extends LogicalTableCrudCommand<XDimensionTable> implements CommandMarker { /** http://git-wip-us.apache.org/repos/asf/lens/blob/6efecda0/lens-cli/src/main/java/org/apache/lens/cli/commands/LensFactCommands.java ---------------------------------------------------------------------- diff --git a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensFactCommands.java b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensFactCommands.java index e2f1c50..6d7d9eb 100644 --- a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensFactCommands.java +++ b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensFactCommands.java @@ -39,7 +39,7 @@ import lombok.NonNull; @Component @UserDocumentation(title = "Management of Facts", description = "These command provide CRUD for facts, associated storages, and fact partitions") -public class LensFactCommands extends PhysicalTableCrudCommand<XFactTable> { +public class LensFactCommands extends LogicalTableCrudCommand<XFactTable> { /** * Show facts. http://git-wip-us.apache.org/repos/asf/lens/blob/6efecda0/lens-cli/src/main/java/org/apache/lens/cli/commands/LogicalTableCrudCommand.java ---------------------------------------------------------------------- diff --git a/lens-cli/src/main/java/org/apache/lens/cli/commands/LogicalTableCrudCommand.java b/lens-cli/src/main/java/org/apache/lens/cli/commands/LogicalTableCrudCommand.java index 3c78e43..a04d5c8 100644 --- a/lens-cli/src/main/java/org/apache/lens/cli/commands/LogicalTableCrudCommand.java +++ b/lens-cli/src/main/java/org/apache/lens/cli/commands/LogicalTableCrudCommand.java @@ -18,14 +18,114 @@ */ package org.apache.lens.cli.commands; -import org.apache.lens.cli.table.XFlattenedColumnTable; -import org.apache.lens.cli.table.XJoinChainTable; +import java.io.File; +import java.io.IOException; +import java.util.List; + +import org.apache.lens.api.APIResult; +import org.apache.lens.api.metastore.XPartition; +import org.apache.lens.api.metastore.XStorageTableElement; + +import com.google.common.base.Joiner; public abstract class LogicalTableCrudCommand<T> extends LensCRUDCommand<T> { - public String getAllFields(String table, boolean flattened) { - return new XFlattenedColumnTable(getClient().getQueryableFields(table, flattened), table).toString(); + public String showAll(String filter) { + List<String> all = getAll(filter); + if (all == null || all.isEmpty()) { + return "No " + getSingleObjectName() + " found" + (filter == null ? "" : " for " + filter); + } + return Joiner.on("\n").join(all); + } + + public String showAllStorages(String tableName) { + String sep = ""; + StringBuilder sb = new StringBuilder(); + List<String> storages = getAllStorages(tableName); + if (storages != null) { + for (String storage : storages) { + if (!storage.isEmpty()) { + sb.append(sep).append(storage); + sep = "\n"; + } + } + } + String ret = sb.toString(); + return ret.isEmpty() ? "No storage found for " + tableName : ret; + } + + public String addStorage(String tableName, File path) { + return doAddStorage(tableName, getValidPath(path, false, true)).toString().toLowerCase(); + } + + public String getStorage(String tableName, String storage) { + try { + return formatJson(mapper.writer(pp).writeValueAsString(readStorage(tableName, storage))); + } catch (IOException e) { + throw new IllegalArgumentException(e); + } + } + + public String dropStorage(String tableName, String storageName) { + return doDropStorage(tableName, storageName).toString().toLowerCase(); } - public String getAllJoinChains(String table) { - return new XJoinChainTable(getClient().getJoinChains(table)).toString(); + + public String dropAllStorages(String tableName) { + return doDropAllStorages(tableName).toString(); } + + public String getAllPartitions(String tableName, String storageName, String filter) { + try { + return formatJson(mapper.writer(pp).writeValueAsString(readAllPartitions(tableName, storageName, filter))); + } catch (IOException e) { + throw new IllegalArgumentException(e); + } + } + + public String addPartition(String tableName, String storageName, File path) { + return doAddPartition(tableName, storageName, + getValidPath(path, false, true)).toString().toLowerCase(); + } + + public String updatePartition(String tableName, String storageName, File path) { + return doUpdatePartition(tableName, storageName, getValidPath(path, false, true)).toString() + .toLowerCase(); + } + + public String addPartitions(String tableName, String storageName, String path) { + return doAddPartitions(tableName, storageName, + getValidPath(new File(path), false, true)).toString().toLowerCase(); + } + + public String updatePartitions(String tableName, String storageName, String path) { + return doUpdatePartitions(tableName, storageName, + getValidPath(new File(path), false, true)).toString().toLowerCase(); + } + + public String dropPartitions(String tableName, String storageName, String filter) { + return doDropPartitions(tableName, storageName, filter).toString().toLowerCase(); + } + + protected abstract List<String> getAll(String filter); + + public abstract List<String> getAllStorages(String name); + + public abstract APIResult doAddStorage(String name, String path); + + protected abstract XStorageTableElement readStorage(String tableName, String storage); + + public abstract APIResult doDropStorage(String tableName, String storageName); + + public abstract APIResult doDropAllStorages(String name); + + protected abstract List<XPartition> readAllPartitions(String tableName, String storageName, String filter); + + protected abstract APIResult doAddPartition(String tableName, String storageName, String path); + + protected abstract APIResult doAddPartitions(String tableName, String storageName, String path); + + protected abstract APIResult doDropPartitions(String tableName, String storageName, String filter); + + protected abstract APIResult doUpdatePartition(String tableName, String storageName, String validPath); + + protected abstract APIResult doUpdatePartitions(String tableName, String storageName, String validPath); } http://git-wip-us.apache.org/repos/asf/lens/blob/6efecda0/lens-cli/src/main/java/org/apache/lens/cli/commands/PhysicalTableCrudCommand.java ---------------------------------------------------------------------- diff --git a/lens-cli/src/main/java/org/apache/lens/cli/commands/PhysicalTableCrudCommand.java b/lens-cli/src/main/java/org/apache/lens/cli/commands/PhysicalTableCrudCommand.java deleted file mode 100644 index a1ccec6..0000000 --- a/lens-cli/src/main/java/org/apache/lens/cli/commands/PhysicalTableCrudCommand.java +++ /dev/null @@ -1,131 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.lens.cli.commands; - -import java.io.File; -import java.io.IOException; -import java.util.List; - -import org.apache.lens.api.APIResult; -import org.apache.lens.api.metastore.XPartition; -import org.apache.lens.api.metastore.XStorageTableElement; - -import com.google.common.base.Joiner; - -public abstract class PhysicalTableCrudCommand<T> extends LensCRUDCommand<T> { - public String showAll(String filter) { - List<String> all = getAll(filter); - if (all == null || all.isEmpty()) { - return "No " + getSingleObjectName() + " found" + (filter == null ? "" : " for " + filter); - } - return Joiner.on("\n").join(all); - } - - public String showAllStorages(String tableName) { - String sep = ""; - StringBuilder sb = new StringBuilder(); - List<String> storages = getAllStorages(tableName); - if (storages != null) { - for (String storage : storages) { - if (!storage.isEmpty()) { - sb.append(sep).append(storage); - sep = "\n"; - } - } - } - String ret = sb.toString(); - return ret.isEmpty() ? "No storage found for " + tableName : ret; - } - - public String addStorage(String tableName, File path) { - return doAddStorage(tableName, getValidPath(path, false, true)).toString().toLowerCase(); - } - - public String getStorage(String tableName, String storage) { - try { - return formatJson(mapper.writer(pp).writeValueAsString(readStorage(tableName, storage))); - } catch (IOException e) { - throw new IllegalArgumentException(e); - } - } - - public String dropStorage(String tableName, String storageName) { - return doDropStorage(tableName, storageName).toString().toLowerCase(); - } - - public String dropAllStorages(String tableName) { - return doDropAllStorages(tableName).toString(); - } - - public String getAllPartitions(String tableName, String storageName, String filter) { - try { - return formatJson(mapper.writer(pp).writeValueAsString(readAllPartitions(tableName, storageName, filter))); - } catch (IOException e) { - throw new IllegalArgumentException(e); - } - } - - public String addPartition(String tableName, String storageName, File path) { - return doAddPartition(tableName, storageName, - getValidPath(path, false, true)).toString().toLowerCase(); - } - - public String updatePartition(String tableName, String storageName, File path) { - return doUpdatePartition(tableName, storageName, getValidPath(path, false, true)).toString() - .toLowerCase(); - } - - public String addPartitions(String tableName, String storageName, String path) { - return doAddPartitions(tableName, storageName, - getValidPath(new File(path), false, true)).toString().toLowerCase(); - } - - public String updatePartitions(String tableName, String storageName, String path) { - return doUpdatePartitions(tableName, storageName, - getValidPath(new File(path), false, true)).toString().toLowerCase(); - } - - public String dropPartitions(String tableName, String storageName, String filter) { - return doDropPartitions(tableName, storageName, filter).toString().toLowerCase(); - } - - protected abstract List<String> getAll(String filter); - - public abstract List<String> getAllStorages(String name); - - public abstract APIResult doAddStorage(String name, String path); - - protected abstract XStorageTableElement readStorage(String tableName, String storage); - - public abstract APIResult doDropStorage(String tableName, String storageName); - - public abstract APIResult doDropAllStorages(String name); - - protected abstract List<XPartition> readAllPartitions(String tableName, String storageName, String filter); - - protected abstract APIResult doAddPartition(String tableName, String storageName, String path); - - protected abstract APIResult doAddPartitions(String tableName, String storageName, String path); - - protected abstract APIResult doDropPartitions(String tableName, String storageName, String filter); - - protected abstract APIResult doUpdatePartition(String tableName, String storageName, String validPath); - - protected abstract APIResult doUpdatePartitions(String tableName, String storageName, String validPath); -}
