wmixvideo/nfe

Implementação @Validate

Closed this issue · 2 comments

Tenho a necessidade de importar vários arquivos XML de diferentes origens. Porem, necessito extrair as informações do XML sem validar campos requeridos, pois irei tratar informações especificas.

descrito anteriormente #684

Como sugestão de feature pensei em trocar os required " Element(name="XXX", required=true) " para a anotação @Validate e criar uma variável de configuração para definir se irá validar ou não.

@Root
public class PropertyMap {

   private Map<String, Property> map;

   @ElementList
   private List<Property> list;

   public PropertyMap() {
      this.map = new HashMap<String, Entry>();
   }

   @Validate
   public void validate() {
      List<String> keys = new ArrayList<String>();

      for(Property entry : list) {
         String key = entry.getKey();

         if(keys.contains(key)) {
            throw new PersistenceException("Duplicate key %s", key);
         }
         keys.put(key);         
      }      
   }

   @Commit
   public void build() {
      for(Property entry : list) {
         insert(entry);
      }     
   }

   public void insert(Property entry) {
      map.put(entry.getName(), entry);      
   }  

   public String getProperty(String name) {
      return map.get(name).getValue();
   }
}

Gostaria da sugestão de todos.

Bom dia @megaterrarc.
Em qual caso um item que, pela especificação é obrigatório, não estaria presente no xml?

Fechado por falta de retorno.