@Override public boolean doesTypeHaveSubTypes(GremlinQueryComposer.Context context) { return (context.getActiveEntityType() != null && context.getActiveEntityType().getAllSubTypes().size() > 0); }
@Override public boolean doesTypeHaveSubTypes(GremlinQueryComposer.Context context) { return (context.getActiveEntityType() != null && context.getActiveEntityType().getAllSubTypes().size() > 0); }
private void updateTransformsWithSubTypes(ImportTransforms importTransforms) { String[] transformTypes = importTransforms.getTypes().toArray(new String[importTransforms.getTypes().size()]); for (int i = 0; i < transformTypes.length; i++) { String typeName = transformTypes[i]; AtlasEntityType entityType = typeRegistry.getEntityTypeByName(typeName); if (entityType == null) { continue; } importTransforms.addParentTransformsToSubTypes(typeName, entityType.getAllSubTypes()); } }
public AtlasVertex getResolvedEntityVertex(AtlasObjectId objId) { AtlasVertex vertex = resolvedIdsByUniqAttribs.get(objId); // check also for sub-types; ref={typeName=Asset; guid=abcd} should match {typeName=hive_table; guid=abcd} if (vertex == null) { final AtlasEntityType entityType = typeRegistry.getEntityTypeByName(objId.getTypeName()); final Set<String> allSubTypes = entityType.getAllSubTypes(); for (String subType : allSubTypes) { AtlasObjectId subTypeObjId = new AtlasObjectId(objId.getGuid(), subType, objId.getUniqueAttributes()); vertex = resolvedIdsByUniqAttribs.get(subTypeObjId); if (vertex != null) { resolvedIdsByUniqAttribs.put(objId, vertex); break; } } } return vertex; }
public AtlasVertex getResolvedEntityVertex(AtlasObjectId objId) { AtlasVertex vertex = resolvedIdsByUniqAttribs.get(objId); // check also for sub-types; ref={typeName=Asset; guid=abcd} should match {typeName=hive_table; guid=abcd} if (vertex == null) { final AtlasEntityType entityType = typeRegistry.getEntityTypeByName(objId.getTypeName()); final Set<String> allSubTypes = entityType.getAllSubTypes(); for (String subType : allSubTypes) { AtlasObjectId subTypeObjId = new AtlasObjectId(objId.getGuid(), subType, objId.getUniqueAttributes()); vertex = resolvedIdsByUniqAttribs.get(subTypeObjId); if (vertex != null) { resolvedIdsByUniqAttribs.put(objId, vertex); break; } } } return vertex; }
private void validateAllSubTypes(AtlasTypeRegistry typeRegistry, String typeName, Set<String> expectedSubTypes) { AtlasType type = null; try { type = typeRegistry.getType(typeName); } catch (AtlasBaseException excp) { } Set<String> subTypes = null; if (type != null) { if (type instanceof AtlasEntityType) { subTypes = ((AtlasEntityType) type).getAllSubTypes(); } else if (type instanceof AtlasClassificationType) { subTypes = ((AtlasClassificationType) type).getAllSubTypes(); } } assertEquals(subTypes, expectedSubTypes); }
public static AtlasVertex findByUniqueAttributes(AtlasEntityType entityType, Map<String, Object> attrValues) { AtlasVertex vertex = null; final Map<String, AtlasAttribute> uniqueAttributes = entityType.getUniqAttributes(); if (MapUtils.isNotEmpty(uniqueAttributes) && MapUtils.isNotEmpty(attrValues)) { for (AtlasAttribute attribute : uniqueAttributes.values()) { Object attrValue = attrValues.get(attribute.getName()); if (attrValue == null) { continue; } if (canUseIndexQuery(entityType, attribute.getName())) { vertex = AtlasGraphUtilsV2.getAtlasVertexFromIndexQuery(entityType, attribute, attrValue); } else { vertex = AtlasGraphUtilsV2.findByTypeAndPropertyName(entityType.getTypeName(), attribute.getVertexPropertyName(), attrValue); // if no instance of given typeName is found, try to find an instance of type's sub-type if (vertex == null && !entityType.getAllSubTypes().isEmpty()) { vertex = AtlasGraphUtilsV2.findBySuperTypeAndPropertyName(entityType.getTypeName(), attribute.getVertexPropertyName(), attrValue); } } if (vertex != null) { if (LOG.isDebugEnabled()) { LOG.debug("findByUniqueAttributes(type={}, attrName={}, attrValue={}: found vertex {}", entityType.getTypeName(), attribute.getName(), attrValue, vertex); } break; } } } return vertex; }
if (vertex == null && !entityType.getAllSubTypes().isEmpty()) { vertex = AtlasGraphUtilsV2.findBySuperTypeAndPropertyName(entityType.getTypeName(), attribute.getVertexPropertyName(), attrValue);