TraitType tT = new TraitType(this, traitDef.typeName, traitDef.typeDescription, traitDef.typeVersion, traitDef.superTypes, traitDef.attributeDefinitions.length); traitNameToDefMap.put(traitDef.typeName, traitDef);
TraitType tType = typeSystem.getDataType(TraitType.class, t); IStruct iTraitObject = r == null ? null : r.getTrait(t); ITypedStruct trait = iTraitObject == null ? tType.createInstance() : tType.convert(iTraitObject, Multiplicity.REQUIRED); b.put(t, trait);
Set<String> superTypeNames = traitDef.getAllSuperTypeNames(); FieldMapping fieldMapping = superTraitDef.fieldMapping();
@Test public void testTrait() throws AtlasException { TypeSystem ts = getTypeSystem(); HierarchicalTypeDefinition<TraitType> securityClearanceTypeDef = createTraitTypeDef("SecurityClearance2", ImmutableSet.<String>of(), createRequiredAttrDef("level", DataTypes.INT_TYPE)); ts.defineTypes(ImmutableList.<EnumTypeDefinition>of(), ImmutableList.<StructTypeDefinition>of(), ImmutableList.of(securityClearanceTypeDef), ImmutableList.<HierarchicalTypeDefinition<ClassType>>of()); Struct s = new Struct("SecurityClearance2"); s.set("level", 1); TraitType tType = ts.getDataType(TraitType.class, "SecurityClearance2"); ITypedInstance t = tType.convert(s, Multiplicity.REQUIRED); String jsonStr = Serialization$.MODULE$.toJson(t); ITypedInstance t2 = Serialization$.MODULE$.traitFromJson(jsonStr); Assert.assertEquals(t.toString(), t2.toString()); } }
@Override public void updateSignatureHash(MessageDigest digester, Object val) throws AtlasException { if( !(val instanceof ITypedStruct)) { throw new IllegalArgumentException("Unexpected value type " + val.getClass().getSimpleName() + ". Expected instance of ITypedStruct"); } digester.update(getName().getBytes(Charset.forName("UTF-8"))); if(fieldMapping.fields != null && val != null) { IStruct typedValue = (IStruct) val; for (AttributeInfo aInfo : fieldMapping.fields.values()) { Object attrVal = typedValue.get(aInfo.name); if(attrVal != null) { aInfo.dataType().updateSignatureHash(digester, attrVal); } } } }
private void validateAndSetupSuperTypes() throws AtlasException { for (HierarchicalTypeDefinition<TraitType> traitDef : traitDefs) { validateSuperTypes(TraitType.class, traitDef); TraitType traitType = getDataType(TraitType.class, traitDef.typeName); traitType.setupSuperTypesGraph(); } for (HierarchicalTypeDefinition<ClassType> classDef : classDefs) { validateSuperTypes(ClassType.class, classDef); ClassType classType = getDataType(ClassType.class, classDef.typeName); classType.setupSuperTypesGraph(); } }
TraitType tt = ts.getDataType(TraitType.class, sT); TypeUtils.outputVal(sT + " : ", buf, fieldPrefix); tt.output(s.getTrait(sT), buf, fieldPrefix, null);
@Test public void testTrait() throws AtlasException { TypeSystem ts = getTypeSystem(); HierarchicalTypeDefinition<TraitType> securityClearanceTypeDef = createTraitTypeDef("SecurityClearance2", ImmutableSet.<String>of(), createRequiredAttrDef("level", DataTypes.INT_TYPE)); ts.defineTypes(ImmutableList.<EnumTypeDefinition>of(), ImmutableList.<StructTypeDefinition>of(), ImmutableList.of(securityClearanceTypeDef), ImmutableList.<HierarchicalTypeDefinition<ClassType>>of()); Struct s = new Struct("SecurityClearance2"); s.set("level", 1); TraitType tType = ts.getDataType(TraitType.class, "SecurityClearance2"); ITypedInstance t = tType.convert(s, Multiplicity.REQUIRED); String jsonStr = Serialization$.MODULE$.toJson(t); ITypedInstance t2 = Serialization$.MODULE$.traitFromJson(jsonStr); Assert.assertEquals(t.toString(), t2.toString()); } }
@Override public void updateSignatureHash(MessageDigest digester, Object val) throws AtlasException { if( !(val instanceof ITypedStruct)) { throw new IllegalArgumentException("Unexpected value type " + val.getClass().getSimpleName() + ". Expected instance of ITypedStruct"); } digester.update(getName().getBytes(Charset.forName("UTF-8"))); if(fieldMapping.fields != null && val != null) { IStruct typedValue = (IStruct) val; for (AttributeInfo aInfo : fieldMapping.fields.values()) { Object attrVal = typedValue.get(aInfo.name); if(attrVal != null) { aInfo.dataType().updateSignatureHash(digester, attrVal); } } } }
private void validateAndSetupSuperTypes() throws AtlasException { for (HierarchicalTypeDefinition<TraitType> traitDef : traitDefs) { validateSuperTypes(TraitType.class, traitDef); TraitType traitType = getDataType(TraitType.class, traitDef.typeName); traitType.setupSuperTypesGraph(); } for (HierarchicalTypeDefinition<ClassType> classDef : classDefs) { validateSuperTypes(ClassType.class, classDef); ClassType classType = getDataType(ClassType.class, classDef.typeName); classType.setupSuperTypesGraph(); } }
TraitType tt = ts.getDataType(TraitType.class, sT); TypeUtils.outputVal(sT + " : ", buf, fieldPrefix); tt.output(s.getTrait(sT), buf, fieldPrefix, null);
TraitType tType = typeSystem.getDataType(TraitType.class, t); IStruct iTraitObject = r == null ? null : r.getTrait(t); ITypedStruct trait = iTraitObject == null ? tType.createInstance() : tType.convert(iTraitObject, Multiplicity.REQUIRED); b.put(t, trait);
ITypedStruct ts = DType.convert(s1, Multiplicity.REQUIRED); Assert.assertEquals(ts.toString(), "{\n" + "\td : \t1\n" +
TraitType tT = new TraitType(this, traitDef.typeName, traitDef.typeDescription, traitDef.typeVersion, traitDef.superTypes, traitDef.attributeDefinitions.length); traitNameToDefMap.put(traitDef.typeName, traitDef);
private void orderAndConstructTypes() throws AtlasException { List<TraitType> traitTypes = new ArrayList<>(); for (String traitTypeName : traitNameToDefMap.keySet()) { traitTypes.add(getDataType(TraitType.class, traitTypeName)); } traitTypes = HierarchicalTypeDependencySorter.sortTypes(traitTypes); List<ClassType> classTypes = new ArrayList<>(); for (String classTypeName : classNameToDefMap.keySet()) { classTypes.add(getDataType(ClassType.class, classTypeName)); } classTypes = HierarchicalTypeDependencySorter.sortTypes(classTypes); for (StructTypeDefinition structDef : structDefs) { constructStructureType(structDef); } for (TraitType traitType : traitTypes) { constructHierarchicalType(TraitType.class, traitNameToDefMap.get(traitType.getName())); } for (ClassType classType : classTypes) { constructHierarchicalType(ClassType.class, classNameToDefMap.get(classType.getName())); } }
ITypedStruct ts = DType.convert(s1, Multiplicity.REQUIRED); Assert.assertEquals(ts.toString(), "{\n" + "\td : \t1\n" +