docs: protected void announceAttributes() {
  		if (this.originString == null) {
  			log.error("Unable to announce solution types, no Origin String set.");
  			return;
  		}
  		this.sentAttrSpecifications = true;
  		if (this.attributes.size() > 0) {
  			AttributeAnnounceMessage message = new AttributeAnnounceMessage();
  
  			message.setOrigin(this.originString);
  
  			ArrayList<AttributeSpecification> specificationList = new ArrayList<AttributeSpecification>();
  			specificationList.addAll(this.attributes);
  			AttributeSpecification[] specs = new AttributeSpecification[specificationList
  					.size()];
  			int specAlias = 0;
  			for (AttributeSpecification spec : specificationList) {
  				specs[specAlias] = spec;
  				spec.setAlias(specAlias++);
  				this.attributeAliases.put(spec.getAttributeName(),
  						Integer.valueOf(spec.getAlias()));
  			}
  			message.setTypeSpecifications(specs);
  			this.session.write(message);
  			this.sentAttrSpecifications = true;
  		}
  	}