public AtlasType getType(String typeName) throws AtlasBaseException { if (LOG.isDebugEnabled()) { LOG.debug("==> AtlasTypeRegistry.getType({})", typeName); } AtlasType ret = registryData.allTypes.getTypeByName(typeName); if (ret == null) { if (typeName.startsWith(ATLAS_TYPE_ARRAY_PREFIX) && typeName.endsWith(ATLAS_TYPE_ARRAY_SUFFIX)) { int startIdx = ATLAS_TYPE_ARRAY_PREFIX.length(); int endIdx = typeName.length() - ATLAS_TYPE_ARRAY_SUFFIX.length(); String elementTypeName = typeName.substring(startIdx, endIdx); ret = new AtlasArrayType(elementTypeName, this); } else if (typeName.startsWith(ATLAS_TYPE_MAP_PREFIX) && typeName.endsWith(ATLAS_TYPE_MAP_SUFFIX)) { int startIdx = ATLAS_TYPE_MAP_PREFIX.length(); int endIdx = typeName.length() - ATLAS_TYPE_MAP_SUFFIX.length(); String[] keyValueTypes = typeName.substring(startIdx, endIdx).split(ATLAS_TYPE_MAP_KEY_VAL_SEP, 2); String keyTypeName = keyValueTypes.length > 0 ? keyValueTypes[0] : null; String valueTypeName = keyValueTypes.length > 1 ? keyValueTypes[1] : null; ret = new AtlasMapType(keyTypeName, valueTypeName, this); } else { throw new AtlasBaseException(AtlasErrorCode.TYPE_NAME_NOT_FOUND, typeName); } } if (LOG.isDebugEnabled()) { LOG.debug("<== AtlasTypeRegistry.getType({}): {}", typeName, ret); } return ret; }
public AtlasType getType(String typeName) throws AtlasBaseException { if (LOG.isDebugEnabled()) { LOG.debug("==> AtlasTypeRegistry.getType({})", typeName); } AtlasType ret = registryData.allTypes.getTypeByName(typeName); if (ret == null) { if (typeName.startsWith(ATLAS_TYPE_ARRAY_PREFIX) && typeName.endsWith(ATLAS_TYPE_ARRAY_SUFFIX)) { int startIdx = ATLAS_TYPE_ARRAY_PREFIX.length(); int endIdx = typeName.length() - ATLAS_TYPE_ARRAY_SUFFIX.length(); String elementTypeName = typeName.substring(startIdx, endIdx); ret = new AtlasArrayType(elementTypeName, this); } else if (typeName.startsWith(ATLAS_TYPE_MAP_PREFIX) && typeName.endsWith(ATLAS_TYPE_MAP_SUFFIX)) { int startIdx = ATLAS_TYPE_MAP_PREFIX.length(); int endIdx = typeName.length() - ATLAS_TYPE_MAP_SUFFIX.length(); String[] keyValueTypes = typeName.substring(startIdx, endIdx).split(ATLAS_TYPE_MAP_KEY_VAL_SEP, 2); String keyTypeName = keyValueTypes.length > 0 ? keyValueTypes[0] : null; String valueTypeName = keyValueTypes.length > 1 ? keyValueTypes[1] : null; ret = new AtlasMapType(keyTypeName, valueTypeName, this); } else { throw new AtlasBaseException(AtlasErrorCode.TYPE_NAME_NOT_FOUND, typeName); } } if (LOG.isDebugEnabled()) { LOG.debug("<== AtlasTypeRegistry.getType({}): {}", typeName, ret); } return ret; }
@Override public AtlasType getTypeForAttribute() { AtlasType keyAttributeType = keyType.getTypeForAttribute(); AtlasType valueAttributeType = valueType.getTypeForAttribute(); if (keyAttributeType == keyType && valueAttributeType == valueType) { return this; } else { AtlasType attributeType = new AtlasMapType(keyAttributeType, valueAttributeType); if (LOG.isDebugEnabled()) { LOG.debug("getTypeForAttribute(): {} ==> {}", getTypeName(), attributeType.getTypeName()); } return attributeType; } }
@Override public AtlasType getTypeForAttribute() { AtlasType keyAttributeType = keyType.getTypeForAttribute(); AtlasType valueAttributeType = valueType.getTypeForAttribute(); if (keyAttributeType == keyType && valueAttributeType == valueType) { return this; } else { AtlasType attributeType = new AtlasMapType(keyAttributeType, valueAttributeType); if (LOG.isDebugEnabled()) { LOG.debug("getTypeForAttribute(): {} ==> {}", getTypeName(), attributeType.getTypeName()); } return attributeType; } } }