SchemaObjectInstance.java
- /*
- * Copyright (C) 2021 B3Partners B.V.
- *
- * SPDX-License-Identifier: MIT
- *
- */
- package nl.b3p.brmo.schema;
- import java.util.Map;
- import java.util.SortedSet;
- import java.util.TreeSet;
- import org.geotools.geometry.jts.WKTWriter2;
- import org.locationtech.jts.geom.Geometry;
- public class SchemaObjectInstance {
- private final ObjectType objectType;
- private final Map<String, Object> attributes;
- private final WKTWriter2 wktWriter2 = new WKTWriter2();
- public SchemaObjectInstance(ObjectType objectType, Map<String, Object> attributes) {
- this.objectType = objectType;
- this.attributes = attributes;
- }
- public ObjectType getObjectType() {
- return objectType;
- }
- public Map<String, Object> getAttributes() {
- return attributes;
- }
- @Override
- public String toString() {
- StringBuilder s = new StringBuilder(objectType.getName());
- s.append("{");
- SortedSet<String> attributeNames = new TreeSet<>(attributes.keySet());
- boolean first = true;
- for (String name : attributeNames) {
- if (first) {
- first = false;
- } else {
- s.append(", ");
- }
- s.append(name);
- s.append("=");
- Object value = attributes.get(name);
- if (value instanceof Geometry) {
- value = wktWriter2.write((Geometry) value);
- }
- s.append(value);
- }
- s.append("}");
- return s.toString();
- }
- }