/** * Adiciona um nova linha de informação extra na exception a ser exibida junto com a mensagem da mesma. * * @param label Label da informação (pode ser null) * @param value Valor da informação (pode ser null) */ public SingularException add(String label, Object value) { return add(0, label, value); }
/** * Adiciona um nova linha de informação extra na exception a ser exibida junto com a mensagem da mesma. * * @param value Valor da informação (pode ser null) */ public SingularException add(Object value) { return add(0, null, value); }
/** * Adiciona um nova linha de informação extra na exception a ser exibida junto com a mensagem da mesma. * @param label Label da informação (pode ser null) * @param value Valor da informação (pode ser null) */ public SingularFormException add(String label, Object value) { return (SingularFormException) super.add(label, value); }
/** * Adiciona um nova linha de informação extra na exception a ser exibida junto com a mensagem da mesma. * @param level Nível de indentação da informação * @param label Label da informação (pode ser null) * @param value Valor da informação (pode ser null) */ public SingularFormException add(int level, String label, Object value) { return (SingularFormException) super.add(level, label, value); } }
/** * Adiciona um nova linha de informação extra na exception a ser exibida junto com a mensagem da mesma. * @param label Label da informação (pode ser null) * @param value Valor da informação (pode ser null) */ public SingularFormException add(String label, Object value) { return (SingularFormException) super.add(label, value); }
/** * Adiciona um nova linha de informação extra na exception a ser exibida junto com a mensagem da mesma. * @param level Nível de indentação da informação * @param label Label da informação (pode ser null) * @param value Valor da informação (pode ser null) */ public SingularFormException add(int level, String label, Object value) { return (SingularFormException) super.add(level, label, value); } }
/** * Adiciona uma nova linha de informação extra na exception a ser exibida junto com a mensagem a partir doSupplier, * mas protegendo a geração caso o Supplier provoque uma Exception. */ @Nonnull public SingularException add(@Nullable String label, @Nullable Supplier<?> valueSupplier) { Object value; try { value = valueSupplier == null ? null : valueSupplier.get(); } catch (Exception e) { //Ignora a exception para não bloquear a geração da Exception atual getLogger().debug(null, e); return this; } return add(0, label, value); }
private void writeObject(ObjectOutputStream out) throws IOException { try { out.writeObject(value); } catch (NotSerializableException e) { SingularFlowException e2 = new SingularFlowException("O valor da variável não é serializável", e); e2.add("varName", getName()) .add("varType", getType()) .add("value", value) .add("valueClass", value.getClass().getName()); throw e2; } out.defaultWriteObject(); }
/** * Adiciona um nova linha de informação extra na exception a ser exibida junto com a mensagem da mesma. * @param value Valor da informação (pode ser null) */ public SingularFormException add(Object value) { if (value instanceof SType) { add((SType<?>) value); } else if (value instanceof SInstance) { add((SInstance) value); } else { super.add(value); } return this; }
/** * Lê obrigatoriamente o {@link FormKey} de uma instância e verifica se é da classe esperada. Se for diferente de * null e não for da classe espera, então dispara uma Exception. Se for null, dispara exception. */ @Nonnull public KEY readFormKeyOrException(@Nonnull SInstance instance) { Optional<KEY> key = readFormKeyOptional(instance); if (!key.isPresent()) { throw addInfo(new SingularFormPersistenceException( "Era esperado que a instância tivesse o atributo FormKey preenchido")).add("key", null).add( instance); } return key.get(); }
/** * Adiciona um nova linha de informação extra na exception a ser exibida junto com a mensagem da mesma. * @param value Valor da informação (pode ser null) */ public SingularFormException add(Object value) { if (value instanceof SType) { add((SType<?>) value); } else if (value instanceof SInstance) { add((SInstance) value); } else { super.add(value); } return this; }
/** * Verifica se a chave não e nula e é da classe esperada, fazendo o cast para o tipo certo. Caso contrario dispara * uma exception. */ @Nonnull public final KEY validKeyOrException(@Nullable FormKey key, @Nullable SInstance keyOwner, @Nullable String complementMsgIfKeyIsNull) { if (key == null) { SingularException e = addInfo(new SingularNoFormKeyException(keyOwner)).add("key", null); if (complementMsgIfKeyIsNull != null) { e.add("complement", complementMsgIfKeyIsNull); } throw e; } else if (!keyClass.isInstance(key)) { throw addInfo(new SingularFormPersistenceException( "A chave encontrada incompatível: (key= " + key + ") é da classe " + key.getClass().getName() + " mas era esperado que fosse da classe " + keyClass.getName())).add(keyOwner); } return keyClass.cast(key); }