private void addOrUpdateAttributes(AtlasStructDef structDef, List<AtlasAttributeDef> attributesToUpdate) { for (AtlasAttributeDef attributeToUpdate : attributesToUpdate) { String attrName = attributeToUpdate.getName(); if (structDef.hasAttribute(attrName)) { structDef.removeAttribute(attrName); } structDef.addAttribute(attributeToUpdate); } } }
private void addOrUpdateAttributes(AtlasStructDef structDef, List<AtlasAttributeDef> attributesToUpdate) { for (AtlasAttributeDef attributeToUpdate : attributesToUpdate) { String attrName = attributeToUpdate.getName(); if (structDef.hasAttribute(attrName)) { structDef.removeAttribute(attrName); } structDef.addAttribute(attributeToUpdate); } } }
@Test public void testStructDefRemoveAttribute() { AtlasStructDef structDef = ModelTestUtil.newStructDef(); String attrName = structDef.getAttributeDefs().get(0).getName(); assertTrue(structDef.hasAttribute(attrName)); structDef.removeAttribute(attrName); assertFalse(structDef.hasAttribute(attrName)); }
@Test public void testStructDefRemoveAttribute() { AtlasStructDef structDef = ModelTestUtil.newStructDef(); String attrName = structDef.getAttributeDefs().get(0).getName(); assertTrue(structDef.hasAttribute(attrName)); structDef.removeAttribute(attrName); assertFalse(structDef.hasAttribute(attrName)); }
@Test public void testInvalidStructDef_MultiValuedAttributeNotArray() { AtlasAttributeDef invalidMultiValuedAttrib = new AtlasAttributeDef("invalidAttributeDef", ATLAS_TYPE_INT); invalidMultiValuedAttrib.setCardinality(Cardinality.LIST); AtlasStructDef invalidStructDef = ModelTestUtil.newStructDef(); invalidStructDef.addAttribute(invalidMultiValuedAttrib); try { AtlasStructType invalidStructType = new AtlasStructType(invalidStructDef, ModelTestUtil.getTypesRegistry()); fail("invalidStructDef not detected: structDef=" + invalidStructDef + "; structType=" + invalidStructType); } catch (AtlasBaseException excp) { assertTrue(excp.getAtlasErrorCode() == AtlasErrorCode.INVALID_ATTRIBUTE_TYPE_FOR_CARDINALITY); invalidStructDef.removeAttribute("invalidAttributeDef"); } }
@Test public void testInvalidStructDef_MultiValuedAttributeNotArray() { AtlasAttributeDef invalidMultiValuedAttrib = new AtlasAttributeDef("invalidAttributeDef", ATLAS_TYPE_INT); invalidMultiValuedAttrib.setCardinality(Cardinality.LIST); AtlasStructDef invalidStructDef = ModelTestUtil.newStructDef(); invalidStructDef.addAttribute(invalidMultiValuedAttrib); try { AtlasStructType invalidStructType = new AtlasStructType(invalidStructDef, ModelTestUtil.getTypesRegistry()); fail("invalidStructDef not detected: structDef=" + invalidStructDef + "; structType=" + invalidStructType); } catch (AtlasBaseException excp) { assertTrue(excp.getAtlasErrorCode() == AtlasErrorCode.INVALID_ATTRIBUTE_TYPE_FOR_CARDINALITY); invalidStructDef.removeAttribute("invalidAttributeDef"); } }