Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/InfrastructureServerClientXChange.java @ 9624:02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
author | dnt_bjoernsen <d.tironi@bjoernsen.de> |
---|---|
date | Fri, 11 Oct 2019 18:30:36 +0200 |
parents | |
children |
line wrap: on
line source
/** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde * Software engineering by * Björnsen Beratende Ingenieure GmbH * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt * * This file is Free Software under the GNU AGPL (>=v3) * and comes with ABSOLUTELY NO WARRANTY! Check out the * documentation coming with Dive4Elements River for details. */ package org.dive4elements.river.artifacts.sinfo.flood_duration; import java.util.ArrayList; import java.util.List; /** * @author Domenico Nardi Tironi * */ public class InfrastructureServerClientXChange { // IMMER ABGLEICHEN MIT InfrastructureServerClientXChange.class IM CLIENT private static final String TABLE_CELL_SEPARATOR = "TABLE_CELL_SEPARATOR"; private static final String TABLE_ROW_SEPARATOR = "TABLE_ROW_SEPARATOR"; private final List<Element> m_objects = new ArrayList<>(); public static class Element { private final String m_groupId; private final String m_groupLabel; private final String m_typeId; private final String m_typeLabel; public Element(final String groupId, final String groupLabel, final String typeId, final String typeLabel) { this.m_groupId = groupId; this.m_groupLabel = groupLabel; this.m_typeId = typeId; this.m_typeLabel = typeLabel; } @Override public boolean equals(final Object o) { if (o == this) return true; if (!(o instanceof Element)) return false; final Element compare = (Element) o; return this.toKey().equals(compare.toKey()); } @Override public int hashCode() { return toKey().hashCode(); } private String toKey() { return "" + this.m_groupId + '#' + this.m_typeId; } public String getGroupId() { return this.m_groupId; } public String getTypeLabel() { return this.m_typeLabel; } public Object getTypeId() { return this.m_typeId; } public Object getGroupLabel() { return this.m_groupLabel; } } public void parseAndAdd(final String raw) { this.m_objects.addAll(parse(raw)); } public static List<Element> parse(final String raw) { final List<Element> objects = new ArrayList<>(); if (raw.contains(TABLE_ROW_SEPARATOR)) { final String[] rows = raw.split(TABLE_ROW_SEPARATOR); for (final String row : rows) { if (row.contains(TABLE_CELL_SEPARATOR)) { final String[] result = row.split(TABLE_CELL_SEPARATOR); objects.add(new Element(result[0], result[1], result[2], result[3])); } } } return objects; } public boolean containsObject(final Element infrastr) { return this.m_objects.contains(infrastr); } public InfrastructureServerClientXChange() { } public final String parseListToDataString() { // java.util.Collections.sort(list); final StringBuilder builder = new StringBuilder(); for (final Element object : this.m_objects) { builder.append(object.getGroupId()); builder.append(TABLE_CELL_SEPARATOR); builder.append(object.getGroupLabel()); builder.append(TABLE_CELL_SEPARATOR); builder.append(object.getTypeId()); builder.append(TABLE_CELL_SEPARATOR); builder.append(object.getTypeLabel()); builder.append(TABLE_ROW_SEPARATOR); } return builder.toString(); } public void addObject(final Element infrastr) { this.m_objects.add(infrastr); } public void removeObject(final Element infrastr) { this.m_objects.remove(infrastr); } public List<Element> getItems() { return this.m_objects; // doof, dass es jetzt doch öffentlich ist :-( } }