public IApsEntity buildEntityType(Class entityClass, Map<String, AttributeInterface> attributes)
     throws ApiException, Throwable {
   List<ApiError> errors = new ArrayList<ApiError>();
   IApsEntity entityType = null;
   try {
     entityType = (IApsEntity) entityClass.newInstance();
     entityType.setTypeCode(this.getTypeCode());
     entityType.setTypeDescr(this.getTypeDescription());
     List<DefaultJAXBAttributeType> jabxAttributes = this.getAttributes();
     for (int i = 0; i < jabxAttributes.size(); i++) {
       try {
         DefaultJAXBAttributeType jaxbAttributeType = jabxAttributes.get(i);
         AttributeInterface attribute = jaxbAttributeType.createAttribute(attributes);
         if (null != entityType.getAttribute(attribute.getName())) {
           throw new ApiException(
               IApiErrorCodes.API_VALIDATION_ERROR,
               "Attribute '" + attribute.getName() + "' already defined");
         }
         entityType.addAttribute(attribute);
       } catch (ApiException e) {
         errors.addAll(e.getErrors());
       }
     }
   } catch (Throwable t) {
     ApsSystemUtils.logThrowable(t, this, "buildEntityType");
     throw t;
   }
   if (!errors.isEmpty()) throw new ApiException(errors);
   return entityType;
 }
 public JAXBEntityType(IApsEntity entityType) {
   this.setTypeCode(entityType.getTypeCode());
   this.setTypeDescription(entityType.getTypeDescr());
   List<AttributeInterface> attributes = entityType.getAttributeList();
   if (null != attributes) {
     for (int i = 0; i < attributes.size(); i++) {
       AttributeInterface attribute = attributes.get(i);
       this.getAttributes().add(attribute.getJAXBAttributeType());
     }
   }
 }
 /**
  * Inizializza l'iteratore in base all'entità.
  *
  * @param entity L'entità dal quale estrarre tutti gli attributi elementari.
  */
 public EntityAttributeIterator(IApsEntity entity) {
   this._attributes = new ArrayList<AttributeInterface>();
   List<AttributeInterface> entityAttributes = entity.getAttributeList();
   for (int i = 0; i < entityAttributes.size(); i++) {
     this.addAttribute(entityAttributes.get(i));
   }
   this._attributesIterator = this._attributes.iterator();
 }