docs: @Pure
  	@SuppressWarnings("checkstyle:cyclomaticcomplexity")
  	public static AttributeValueImpl parse(String text) {
  		final AttributeValueImpl value = new AttributeValueImpl(text);
  		if (text != null && !text.isEmpty()) {
  			Object binValue;
  			for (final AttributeType type : AttributeType.values()) {
  				try {
  					binValue = null;
  					switch (type) {
  					case BOOLEAN:
  						binValue = value.getBoolean();
  						break;
  					case DATE:
  						binValue = value.getDate();
  						break;
  					case ENUMERATION:
  						binValue = value.getEnumeration();
  						break;
  					case INET_ADDRESS:
  						binValue = value.getInetAddress();
  						break;
  					case INTEGER:
  						binValue = value.getInteger();
  						break;
  					case OBJECT:
  						binValue = value.getJavaObject();
  						break;
  					case POINT:
  						binValue = parsePoint((String) value.value, true);
  						break;
  					case POINT3D:
  						binValue = parsePoint3D((String) value.value, true);
  						break;
  					case POLYLINE:
  						binValue = parsePolyline((String) value.value, true);
  						break;
  					case POLYLINE3D:
  						binValue = parsePolyline3D((String) value.value, true);
  						break;
  					case REAL:
  						binValue = value.getReal();
  						break;
  					case STRING:
  						binValue = value.getString();
  						break;
  					case TIMESTAMP:
  						binValue = value.getTimestamp();
  						break;
  					case TYPE:
  						binValue = value.getJavaClass();
  						break;
  					case URI:
  						binValue = parseURI((String) value.value);
  						break;
  					case URL:
  						binValue = value.getURL();
  						break;
  					case UUID:
  						binValue = parseUUID((String) value.value);
  						break;
  					default:
  						//
  					}
  					if (binValue != null) {
  						return new AttributeValueImpl(type, binValue);
  					}
  				} catch (Throwable exception) {
  					//
  				}
  			}
  		}
  		return value;
  	}