Commit 36e8243a by Harish Butani

add high level defineTypes method on TypeSystem

parent 7b205697
......@@ -21,6 +21,7 @@ package org.apache.hadoop.metadata.types;
import com.google.common.collect.ImmutableList;
import org.apache.hadoop.metadata.MetadataException;
import org.apache.hadoop.metadata.MetadataException;
import org.apache.hadoop.metadata.TypesDef;
import java.lang.reflect.Constructor;
import java.util.*;
......@@ -119,6 +120,22 @@ public class TypeSystem {
return transientTypes.defineTypes();
}
public Map<String, IDataType> defineTypes(TypesDef typesDef)
throws MetadataException {
for(EnumTypeDefinition enumDef : typesDef.enumTypesAsJavaList()) {
defineEnumType(enumDef);
}
ImmutableList<StructTypeDefinition> structDefs = ImmutableList.copyOf(typesDef.structTypesAsJavaList());
ImmutableList<HierarchicalTypeDefinition<TraitType>> traitDefs =
ImmutableList.copyOf(typesDef.traitTypesAsJavaList());
ImmutableList<HierarchicalTypeDefinition<ClassType>> classDefs =
ImmutableList.copyOf(typesDef.classTypesAsJavaList());
return defineTypes(structDefs, traitDefs, classDefs);
}
public Map<String, IDataType> defineTypes(ImmutableList<StructTypeDefinition> structDefs,
ImmutableList<HierarchicalTypeDefinition<TraitType>> traitDefs,
ImmutableList<HierarchicalTypeDefinition<ClassType>> classDefs)
......
......@@ -23,4 +23,25 @@ import org.apache.hadoop.metadata.types._
case class TypesDef(enumTypes: Seq[EnumTypeDefinition],
structTypes: Seq[StructTypeDefinition],
traitTypes: Seq[HierarchicalTypeDefinition[TraitType]],
classTypes: Seq[HierarchicalTypeDefinition[ClassType]])
classTypes: Seq[HierarchicalTypeDefinition[ClassType]]) {
def enumTypesAsJavaList() = {
import scala.collection.JavaConverters._
enumTypes.asJava
}
def structTypesAsJavaList() = {
import scala.collection.JavaConverters._
structTypes.asJava
}
def traitTypesAsJavaList() = {
import scala.collection.JavaConverters._
traitTypes.asJava
}
def classTypesAsJavaList() = {
import scala.collection.JavaConverters._
classTypes.asJava
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment