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 AtlasEnumElementDef getEnumElementDef(Number ordinal) { if (ordinal != null) { for (AtlasEnumElementDef elementDef : elementDefs.values()) { if (elementDef.getOrdinal().longValue() == ordinal.longValue()) { return elementDef; } } } return null; } }
new AtlasEnumElementDef("MANAGED", "Element Description", 1), new AtlasEnumElementDef("EXTERNAL", "Element Description", 2)};
new AtlasEnumElementDef("MANAGED", "Element Description", 1), new AtlasEnumElementDef("EXTERNAL", "Element Description", 2)};
new AtlasEnumDef("OrgLevel", "OrgLevel"+_description, "1.0", Arrays.asList( new AtlasEnumElementDef("L1", "Element"+_description, 1), new AtlasEnumElementDef("L2", "Element"+_description, 2) ));
new AtlasEnumDef("OrgLevel", "OrgLevel"+_description, "1.0", Arrays.asList( new AtlasEnumElementDef("L1", "Element"+ _description, 1), new AtlasEnumElementDef("L2", "Element"+ _description, 2) ));
if (CollectionUtils.isNotEmpty(oldEnumDef.getElementDefs())) { for (AtlasEnumElementDef oldEnumElem : oldEnumDef.getElementDefs()) { if (!newEnumDef.hasElement(oldEnumElem.getValue())) { newEnumDef.addElement(oldEnumElem);
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) ));
if (CollectionUtils.isNotEmpty(oldEnumDef.getElementDefs())) { for (AtlasEnumElementDef oldEnumElem : oldEnumDef.getElementDefs()) { if (!newEnumDef.hasElement(oldEnumElem.getValue())) { newEnumDef.addElement(oldEnumElem);
ret = elementDef.getValue();
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; }
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; } }
private void toVertex(AtlasEnumDef enumDef, AtlasVertex vertex) throws AtlasBaseException { if (CollectionUtils.isEmpty(enumDef.getElementDefs())) { throw new AtlasBaseException(AtlasErrorCode.MISSING_MANDATORY_ATTRIBUTE, enumDef.getName(), "values"); } List<String> values = new ArrayList<>(enumDef.getElementDefs().size()); for (AtlasEnumElementDef element : enumDef.getElementDefs()) { // Validate the enum element if (StringUtils.isEmpty(element.getValue()) || null == element.getOrdinal()) { throw new AtlasBaseException(AtlasErrorCode.MISSING_MANDATORY_ATTRIBUTE, enumDef.getName(), "elementValue"); } String elemKey = AtlasGraphUtilsV2.getTypeDefPropertyKey(enumDef, element.getValue()); AtlasGraphUtilsV2.setProperty(vertex, elemKey, element.getOrdinal()); if (StringUtils.isNotBlank(element.getDescription())) { String descKey = AtlasGraphUtilsV2.getTypeDefPropertyKey(elemKey, "description"); AtlasGraphUtilsV2.setProperty(vertex, descKey, element.getDescription()); } values.add(element.getValue()); } AtlasGraphUtilsV2.setProperty(vertex, AtlasGraphUtilsV2.getTypeDefPropertyKey(enumDef), values); String defaultValueKey = AtlasGraphUtilsV2.getTypeDefPropertyKey(enumDef, "defaultValue"); AtlasGraphUtilsV2.setProperty(vertex, defaultValueKey, enumDef.getDefaultValue()); }
private void toVertex(AtlasEnumDef enumDef, AtlasVertex vertex) throws AtlasBaseException { if (CollectionUtils.isEmpty(enumDef.getElementDefs())) { throw new AtlasBaseException(AtlasErrorCode.MISSING_MANDATORY_ATTRIBUTE, enumDef.getName(), "values"); } List<String> values = new ArrayList<>(enumDef.getElementDefs().size()); for (AtlasEnumElementDef element : enumDef.getElementDefs()) { // Validate the enum element if (StringUtils.isEmpty(element.getValue()) || null == element.getOrdinal()) { throw new AtlasBaseException(AtlasErrorCode.MISSING_MANDATORY_ATTRIBUTE, enumDef.getName(), "elementValue"); } String elemKey = AtlasGraphUtilsV2.getTypeDefPropertyKey(enumDef, element.getValue()); AtlasGraphUtilsV2.setProperty(vertex, elemKey, element.getOrdinal()); if (StringUtils.isNotBlank(element.getDescription())) { String descKey = AtlasGraphUtilsV2.getTypeDefPropertyKey(elemKey, "description"); AtlasGraphUtilsV2.setProperty(vertex, descKey, element.getDescription()); } values.add(element.getValue()); } AtlasGraphUtilsV2.setProperty(vertex, AtlasGraphUtilsV2.getTypeDefPropertyKey(enumDef), values); String defaultValueKey = AtlasGraphUtilsV2.getTypeDefPropertyKey(enumDef, "defaultValue"); AtlasGraphUtilsV2.setProperty(vertex, defaultValueKey, enumDef.getDefaultValue()); }
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; } }
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; }
public AtlasEnumType(AtlasEnumDef enumDef) { super(enumDef); Map<String, AtlasEnumElementDef> e = new HashMap<>(); for (AtlasEnumElementDef elementDef : enumDef.getElementDefs()) { e.put(elementDef.getValue().toLowerCase(), elementDef); } String d = enumDef.getDefaultValue(); if (d == null) { AtlasEnumElementDef defElem = enumDef.getElementDefs().size() > 0 ? enumDef.getElementDefs().get(0) : null; if (defElem != null) { d = defElem.getValue(); } } this.enumDef = enumDef; this.elementDefs = Collections.unmodifiableMap(e); this.defaultValue = d; }
public AtlasEnumType(AtlasEnumDef enumDef) { super(enumDef); Map<String, AtlasEnumElementDef> e = new HashMap<>(); for (AtlasEnumElementDef elementDef : enumDef.getElementDefs()) { e.put(elementDef.getValue().toLowerCase(), elementDef); } String d = enumDef.getDefaultValue(); if (d == null) { AtlasEnumElementDef defElem = enumDef.getElementDefs().size() > 0 ? enumDef.getElementDefs().get(0) : null; if (defElem != null) { d = defElem.getValue(); } } this.enumDef = enumDef; this.elementDefs = Collections.unmodifiableMap(e); this.defaultValue = d; }