Commit 36e8243a by Harish Butani

add high level defineTypes method on TypeSystem

parent 7b205697
...@@ -21,6 +21,7 @@ package org.apache.hadoop.metadata.types; ...@@ -21,6 +21,7 @@ package org.apache.hadoop.metadata.types;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import org.apache.hadoop.metadata.MetadataException; import org.apache.hadoop.metadata.MetadataException;
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.lang.reflect.Constructor;
import java.util.*; import java.util.*;
...@@ -119,6 +120,22 @@ public class TypeSystem { ...@@ -119,6 +120,22 @@ public class TypeSystem {
return transientTypes.defineTypes(); 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, public Map<String, IDataType> defineTypes(ImmutableList<StructTypeDefinition> structDefs,
ImmutableList<HierarchicalTypeDefinition<TraitType>> traitDefs, ImmutableList<HierarchicalTypeDefinition<TraitType>> traitDefs,
ImmutableList<HierarchicalTypeDefinition<ClassType>> classDefs) ImmutableList<HierarchicalTypeDefinition<ClassType>> classDefs)
......
...@@ -23,4 +23,25 @@ import org.apache.hadoop.metadata.types._ ...@@ -23,4 +23,25 @@ import org.apache.hadoop.metadata.types._
case class TypesDef(enumTypes: Seq[EnumTypeDefinition], case class TypesDef(enumTypes: Seq[EnumTypeDefinition],
structTypes: Seq[StructTypeDefinition], structTypes: Seq[StructTypeDefinition],
traitTypes: Seq[HierarchicalTypeDefinition[TraitType]], 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