private static String formatLocationInfo(final Node node) { final Node parentNode = node.getParentNode(); return "at " + "<" + parentNode.getNodeName() + (getAttributeValueOrNull(parentNode, "name") == null ? ">" : (" name=\"" + getAttributeValueOrNull(parentNode, "name") + "\"> ")) + "<" + node.getNodeName() + (getAttributeValueOrNull(node, "name") == null ? ">" : (" name=\"" + getAttributeValueOrNull(node, "name") + "\"> ")); }
public MessageSchema( final Node schemaNode, final Map<String, Type> typeByNameMap, final Map<Long, Message> messageByIdMap) { this.packageName = getAttributeValue(schemaNode, "package"); this.description = getAttributeValueOrNull(schemaNode, "description"); this.id = Integer.parseInt(getAttributeValue(schemaNode, "id")); this.version = Integer.parseInt(getAttributeValue(schemaNode, "version", "0")); this.semanticVersion = getAttributeValueOrNull(schemaNode, "semanticVersion"); this.byteOrder = getByteOrder(getAttributeValue(schemaNode, "byteOrder", "littleEndian")); this.typeByNameMap = typeByNameMap; this.messageByIdMap = messageByIdMap; final String headerType = getAttributeValueOrNull(schemaNode, "headerType"); this.headerType = null == headerType ? HEADER_TYPE_DEFAULT : headerType; Verify.present(typeByNameMap, this.headerType, "Message header"); ((CompositeType)typeByNameMap.get(this.headerType)).checkForWellFormedMessageHeader(schemaNode); }
private static Presence getPresence(final Node node, final Type fieldType) { final String presenceStr = getAttributeValueOrNull(node, "presence"); final Presence presence; if (null != presenceStr) { presence = Presence.get(presenceStr); } else if (null != fieldType) { presence = fieldType.presence(); } else { presence = Presence.REQUIRED; } return presence; }
/** * Construct a ValidValue given the XML node and the encodingType. * * @param node that contains the validValue * @param encodingType for the enum */ public ValidValue(final Node node, final PrimitiveType encodingType) { name = getAttributeValue(node, "name"); description = getAttributeValueOrNull(node, "description"); value = PrimitiveValue.parse(node.getFirstChild().getNodeValue(), encodingType); sinceVersion = Integer.parseInt(getAttributeValue(node, "sinceVersion", "0")); deprecated = Integer.parseInt(getAttributeValue(node, "deprecated", "0")); checkForValidName(node, name); }
/** * Construct a new Type from XML Schema. Called by subclasses to mostly set common fields * * @param node from the XML Schema Parsing * @param givenName of this node, if null then the attributed name will be used. * @param referencedName of the type when created from a ref in a composite. */ public Type(final Node node, final String givenName, final String referencedName) { if (null == givenName) { name = getAttributeValue(node, "name"); } else { name = givenName; } this.referencedName = referencedName; presence = Presence.get(getAttributeValue(node, "presence", "required")); description = getAttributeValueOrNull(node, "description"); sinceVersion = Integer.parseInt(getAttributeValue(node, "sinceVersion", "0")); deprecated = Integer.parseInt(getAttributeValue(node, "deprecated", "0")); semanticType = getAttributeValueOrNull(node, "semanticType"); offsetAttribute = Integer.parseInt(getAttributeValue(node, "offset", "-1")); }
/** * Construct a new message from XML Schema. * * @param messageNode from the XML Schema Parsing * @param typeByNameMap holding type information for message * @throws XPathExpressionException on invalid XPath */ public Message(final Node messageNode, final Map<String, Type> typeByNameMap) throws XPathExpressionException { id = Integer.parseInt(getAttributeValue(messageNode, "id")); // required name = getAttributeValue(messageNode, "name"); // required description = getAttributeValueOrNull(messageNode, "description"); // optional blockLength = Integer.parseInt(getAttributeValue(messageNode, "blockLength", "0")); // 0 means not set sinceVersion = Integer.parseInt(getAttributeValue(messageNode, "sinceVersion", "0")); deprecated = Integer.parseInt(getAttributeValue(messageNode, "deprecated", "0")); semanticType = getAttributeValueOrNull(messageNode, "semanticType"); // optional this.typeByNameMap = typeByNameMap; fieldList = parseMembers(messageNode); computeAndValidateOffsets(messageNode, fieldList, blockLength); computedBlockLength = computeMessageRootBlockLength(fieldList); validateBlockLength(messageNode, blockLength, computedBlockLength); }
/** * Construct a Choice given the XML node and the encodingType * * @param node that contains the validValue * @param encodingType for the enum */ public Choice(final Node node, final PrimitiveType encodingType) { name = getAttributeValue(node, "name"); description = getAttributeValueOrNull(node, "description"); value = PrimitiveValue.parse(node.getFirstChild().getNodeValue(), encodingType); sinceVersion = Integer.parseInt(getAttributeValue(node, "sinceVersion", "0")); deprecated = Integer.parseInt(getAttributeValue(node, "deprecated", "0")); // choice values are bit positions (0, 1, 2, 3, 4, etc.) from LSB to MSB if (value.longValue() >= (encodingType.size() * 8)) { throw new IllegalArgumentException("Choice value out of bounds: " + value.longValue()); } checkForValidName(node, name); }
final String lengthAttr = getAttributeValueOrNull(node, "length"); length = Integer.parseInt(null == lengthAttr ? "1" : lengthAttr); varLen = Boolean.parseBoolean(getAttributeValue(node, "variableLength", "false")); valueRef = getAttributeValueOrNull(node, "valueRef"); final String characterEncoding = getAttributeValueOrNull(node, "characterEncoding"); this.characterEncoding = characterEncoding == null ? null : characterEncoding.trim().toUpperCase(); final String minValStr = getAttributeValueOrNull(node, "minValue"); minValue = minValStr != null ? PrimitiveValue.parse(minValStr, primitiveType) : null; final String maxValStr = getAttributeValueOrNull(node, "maxValue"); maxValue = maxValStr != null ? PrimitiveValue.parse(maxValStr, primitiveType) : null; final String nullValStr = getAttributeValueOrNull(node, "nullValue"); if (nullValStr != null)
private Field parseField(final NodeList nodeList, final int nodeIndex) { final Node node = nodeList.item(nodeIndex); final String typeName = getAttributeValue(node, "type"); final Type fieldType = typeByNameMap.get(typeName); if (fieldType == null) { handleError(node, "could not find type: " + typeName); } final Field field = new Field.Builder() .name(getAttributeValue(node, "name")) .description(getAttributeValueOrNull(node, "description")) .id(Integer.parseInt(getAttributeValue(node, "id"))) .offset(Integer.parseInt(getAttributeValue(node, "offset", "0"))) .semanticType(getAttributeValueOrNull(node, "semanticType")) .presence(getPresence(node, fieldType)) .valueRef(getAttributeValueOrNull(node, "valueRef")) .sinceVersion(Integer.parseInt(getAttributeValue(node, "sinceVersion", "0"))) .deprecated(Integer.parseInt(getAttributeValue(node, "deprecated", "0"))) .epoch(getAttributeValueOrNull(node, "epoch")) .timeUnit(getAttributeValueOrNull(node, "timeUnit")) .type(fieldType) .build(); field.validate(node, typeByNameMap); return field; }
if ("optional".equals(getAttributeValueOrNull(node, "presence")))
final String nullValueStr = getAttributeValueOrNull(node, "nullValue"); if (null != nullValueStr)
.description(getAttributeValueOrNull(node, "description")) .id(Integer.parseInt(getAttributeValue(node, "id"))) .blockLength(Integer.parseInt(getAttributeValue(node, "blockLength", "0")))
.description(getAttributeValueOrNull(node, "description")) .id(Integer.parseInt(getAttributeValue(node, "id"))) .offset(Integer.parseInt(getAttributeValue(node, "offset", "0"))) .semanticType(getAttributeValueOrNull(node, "semanticType")) .presence(Presence.get(getAttributeValue(node, "presence", "required"))) .sinceVersion(Integer.parseInt(getAttributeValue(node, "sinceVersion", "0")))
private static String formatLocationInfo(final Node node) { final Node parentNode = node.getParentNode(); return "at " + "<" + parentNode.getNodeName() + (getAttributeValueOrNull(parentNode, "name") == null ? ">" : (" name=\"" + getAttributeValueOrNull(parentNode, "name") + "\"> ")) + "<" + node.getNodeName() + (getAttributeValueOrNull(node, "name") == null ? ">" : (" name=\"" + getAttributeValueOrNull(node, "name") + "\"> ")); }
private static String formatLocationInfo(final Node node) { final Node parentNode = node.getParentNode(); return "at " + "<" + parentNode.getNodeName() + (getAttributeValueOrNull(parentNode, "name") == null ? ">" : (" name=\"" + getAttributeValueOrNull(parentNode, "name") + "\"> ")) + "<" + node.getNodeName() + (getAttributeValueOrNull(node, "name") == null ? ">" : (" name=\"" + getAttributeValueOrNull(node, "name") + "\"> ")); }
private static String formatLocationInfo(final Node node) { final Node parentNode = node.getParentNode(); return "at " + "<" + parentNode.getNodeName() + (getAttributeValueOrNull(parentNode, "name") == null ? ">" : (" name=\"" + getAttributeValueOrNull(parentNode, "name") + "\"> ")) + "<" + node.getNodeName() + (getAttributeValueOrNull(node, "name") == null ? ">" : (" name=\"" + getAttributeValueOrNull(node, "name") + "\"> ")); }
/** * Construct a new Type from XML Schema. Called by subclasses to mostly set common fields * * @param node from the XML Schema Parsing */ public Type(final Node node) { name = getAttributeValue(node, "name"); presence = Presence.get(getAttributeValue(node, "presence", "required")); description = getAttributeValueOrNull(node, "description"); semanticType = getAttributeValueOrNull(node, "semanticType"); }
/** * Construct a ValidValue given the XML node and the encodingType. * * @param node that contains the validValue * @param encodingType for the enum */ public ValidValue(final Node node, final PrimitiveType encodingType) { name = getAttributeValue(node, "name"); description = getAttributeValueOrNull(node, "description"); value = PrimitiveValue.parse(node.getFirstChild().getNodeValue(), encodingType); sinceVersion = Integer.parseInt(getAttributeValue(node, "sinceVersion", "0")); checkForValidName(node, name); }
/** * Construct a ValidValue given the XML node and the encodingType. * * @param node that contains the validValue * @param encodingType for the enum */ public ValidValue(final Node node, final PrimitiveType encodingType) { name = getAttributeValue(node, "name"); description = getAttributeValueOrNull(node, "description"); value = PrimitiveValue.parse(node.getFirstChild().getNodeValue(), encodingType); sinceVersion = Integer.parseInt(getAttributeValue(node, "sinceVersion", "0")); deprecated = Integer.parseInt(getAttributeValue(node, "deprecated", "0")); checkForValidName(node, name); }
/** * Construct a ValidValue given the XML node and the encodingType. * * @param node that contains the validValue * @param encodingType for the enum */ public ValidValue(final Node node, final PrimitiveType encodingType) { name = getAttributeValue(node, "name"); description = getAttributeValueOrNull(node, "description"); value = PrimitiveValue.parse(node.getFirstChild().getNodeValue(), encodingType); sinceVersion = Integer.parseInt(getAttributeValue(node, "sinceVersion", "0")); deprecated = Integer.parseInt(getAttributeValue(node, "deprecated", "0")); checkForValidName(node, name); }