@Override public Optional<SInstance> getFieldOpt(String path) { return getFieldOpt(new PathReader(path)); }
private TemplateModel getTemplateFromField(String key) { return getInstance().getFieldOpt(key).map(instance -> toTemplateModel(instance)).orElse(null); }
public static <T extends Serializable> Optional<T> ofOpt(SInstance instanciaComposta, String...path) { if (instanciaComposta instanceof SIComposite) { Optional<SInstance> campoOpt = ((SIComposite) instanciaComposta).getFieldOpt(Arrays.stream(path).collect(Collectors.joining("."))); if (campoOpt.isPresent()) { SInstance campo = campoOpt.get(); if (campo instanceof SISimple) { return Optional.ofNullable(Value.of((SISimple<T>) campo)); } else if (campo instanceof SIList) { return Optional.ofNullable((T) ofList((SIList) campo)); } } } return Optional.empty(); }
private TemplateModel getTemplateFromField(String key) { return getInstance().getFieldOpt(key).map(instance -> formObjectWrapper.newTemplateModel(instance, escapeContentHtml)).orElse(null); }
private static void fromXMLSIComposite(@Nonnull SIComposite instc, @Nullable MElement xml) { if (xml == null) { return; } for (MElement xmlChild = xml.getPrimeiroFilho(); xmlChild != null; xmlChild = xmlChild.getProximoIrmao()) { Optional<SInstance> instcField = instc.getFieldOpt(xmlChild.getTagName()); if (instcField.isPresent()) { fromXML(instcField.get(), xmlChild); } else { InternalAccess.INTERNAL.addUnreadInfo(instc, xmlChild); } } }
/** * Calcula o Diff para uma instância do tipo {@link STypeComposite}. Faz chamada de diff recursiva para os * cada campo da lista. */ private static void calculateDiffComposite(DiffInfo info, SIComposite original, SIComposite newer) { Set<String> names = new HashSet<>(); if (newer != null) { for (SType<?> newerTypeField : newer.getType().getFields()) { SInstance newerField = newer.getField(newerTypeField); SInstance originalField = null; if (original != null) { originalField = original.getFieldOpt(newerTypeField.getNameSimple()).orElse(null); } calculateDiff(info, originalField, newerField); names.add(newerTypeField.getNameSimple()); } } if (original != null) { //noinspection Convert2streamapi for (SType<?> originalTypeField : original.getType().getFields()) { if (!names.contains(originalTypeField.getNameSimple())) { calculateDiff(info, original.getField(originalTypeField), null); } } } }
/** * Calcula o Diff para uma instância do tipo {@link STypeComposite}. Faz chamada de diff recursiva para os * cada campo da lista. */ private static void calculateDiffComposite(DiffInfo info, SIComposite original, SIComposite newer) { Set<String> names = new HashSet<>(); if (newer != null) { for (SType<?> newerTypeField : newer.getType().getFields()) { SInstance newerField = newer.getField(newerTypeField); SInstance originalField = null; if (original != null) { originalField = original.getFieldOpt(newerTypeField.getNameSimple()).orElse(null); } calculateDiff(info, originalField, newerField); names.add(newerTypeField.getNameSimple()); } } if (original != null) { //noinspection Convert2streamapi for (SType<?> originalTypeField : original.getType().getFields()) { if (!names.contains(originalTypeField.getNameSimple())) { calculateDiff(info, original.getField(originalTypeField), null); } } } }
SIComposite instc = (SIComposite) instance; for(MElement xmlChild = xml.getPrimeiroFilho(); xmlChild != null; xmlChild = xmlChild.getProximoIrmao()) { Optional<SInstance> instcField = instc.getFieldOpt(xmlChild.getTagName()); if (instcField.isPresent()) { fromXML(instcField.get(), xmlChild);