in daffodil-core/src/main/scala/org/apache/daffodil/core/dsom/Facets.scala [502:643]
private def checkValueSpaceFacetRange(
localFacet: String,
facetType: Facet.Type
): java.math.BigDecimal = {
// Necessary for min/max Inclusive/Exclusive Facets
// Perform conversions once
val theLocalFacet = convertFacetToBigDecimal(localFacet)
facetType match {
case Facet.maxExclusive | Facet.maxInclusive | Facet.minExclusive | Facet.minInclusive |
Facet.enumeration => {
// Here we're just doing range checking for the
// specified primitive type
primType match {
case PrimType.Int => {
if (!isFacetInIntRange(theLocalFacet)) {
SDE(
"%s facet value (%s) was found to be outside of Int range.",
facetType,
localFacet
)
}
}
case PrimType.Byte => {
if (!isFacetInByteRange(theLocalFacet)) {
SDE(
"%s facet value (%s) was found to be outside of Byte range.",
facetType,
localFacet
)
}
}
case PrimType.Short => {
if (!isFacetInShortRange(theLocalFacet)) {
SDE(
"%s facet value (%s) was found to be outside of Short range.",
facetType,
localFacet
)
}
}
case PrimType.Long => {
if (!isFacetInLongRange(theLocalFacet)) {
SDE(
"%s facet value (%s) was found to be outside of Long range.",
facetType,
localFacet
)
}
}
case PrimType.Integer => {
// Unbounded integer
if (!isFacetInIntegerRange(theLocalFacet)) {
SDE(
"%s facet value (%s) was found to be outside of Integer range.",
facetType,
localFacet
)
}
}
case PrimType.UnsignedInt => {
if (!isFacetInUnsignedIntRange(theLocalFacet)) {
SDE(
"%s facet value (%s) was found to be outside of unsigned int range.",
facetType,
localFacet
)
}
}
case PrimType.UnsignedByte => {
if (!isFacetInUnsignedByteRange(theLocalFacet)) {
SDE(
"%s facet value (%s) was found to be outside of unsigned byte range.",
facetType,
localFacet
)
}
}
case PrimType.UnsignedShort => {
if (!isFacetInUnsignedShortRange(theLocalFacet)) {
SDE(
"%s facet value (%s) was found to be outside of unsigned short range.",
facetType,
localFacet
)
}
}
case PrimType.UnsignedLong => {
if (!isFacetInUnsignedLongRange(theLocalFacet)) {
SDE(
"%s facet value (%s) was found to be outside of unsigned long range.",
facetType,
localFacet
)
}
}
case PrimType.Double => {
if (!isFacetInDoubleRange(theLocalFacet)) {
SDE(
"%s facet value (%s) was found to be outside of Double range.",
facetType,
localFacet
)
}
}
case PrimType.Float => {
if (!isFacetInFloatRange(theLocalFacet)) {
SDE(
"%s facet value (%s) was found to be outside of Float range.",
facetType,
localFacet
)
}
}
case PrimType.NonNegativeInteger => {
// Unsigned Unbounded Integer
if (!isFacetInNonNegativeIntegerRange(theLocalFacet)) {
SDE(
"%s facet value (%s) was found to be outside of NonNegativeInteger range.",
facetType,
localFacet
)
}
}
case PrimType.Decimal => { /* Nothing to do here */ }
case PrimType.DateTime => { /* Nothing to do here */ }
case PrimType.Date => { /* Nothing to do here */ }
case PrimType.Time => { /* Nothing to do here */ }
case PrimType.Boolean => notYetImplemented("checkValueSpaceFacetRange - Boolean")
case PrimType.HexBinary => { /* Nothing to do here */ }
case PrimType.String => { /* Nothing to do here */ }
case _ =>
Assert.usageError(
"checkValueSpaceFacetRange - Unrecognized primitive type: " + primType.name
)
}
}
case _ => { /* Nothing to do */ }
}
theLocalFacet
}