use of org.apache.atlas.v1.model.typedef.TraitTypeDefinition in project atlas by apache.
the class TypeConverterUtil method toAtlasClassificationDefs.
private static List<AtlasClassificationDef> toAtlasClassificationDefs(List<TraitTypeDefinition> traitTypeDefinitions) {
List<AtlasClassificationDef> ret = new ArrayList<>();
for (TraitTypeDefinition traitType : traitTypeDefinitions) {
List<AtlasAttributeDef> attrDefs = new ArrayList<AtlasAttributeDef>();
if (CollectionUtils.isNotEmpty(traitType.getAttributeDefinitions())) {
for (AttributeDefinition attrDefinition : traitType.getAttributeDefinitions()) {
attrDefs.add(toAtlasAttributeDef(attrDefinition));
}
}
AtlasClassificationDef classifDef = new AtlasClassificationDef(traitType.getTypeName(), traitType.getTypeDescription(), traitType.getTypeVersion(), attrDefs, traitType.getSuperTypes());
ret.add(classifDef);
}
return ret;
}
use of org.apache.atlas.v1.model.typedef.TraitTypeDefinition in project atlas by apache.
the class TypeConverterUtil method classificationToTypesDef.
private static TypesDef classificationToTypesDef(AtlasClassificationType classificationType, AtlasTypeRegistry registry) {
String typeName = classificationType.getClassificationDef().getName();
String typeDesc = classificationType.getClassificationDef().getDescription();
String typeVersion = classificationType.getClassificationDef().getTypeVersion();
Set<String> superTypes = new HashSet<>(classificationType.getClassificationDef().getSuperTypes());
List<AttributeDefinition> attributes = getAttributes(classificationType, registry);
TraitTypeDefinition traitTypeDef = new TraitTypeDefinition(typeName, typeDesc, typeVersion, attributes, superTypes);
TypesDef ret = new TypesDef(null, null, Arrays.asList(traitTypeDef), null);
return ret;
}
use of org.apache.atlas.v1.model.typedef.TraitTypeDefinition in project atlas by apache.
the class AtlasClient method createTraitType.
/**
* Creates trait type with specifiedName, superTraits and attributes
* @param traitName the name of the trait type
* @param superTraits the list of super traits from which this trait type inherits attributes
* @param attributeDefinitions the list of attributes of the trait type
* @return the list of types created
* @throws AtlasServiceException
*/
public List<String> createTraitType(String traitName, Set<String> superTraits, AttributeDefinition... attributeDefinitions) throws AtlasServiceException {
TraitTypeDefinition piiTrait = TypesUtil.createTraitTypeDef(traitName, null, superTraits, Arrays.asList(attributeDefinitions));
TypesDef typesDef = new TypesDef(Collections.emptyList(), Collections.emptyList(), Collections.singletonList(piiTrait), Collections.emptyList());
LOG.debug("Creating trait type {} {}", traitName, AtlasType.toV1Json(piiTrait));
return createType(AtlasType.toV1Json(typesDef));
}
use of org.apache.atlas.v1.model.typedef.TraitTypeDefinition in project atlas by apache.
the class EntityJerseyResourceIT method testUTF8.
@Test
public void testUTF8() throws Exception {
// Type names cannot be arbitrary UTF8 characters. See org.apache.atlas.type.AtlasTypeUtil#validateType()
String classType = randomString();
String attrName = random();
String attrValue = random();
ClassTypeDefinition classTypeDefinition = TypesUtil.createClassTypeDef(classType, null, Collections.<String>emptySet(), TypesUtil.createUniqueRequiredAttrDef(attrName, AtlasBaseTypeDef.ATLAS_TYPE_STRING));
TypesDef typesDef = new TypesDef(Collections.<EnumTypeDefinition>emptyList(), Collections.<StructTypeDefinition>emptyList(), Collections.<TraitTypeDefinition>emptyList(), Collections.singletonList(classTypeDefinition));
createType(typesDef);
Referenceable instance = new Referenceable(classType);
instance.set(attrName, attrValue);
Id guid = createInstance(instance);
ObjectNode response = atlasClientV1.callAPIWithBodyAndParams(AtlasClient.API_V1.GET_ENTITY, null, guid._getId());
Referenceable getReferenceable = AtlasType.fromV1Json(AtlasType.toJson(response.get(AtlasClient.DEFINITION)), Referenceable.class);
Assert.assertEquals(getReferenceable.get(attrName), attrValue);
}
use of org.apache.atlas.v1.model.typedef.TraitTypeDefinition in project atlas by apache.
the class EntityJerseyResourceIT method testAddTrait.
@Test
public void testAddTrait() throws Exception {
String dbName = "db" + randomString();
String tableName = "table" + randomString();
Referenceable hiveDBInstance = createHiveDBInstanceBuiltIn(dbName);
Id dbId = createInstance(hiveDBInstance);
Referenceable hiveTableInstance = createHiveTableInstanceBuiltIn(dbName, tableName, dbId);
Id id = createInstance(hiveTableInstance);
final String guid = id._getId();
try {
Assert.assertNotNull(UUID.fromString(guid));
} catch (IllegalArgumentException e) {
Assert.fail("Response is not a guid, " + guid);
}
String traitName = "PII_Trait" + randomString();
TraitTypeDefinition piiTrait = TypesUtil.createTraitTypeDef(traitName, null, Collections.<String>emptySet());
String traitDefinitionAsJSON = AtlasType.toV1Json(piiTrait);
LOG.debug("traitDefinitionAsJSON = {}", traitDefinitionAsJSON);
TypesDef typesDef = new TypesDef(Collections.emptyList(), Collections.emptyList(), Collections.singletonList(piiTrait), Collections.emptyList());
createType(typesDef);
Struct traitInstance = new Struct(traitName);
atlasClientV1.addTrait(guid, traitInstance);
assertEntityAudit(guid, EntityAuditEvent.EntityAuditAction.TAG_ADD);
}
Aggregations