code: public static PrimitiveAttribute<?> createEmptyPrimitiveAttribute(PrimitiveAttributeInfo info) {
  		PrimitiveAttribute<?> attribute;
  		switch (info.getType()) {
  			case BOOLEAN:
  				attribute = new BooleanAttribute();
  				break;
  			case SHORT:
  				attribute = new ShortAttribute();
  				break;
  			case INTEGER:
  				attribute = new IntegerAttribute();
  				break;
  			case LONG:
  				attribute = new LongAttribute();
  				break;
  			case FLOAT:
  				attribute = new FloatAttribute();
  				break;
  			case DOUBLE:
  				attribute = new DoubleAttribute();
  				break;
  			case CURRENCY:
  				attribute = new CurrencyAttribute();
  				break;
  			case STRING:
  				attribute = new StringAttribute();
  				break;
  			case DATE:
  				attribute = new DateAttribute();
  				break;
  			case URL:
  				attribute = new UrlAttribute();
  				break;
  			case IMGURL:
  				attribute = new ImageUrlAttribute();
  				break;
  			default:
  				String msg = "Trying to build an unknown primitive attribute type " + info.getType();
  				Log.logError(msg);
  				throw new IllegalStateException(msg);
  		}
  		attribute.setEditable(info.isEditable());
  		return attribute;
  	}
docs: Creates an empty primitive attribute. An empty attribute is an attribute which has null as its value.
  
  @param info attribute info
  @return an empty primitive attribute of the right type.