public void setElementDefs(List<AtlasEnumElementDef> elementDefs) { if (elementDefs != null && this.elementDefs == elementDefs) { return; } if (CollectionUtils.isEmpty(elementDefs)) { this.elementDefs = new ArrayList<>(); } else { // if multiple elements with same value are present, keep only the last entry List<AtlasEnumElementDef> tmpList = new ArrayList<>(elementDefs.size()); Set<String> elementValues = new HashSet<>(); ListIterator<AtlasEnumElementDef> iter = elementDefs.listIterator(elementDefs.size()); while (iter.hasPrevious()) { AtlasEnumElementDef elementDef = iter.previous(); String elementValue = elementDef != null ? elementDef.getValue() : null; if (elementValue != null) { elementValue = elementValue.toLowerCase(); if (!elementValues.contains(elementValue)) { tmpList.add(new AtlasEnumElementDef(elementDef)); elementValues.add(elementValue); } } } Collections.reverse(tmpList); this.elementDefs = tmpList; } }
public void setElementDefs(List<AtlasEnumElementDef> elementDefs) { if (elementDefs != null && this.elementDefs == elementDefs) { return; } if (CollectionUtils.isEmpty(elementDefs)) { this.elementDefs = new ArrayList<>(); } else { // if multiple elements with same value are present, keep only the last entry List<AtlasEnumElementDef> tmpList = new ArrayList<>(elementDefs.size()); Set<String> elementValues = new HashSet<>(); ListIterator<AtlasEnumElementDef> iter = elementDefs.listIterator(elementDefs.size()); while (iter.hasPrevious()) { AtlasEnumElementDef elementDef = iter.previous(); String elementValue = elementDef != null ? elementDef.getValue() : null; if (elementValue != null) { elementValue = elementValue.toLowerCase(); if (!elementValues.contains(elementValue)) { tmpList.add(new AtlasEnumElementDef(elementDef)); elementValues.add(elementValue); } } } Collections.reverse(tmpList); this.elementDefs = tmpList; } }
public void addElement(AtlasEnumElementDef elementDef) { List<AtlasEnumElementDef> e = this.elementDefs; List<AtlasEnumElementDef> tmpList = new ArrayList<>(); if (CollectionUtils.isNotEmpty(e)) { // copy existing elements, except ones having same value as the element being added for (AtlasEnumElementDef existingElem : e) { if (!StringUtils.equalsIgnoreCase(existingElem.getValue(), elementDef.getValue())) { tmpList.add(existingElem); } } } tmpList.add(new AtlasEnumElementDef(elementDef)); this.elementDefs = tmpList; }
new AtlasEnumDef("OrgLevel", "OrgLevel"+_description, "1.0", Arrays.asList( new AtlasEnumElementDef("L2", "Element"+ _description, 1), new AtlasEnumElementDef("L1", "Element"+ _description, 2), new AtlasEnumElementDef("L3", "Element"+ _description, 3) ));
public static AtlasEnumDef newEnumDef(AtlasTypeRegistry typesRegistry, boolean hasDefaultValue) { int enumDefIdx = IDX_ENUM_DEF.getAndIncrement(); AtlasEnumDef ret = new AtlasEnumDef(); ret.setName(PREFIX_ENUM_DEF + enumDefIdx); ret.setDescription(ret.getName()); int numElements = ThreadLocalRandom.current().nextInt(1, MAX_ENUM_ELEMENT_COUNT); for (int i = 0; i < numElements; i++) { String elementName = "element-" + i; ret.addElement(new AtlasEnumElementDef(elementName, elementName.toUpperCase(), i)); } if (hasDefaultValue) { int idxDefault = ThreadLocalRandom.current().nextInt(0, numElements); ret.setDefaultValue(ret.getElementDefs().get(idxDefault).getValue()); } AtlasTransientTypeRegistry ttr = null; boolean commit = false; try { ttr = typesRegistry.lockTypeRegistryForUpdate(); ttr.addType(ret); commit = true; } catch (AtlasBaseException excp) { LOG.error("failed to create enum-def", excp); ret = null; } finally { typesRegistry.releaseTypeRegistryForUpdate(ttr, commit); } return ret; }
public static AtlasEnumDef newEnumDef(AtlasTypeRegistry typesRegistry, boolean hasDefaultValue) { int enumDefIdx = IDX_ENUM_DEF.getAndIncrement(); AtlasEnumDef ret = new AtlasEnumDef(); ret.setName(PREFIX_ENUM_DEF + enumDefIdx); ret.setDescription(ret.getName()); int numElements = ThreadLocalRandom.current().nextInt(1, MAX_ENUM_ELEMENT_COUNT); for (int i = 0; i < numElements; i++) { String elementName = "element-" + i; ret.addElement(new AtlasEnumElementDef(elementName, elementName.toUpperCase(), i)); } if (hasDefaultValue) { int idxDefault = ThreadLocalRandom.current().nextInt(0, numElements); ret.setDefaultValue(ret.getElementDefs().get(idxDefault).getValue()); } AtlasTransientTypeRegistry ttr = null; boolean commit = false; try { ttr = typesRegistry.lockTypeRegistryForUpdate(); ttr.addType(ret); commit = true; } catch (AtlasBaseException excp) { LOG.error("failed to create enum-def", excp); ret = null; } finally { typesRegistry.releaseTypeRegistryForUpdate(ttr, commit); } return ret; }
private static AtlasEnumDef toEnumDef(AtlasVertex vertex, AtlasEnumDef enumDef, AtlasTypeDefGraphStoreV2 typeDefStore) { AtlasEnumDef ret = enumDef != null ? enumDef : new AtlasEnumDef(); typeDefStore.vertexToTypeDef(vertex, ret); List<AtlasEnumElementDef> elements = new ArrayList<>(); List<String> elemValues = vertex.getProperty(AtlasGraphUtilsV2.getTypeDefPropertyKey(ret), List.class); for (String elemValue : elemValues) { String elemKey = AtlasGraphUtilsV2.getTypeDefPropertyKey(ret, elemValue); String descKey = AtlasGraphUtilsV2.getTypeDefPropertyKey(elemKey, "description"); Integer ordinal = AtlasGraphUtilsV2.getProperty(vertex, elemKey, Integer.class); String desc = AtlasGraphUtilsV2.getProperty(vertex, descKey, String.class); elements.add(new AtlasEnumElementDef(elemValue, desc, ordinal)); } ret.setElementDefs(elements); String defaultValueKey = AtlasGraphUtilsV2.getTypeDefPropertyKey(ret, "defaultValue"); String defaultValue = AtlasGraphUtilsV2.getProperty(vertex, defaultValueKey, String.class); ret.setDefaultValue(defaultValue); return ret; } }
public static AtlasTypesDef simpleTypeUpdated(){ AtlasEntityDef superTypeDefinition = createClassTypeDef("h_type", Collections.<String>emptySet(), createOptionalAttrDef("attr", "string")); AtlasEntityDef newSuperTypeDefinition = createClassTypeDef("new_h_type", Collections.<String>emptySet(), createOptionalAttrDef("attr", "string")); AtlasStructDef structTypeDefinition = new AtlasStructDef("s_type", "structType", "1.0", Arrays.asList(createRequiredAttrDef("name", "string"))); AtlasClassificationDef traitTypeDefinition = AtlasTypeUtil.createTraitTypeDef("t_type", "traitType", Collections.<String>emptySet()); AtlasEnumDef enumTypeDefinition = new AtlasEnumDef("e_type", "enumType", Arrays.asList(new AtlasEnumElementDef("ONE", "Element Description", 1))); AtlasTypesDef ret = AtlasTypeUtil.getTypesDef(Collections.singletonList(enumTypeDefinition), Collections.singletonList(structTypeDefinition), Collections.singletonList(traitTypeDefinition), Arrays.asList(superTypeDefinition, newSuperTypeDefinition)); populateSystemAttributes(ret); return ret; }
private static AtlasEnumDef toEnumDef(AtlasVertex vertex, AtlasEnumDef enumDef, AtlasTypeDefGraphStoreV2 typeDefStore) { AtlasEnumDef ret = enumDef != null ? enumDef : new AtlasEnumDef(); typeDefStore.vertexToTypeDef(vertex, ret); List<AtlasEnumElementDef> elements = new ArrayList<>(); List<String> elemValues = vertex.getProperty(AtlasGraphUtilsV2.getTypeDefPropertyKey(ret), List.class); for (String elemValue : elemValues) { String elemKey = AtlasGraphUtilsV2.getTypeDefPropertyKey(ret, elemValue); String descKey = AtlasGraphUtilsV2.getTypeDefPropertyKey(elemKey, "description"); Integer ordinal = AtlasGraphUtilsV2.getProperty(vertex, elemKey, Integer.class); String desc = AtlasGraphUtilsV2.getProperty(vertex, descKey, String.class); elements.add(new AtlasEnumElementDef(elemValue, desc, ordinal)); } ret.setElementDefs(elements); String defaultValueKey = AtlasGraphUtilsV2.getTypeDefPropertyKey(ret, "defaultValue"); String defaultValue = AtlasGraphUtilsV2.getProperty(vertex, defaultValueKey, String.class); ret.setDefaultValue(defaultValue); return ret; } }
@Test public void testEnumDefSetElementDefs() { AtlasEnumDef enumDef = ModelTestUtil.newEnumDef(); List<AtlasEnumElementDef> oldElements = enumDef.getElementDefs(); List<AtlasEnumElementDef> newElements = new ArrayList<>(); newElements.add(new AtlasEnumElementDef("newElement", "new Element", 100)); enumDef.setElementDefs(newElements); for (AtlasEnumElementDef elementDef : oldElements) { assertFalse(enumDef.hasElement(elementDef.getValue())); } for (AtlasEnumElementDef elementDef : newElements) { assertTrue(enumDef.hasElement(elementDef.getValue())); } } }
@Test public void testEnumDefSetElementDefs() { AtlasEnumDef enumDef = ModelTestUtil.newEnumDef(); List<AtlasEnumElementDef> oldElements = enumDef.getElementDefs(); List<AtlasEnumElementDef> newElements = new ArrayList<>(); newElements.add(new AtlasEnumElementDef("newElement", "new Element", 100)); enumDef.setElementDefs(newElements); for (AtlasEnumElementDef elementDef : oldElements) { assertFalse(enumDef.hasElement(elementDef.getValue())); } for (AtlasEnumElementDef elementDef : newElements) { assertTrue(enumDef.hasElement(elementDef.getValue())); } } }
public static AtlasTypesDef simpleType(){ AtlasEntityDef superTypeDefinition = createClassTypeDef("h_type", Collections.<String>emptySet(), createOptionalAttrDef("attr", "string")); AtlasStructDef structTypeDefinition = new AtlasStructDef("s_type", "structType", "1.0", Arrays.asList(createRequiredAttrDef("name", "string"))); AtlasClassificationDef traitTypeDefinition = AtlasTypeUtil.createTraitTypeDef("t_type", "traitType", Collections.<String>emptySet()); AtlasEnumDef enumTypeDefinition = new AtlasEnumDef("e_type", "enumType", "1.0", Arrays.asList(new AtlasEnumElementDef("ONE", "Element Description", 1))); AtlasTypesDef ret = AtlasTypeUtil.getTypesDef(Collections.singletonList(enumTypeDefinition), Collections.singletonList(structTypeDefinition), Collections.singletonList(traitTypeDefinition), Collections.singletonList(superTypeDefinition)); populateSystemAttributes(ret); return ret; }
public void addElement(AtlasEnumElementDef elementDef) { List<AtlasEnumElementDef> e = this.elementDefs; List<AtlasEnumElementDef> tmpList = new ArrayList<>(); if (CollectionUtils.isNotEmpty(e)) { // copy existing elements, except ones having same value as the element being added for (AtlasEnumElementDef existingElem : e) { if (!StringUtils.equalsIgnoreCase(existingElem.getValue(), elementDef.getValue())) { tmpList.add(existingElem); } } } tmpList.add(new AtlasEnumElementDef(elementDef)); this.elementDefs = tmpList; }
private static List<AtlasEnumElementDef> getAtlasEnumElementDefs(List<EnumValue> enums) { List<AtlasEnumElementDef> ret = new ArrayList<>(); for (EnumValue enumElem : enums) { ret.add(new AtlasEnumElementDef(enumElem.getValue(), null, enumElem.getOrdinal())); } return ret; }
private List<AtlasEnumDef.AtlasEnumElementDef> getEnumElementDefs(int startIndex, String... names) { int i = startIndex; List<AtlasEnumDef.AtlasEnumElementDef> list = new ArrayList<>(); for (String s: names) { list.add(new AtlasEnumDef.AtlasEnumElementDef(s, s, i++)); } return list; }
private static List<AtlasEnumElementDef> getOrgLevelElements() { return Arrays.asList( new AtlasEnumElementDef("L1", description("L1"), 1), new AtlasEnumElementDef("L2", description("L2"), 2), new AtlasEnumElementDef("L3", description("L3"), 3) ); }
@Test public void testEnumDefAddElement() { AtlasEnumDef enumDef = ModelTestUtil.newEnumDef(); String newElement = "newElement-abcd-1234"; enumDef.addElement(new AtlasEnumElementDef(newElement, "A new element", enumDef.getElementDefs().size())); assertTrue(enumDef.hasElement(newElement)); }
@Test public void testEnumDefAddElement() { AtlasEnumDef enumDef = ModelTestUtil.newEnumDef(); String newElement = "newElement-abcd-1234"; enumDef.addElement(new AtlasEnumElementDef(newElement, "A new element", enumDef.getElementDefs().size())); assertTrue(enumDef.hasElement(newElement)); }
private List<AtlasEnumDef.AtlasEnumElementDef> getEnumElementDefs(int startIndex, String... names) { int i = startIndex; List<AtlasEnumDef.AtlasEnumElementDef> list = new ArrayList<>(); for (String s: names) { list.add(new AtlasEnumDef.AtlasEnumElementDef(s, s, i++)); } return list; }
private static List<AtlasEnumElementDef> getAtlasEnumElementDefs(EnumValue[] enums) { List<AtlasEnumElementDef> ret = new ArrayList<AtlasEnumElementDef>(); for (EnumValue enumElem : enums) { ret.add(new AtlasEnumElementDef(enumElem.value, null, enumElem.ordinal)); } return ret; }