private Delegating( final List<SMFParserEventsMetaType> in_delegates) { this.delegates = NullCheck.notNull(in_delegates, "Delegates"); this.want = new boolean[this.delegates.size()]; }
private Validation<List<SMFParseError>, SMFSchemaRequireVertices> parseStatementRequireVertices( final List<String> line) { if (line.size() == 2) { final String text = line.get(1); switch (text) { case "true": return valid(SMF_VERTICES_REQUIRED); case "false": return valid(SMF_VERTICES_NOT_REQUIRED); default: break; } } final StringBuilder sb = new StringBuilder(128); sb.append("Could not parse vertices requirement."); sb.append(System.lineSeparator()); sb.append(" Expected: require-vertices (true | false)"); sb.append(System.lineSeparator()); sb.append(" Received: "); sb.append(line.toJavaStream().collect(Collectors.joining(" "))); sb.append(System.lineSeparator()); return invalid(List.of(SMFParseError.of( this.reader.position(), sb.toString(), Optional.empty()))); }
private Validation<List<SMFParseError>, SMFSchemaRequireTriangles> parseStatementRequireTriangles( final List<String> line) { if (line.size() == 2) { final String text = line.get(1); switch (text) { case "true": return valid(SMF_TRIANGLES_REQUIRED); case "false": return valid(SMF_TRIANGLES_NOT_REQUIRED); default: break; } } final StringBuilder sb = new StringBuilder(128); sb.append("Could not parse triangle requirement."); sb.append(System.lineSeparator()); sb.append(" Expected: require-triangles (true | false)"); sb.append(System.lineSeparator()); sb.append(" Received: "); sb.append(line.toJavaStream().collect(Collectors.joining(" "))); sb.append(System.lineSeparator()); return invalid(List.of(SMFParseError.of( this.reader.position(), sb.toString(), Optional.empty()))); }
default void checkPreconditions() final int order_size = this.attributesInOrder().size(); final int named_size = this.attributesByName().size(); if (order_size != named_size) {
default void checkPreconditions() final int order_size = this.attributesInOrder().size(); final int named_size = this.attributesByName().size(); if (order_size != named_size) {
/** * @return The attributes by name */ @Value.Derived default SortedMap<SMFAttributeName, SMFAttribute> attributesByName() { SortedMap<SMFAttributeName, SMFAttribute> m = TreeMap.empty(); final List<SMFAttribute> ordered = this.attributesInOrder(); for (int index = 0; index < ordered.size(); ++index) { final SMFAttribute attr = ordered.get(index); if (m.containsKey(attr.name())) { final StringBuilder sb = new StringBuilder(128); sb.append("Duplicate attribute name."); sb.append(System.lineSeparator()); sb.append(" Attribute: "); sb.append(attr.name().value()); sb.append(System.lineSeparator()); throw new IllegalArgumentException(sb.toString()); } m = m.put(attr.name(), attr); } return m; }
private void parseHeaderCheckUniqueAttributeNames() { final Collection<SMFAttributeName> names = new HashSet<>(this.attributes_list.size()); for (final SMFAttribute attribute : this.attributes_list) { final SMFAttributeName name = attribute.name(); if (names.contains(name)) { Invariants.checkInvariant( name, this.attribute_lines.containsKey(name), a_name -> "Attribute lines must contain " + a_name); this.failWithLineNumber( this.attribute_lines.get(name).get().intValue(), "Duplicate attribute name: " + name.value(), Optional.empty()); } names.add(name); } }
/** * @return The attributes by name */ @Value.Derived default SortedMap<SMFAttributeName, SMFAttribute> attributesByName() { SortedMap<SMFAttributeName, SMFAttribute> m = TreeMap.empty(); final List<SMFAttribute> ordered = this.attributesInOrder(); for (int index = 0; index < ordered.size(); ++index) { final SMFAttribute attr = ordered.get(index); if (m.containsKey(attr.name())) { final StringBuilder sb = new StringBuilder(128); sb.append("Duplicate attribute name."); sb.append(System.lineSeparator()); sb.append(" Attribute: "); sb.append(attr.name().value()); sb.append(System.lineSeparator()); throw new IllegalArgumentException(sb.toString()); } m = m.put(attr.name(), attr); } return m; }
private Validation<List<SMFParseError>, SMFCoordinateSystem> parseStatementCoordinates( final List<String> line) if (line.size() == 5) { try { final CAxis axis_right = CAxis.of(line.get(1));
private void parseHeaderCommandSchema( final List<String> line) { if (line.size() == 5) { try { final int vendor = Integer.parseUnsignedInt(line.get(1), 16); final int schema = Integer.parseUnsignedInt(line.get(2), 16); final int schema_version_major = Integer.parseUnsignedInt(line.get(3)); final int schema_version_minor = Integer.parseUnsignedInt(line.get(4)); this.schema_id = SMFSchemaIdentifier.of( vendor, schema, schema_version_major, schema_version_minor); } catch (final NumberFormatException e) { super.failExpectedGot( "Could not parse number: " + e.getMessage(), "schema <vendor-id> <schema-id> <schema-version-major> <schema-version-minor>", line.toJavaStream().collect(Collectors.joining(" "))); } } else { super.failExpectedGot( "Incorrect number of arguments", "schema <vendor-id> <schema-id> <schema-version-major> <schema-version-minor>", line.toJavaStream().collect(Collectors.joining(" "))); } }
if (line.size() == 1) { return;
private Validation<List<SMFErrorType>, SMFSchemaVersion> parseVersion( final LexicalPosition<URI> position, final List<String> line) { if (line.size() == 3) { final String name = line.get(0); if (!Objects.equals(name, "smf-schema")) { return invalid(List.of( this.unparseableVersionList(line, Optional.empty()))); } try { final int major = Integer.parseUnsignedInt(line.get(1)); final int minor = Integer.parseUnsignedInt(line.get(2)); return valid(SMFSchemaVersion.of(major, minor)); } catch (final NumberFormatException e) { return invalid(List.of( this.unparseableVersionList(line, Optional.of(e)))); } } return invalid(List.of( this.unparseableVersionList(line, Optional.empty()))); }
private void parseHeaderCommandCoordinates( final List<String> line) if (line.size() == 5) { try { final CAxis axis_right = CAxis.of(line.get(1));