public boolean isEmpty() { if (!isParsed()) { return valueParser.isEmpty(); } if (value == null) { return true; } if (value instanceof String) { return StringUtils.isBlank((String)value); } return false; }
private void parseValue(@NotNull QName typeName, XNodeProcessorEvaluationMode mode) throws SchemaException { Validate.notNull(typeName, "Cannot parse primitive XNode without knowing its type"); if (valueParser != null) { value = valueParser.parse(typeName, mode); // Necessary. It marks that the value is parsed. It also frees some memory. valueParser = null; } }
throw new IllegalStateException("getRelevantNamespaceDeclarations called on parsed primitive XNode: " + this); Map<String,String> candidateNamespaces = valueParser.getPotentiallyRelevantNamespaces(); if (candidateNamespaces == null) { return retval;
@Override public String getStringValue() { if (isParsed()) { if (getTypeQName() != null) { return getFormattedValue(); } else { if (value == null) { return null; } else { return value.toString(); } } } else { return valueParser.getStringValue(); } }
/** * Returns parsed value without actually changing node state from UNPARSED to PARSED * (if node is originally unparsed). * * Useful when we are not sure about the type name and do not want to record parsed * value based on wrong type name. */ public T getParsedValueWithoutRecording(QName typeName) throws SchemaException { Validate.notNull(typeName, "typeName"); if (isParsed()) { return value; } else { return valueParser.parse(typeName, XNodeProcessorEvaluationMode.STRICT); } }
/** * Returns formatted parsed value without actually changing node state from UNPARSED to PARSED * (if node is originally unparsed). * * Useful e.g. to serialize nodes that have a type declaration but were not parsed yet. * * Experimental. Should be thought through yet. * * @return properly formatted value */ @Override public String getGuessedFormattedValue() throws SchemaException { if (isParsed()) { return getFormattedValue(); } if (getTypeQName() == null) { throw new IllegalStateException("Cannot fetch formatted value if type definition is not set"); } // brutal hack - fix this! MID-3616 try { T value = valueParser.parse(getTypeQName(), XNodeProcessorEvaluationMode.STRICT); return formatValue(value); } catch (SchemaException e) { return (String) valueParser.parse(DOMUtil.XSD_STRING, XNodeProcessorEvaluationMode.COMPAT); } }