@Override public Criterion decodeCriterion(ObjectNode json) { JsonNode ochSignalId = nullIsIllegal( json.get(CriterionCodec.OCH_SIGNAL_ID), CriterionCodec.GRID_TYPE + MISSING_MEMBER_MESSAGE); GridType gridType = GridType.valueOf( nullIsIllegal( ochSignalId.get(CriterionCodec.GRID_TYPE), CriterionCodec.GRID_TYPE + MISSING_MEMBER_MESSAGE) .asText()); ChannelSpacing channelSpacing = ChannelSpacing.valueOf( nullIsIllegal( ochSignalId.get(CriterionCodec.CHANNEL_SPACING), CriterionCodec.CHANNEL_SPACING + MISSING_MEMBER_MESSAGE) .asText()); int spacingMultiplier = nullIsIllegal( ochSignalId.get(CriterionCodec.SPACING_MULIPLIER), CriterionCodec.SPACING_MULIPLIER + MISSING_MEMBER_MESSAGE) .asInt(); int slotGranularity = nullIsIllegal( ochSignalId.get(CriterionCodec.SLOT_GRANULARITY), CriterionCodec.SLOT_GRANULARITY + MISSING_MEMBER_MESSAGE) .asInt(); return Criteria.matchLambda( Lambda.ochSignal(gridType, channelSpacing, spacingMultiplier, slotGranularity)); }